Make wi-fi code more consistent between the firmware and simulation

This commit is contained in:
Oleg Kalachev 2025-05-10 05:13:57 +03:00
parent 31d6636754
commit df2b10acd4
2 changed files with 8 additions and 7 deletions

View File

@ -12,6 +12,7 @@
#define WIFI_SSID "flix" #define WIFI_SSID "flix"
#define WIFI_PASSWORD "flixwifi" #define WIFI_PASSWORD "flixwifi"
#define WIFI_UDP_PORT 14550 #define WIFI_UDP_PORT 14550
#define WIFI_UDP_REMOTE_PORT 14550
WiFiUDP udp; WiFiUDP udp;
@ -19,7 +20,7 @@ void setupWiFi() {
print("Setup Wi-Fi\n"); print("Setup Wi-Fi\n");
WiFi.softAP(WIFI_SSID, WIFI_PASSWORD); WiFi.softAP(WIFI_SSID, WIFI_PASSWORD);
udp.begin(WIFI_UDP_PORT); udp.begin(WIFI_UDP_PORT);
udp.beginPacket("255.255.255.255", WIFI_UDP_PORT); // broadcast packets until connected udp.beginPacket("255.255.255.255", WIFI_UDP_REMOTE_PORT); // broadcast packets until connected
} }
void sendWiFi(const uint8_t *buf, int len) { void sendWiFi(const uint8_t *buf, int len) {

View File

@ -11,8 +11,8 @@
#include <sys/poll.h> #include <sys/poll.h>
#include <gazebo/gazebo.hh> #include <gazebo/gazebo.hh>
#define WIFI_UDP_PORT_LOCAL 14580 #define WIFI_UDP_PORT 14580
#define WIFI_UDP_PORT_REMOTE 14550 #define WIFI_UDP_REMOTE_PORT 14550
int wifiSocket; int wifiSocket;
@ -21,14 +21,14 @@ void setupWiFi() {
sockaddr_in addr; // local address sockaddr_in addr; // local address
addr.sin_family = AF_INET; addr.sin_family = AF_INET;
addr.sin_addr.s_addr = INADDR_ANY; addr.sin_addr.s_addr = INADDR_ANY;
addr.sin_port = htons(WIFI_UDP_PORT_LOCAL); addr.sin_port = htons(WIFI_UDP_PORT);
if (bind(wifiSocket, (sockaddr *)&addr, sizeof(addr))) { if (bind(wifiSocket, (sockaddr *)&addr, sizeof(addr))) {
gzerr << "Failed to bind WiFi UDP socket on port " << WIFI_UDP_PORT_LOCAL << std::endl; gzerr << "Failed to bind WiFi UDP socket on port " << WIFI_UDP_PORT << std::endl;
return; return;
} }
int broadcast = 1; int broadcast = 1;
setsockopt(wifiSocket, SOL_SOCKET, SO_BROADCAST, &broadcast, sizeof(broadcast)); // enable broadcast setsockopt(wifiSocket, SOL_SOCKET, SO_BROADCAST, &broadcast, sizeof(broadcast)); // enable broadcast
gzmsg << "WiFi UDP socket initialized on port " << WIFI_UDP_PORT_LOCAL << " (remote port " << WIFI_UDP_PORT_REMOTE << ")" << std::endl; gzmsg << "WiFi UDP socket initialized on port " << WIFI_UDP_PORT << " (remote port " << WIFI_UDP_REMOTE_PORT << ")" << std::endl;
} }
void sendWiFi(const uint8_t *buf, int len) { void sendWiFi(const uint8_t *buf, int len) {
@ -36,7 +36,7 @@ void sendWiFi(const uint8_t *buf, int len) {
sockaddr_in addr; // remote address sockaddr_in addr; // remote address
addr.sin_family = AF_INET; addr.sin_family = AF_INET;
addr.sin_addr.s_addr = INADDR_BROADCAST; // send UDP broadcast addr.sin_addr.s_addr = INADDR_BROADCAST; // send UDP broadcast
addr.sin_port = htons(WIFI_UDP_PORT_REMOTE); addr.sin_port = htons(WIFI_UDP_REMOTE_PORT);
sendto(wifiSocket, buf, len, 0, (sockaddr *)&addr, sizeof(addr)); sendto(wifiSocket, buf, len, 0, (sockaddr *)&addr, sizeof(addr));
} }