makcar/app/src/main/java/com/aros/apron/manager/WirelessLinkManager.java

59 lines
1.7 KiB
Java
Raw Normal View History

2026-02-01 15:09:30 +08:00
package com.aros.apron.manager;
import static dji.sdk.keyvalue.key.KeyTools.createKey;
import android.os.Handler;
import android.os.Looper;
import android.os.SystemClock;
import com.aros.apron.base.BaseManager;
import com.aros.apron.entity.Movement;
import com.aros.apron.tools.LogUtil;
import dji.sdk.keyvalue.key.FlightControllerKey;
import dji.v5.manager.KeyManager;
public class WirelessLinkManager extends BaseManager {
private static final long INTERVAL = 5000L;
private final Handler handler = new Handler(Looper.getMainLooper());
private long lastExecuteTime = 0L;
private final Runnable runnable = new Runnable() {
@Override
public void run() {
long now = SystemClock.elapsedRealtime();
if (now - lastExecuteTime < INTERVAL) {
handler.postDelayed(this, INTERVAL - (now - lastExecuteTime));
return;
}
lastExecuteTime = now;
sendWireless2Server();
// 始终基于“实际执行时间”来调度
handler.postDelayed(this, INTERVAL);
}
};
private WirelessLinkManager() {
}
public static WirelessLinkManager getInstance() {
return WirelessLinkHolder.INSTANCE;
}
public void initWirelessLink() {
Boolean isConnect = KeyManager.getInstance().getValue(createKey(FlightControllerKey.KeyConnection));
if (isConnect != null && isConnect) {
handler.postDelayed(runnable, INTERVAL);
} else {
LogUtil.log(TAG, "初始化sdr/4g失败" + "flight controller is null");
}
}
private static class WirelessLinkHolder {
private static final WirelessLinkManager INSTANCE = new WirelessLinkManager();
}
}