2 Commits

Author SHA1 Message Date
Oleg Kalachev
82d9d3570d Send only mavlink heartbeats until connected 2025-10-03 07:08:17 +03:00
Oleg Kalachev
d7f8c8d934 Add Wi-Fi client mode
WIFI_AP_MODE define
2025-10-03 06:56:03 +03:00
2 changed files with 15 additions and 4 deletions

View File

@@ -12,6 +12,7 @@
#define PERIOD_FAST 0.1
#define MAVLINK_CONTROL_YAW_DEAD_ZONE 0.1f
bool mavlinkConnected = false;
String mavlinkPrintBuffer;
extern double controlTime;
@@ -41,12 +42,14 @@ void sendMavlink() {
mode, MAV_STATE_STANDBY);
sendMessage(&msg);
if (!mavlinkConnected) return; // send only heartbeat until connected
mavlink_msg_extended_sys_state_pack(SYSTEM_ID, MAV_COMP_ID_AUTOPILOT1, &msg,
MAV_VTOL_STATE_UNDEFINED, landed ? MAV_LANDED_STATE_ON_GROUND : MAV_LANDED_STATE_IN_AIR);
sendMessage(&msg);
}
if (t - lastFast >= PERIOD_FAST) {
if (t - lastFast >= PERIOD_FAST && mavlinkConnected) {
lastFast = t;
const float zeroQuat[] = {0, 0, 0, 0};
@@ -80,6 +83,7 @@ void sendMessage(const void *msg) {
void receiveMavlink() {
uint8_t buf[MAVLINK_MAX_PACKET_LEN];
int len = receiveWiFi(buf, MAVLINK_MAX_PACKET_LEN);
if (len) mavlinkConnected = true;
// New packet, parse it
mavlink_message_t msg;

View File

@@ -9,8 +9,11 @@
#include <WiFiAP.h>
#include <WiFiUdp.h>
#define WIFI_SSID "flix"
#define WIFI_PASSWORD "flixwifi"
#define WIFI_AP_MODE 1
#define WIFI_AP_SSID "flix"
#define WIFI_AP_PASSWORD "flixwifi"
#define WIFI_SSID ""
#define WIFI_PASSWORD ""
#define WIFI_UDP_PORT 14550
#define WIFI_UDP_REMOTE_PORT 14550
#define WIFI_UDP_REMOTE_ADDR "255.255.255.255"
@@ -19,7 +22,11 @@ WiFiUDP udp;
void setupWiFi() {
print("Setup Wi-Fi\n");
WiFi.softAP(WIFI_SSID, WIFI_PASSWORD);
if (WIFI_AP_MODE) {
WiFi.softAP(WIFI_AP_SSID, WIFI_AP_PASSWORD);
} else {
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
}
udp.begin(WIFI_UDP_PORT);
}