Bugfix in NodeMCU checksum

Calculated in the wrong function
New value for resend. 30ms works like a charm and feels responsive
This commit is contained in:
philsson 2018-09-23 14:31:51 +02:00
parent f9745a2e44
commit 35479c6f0a

View File

@ -11,7 +11,7 @@
char ssid[] = "ROBOT";
char pass[] = "myrobotisawesome";
const long sendInterval = 25; // in ms
const long sendInterval = 30; // in ms
WiFiUDP Udp;
@ -72,7 +72,7 @@ void setup() {
IPAddress apip = WiFi.softAPIP();
pinMode(LED_BUILTIN, OUTPUT);
//Serial.begin(115200);
Serial.begin(57600);
Serial.begin(250000);
Serial.println();
Serial.print("AP IP: ");
Serial.println(apip);
@ -82,17 +82,18 @@ void setup() {
pPacket->MagicWordLow = 0x0DED;
pPacket->MagicWordHigh = 0x0DEC;
pPacket->Throttle = 0;
pPacket->Steering = 0;
pPacket->Kp = 0;
pPacket->Ki = 0;
pPacket->Kd = 0;
pPacket->Throttle = 1;
pPacket->Steering = 2;
pPacket->Kp = 3;
pPacket->Ki = 4;
pPacket->Kd = 5;
pPacket->Enabled = false;
pPacket->checksum = 0;
}
void sendPacket()
{
calcChecksum();
Serial.write(buffer, bufferSize);
}
@ -108,7 +109,7 @@ void OSCMsgReceive()
}
if (!msgIN.hasError())
{
msgIN.route("/Robot/Enable",toggleEnabled);
msgIN.route("/Robot/Enable",funcEnabled);
msgIN.route("/Fader/Throttle",funcThrottle);
msgIN.route("/Fader/Steering",funcSteering);
msgIN.route("/Gain/Kp",funcKp);
@ -121,7 +122,6 @@ void OSCMsgReceive()
void sendUdp(OSCMessage* pMessage)
{
IPAddress remoteIp = Udp.remoteIP();
//outIp = Udp.remoteIP();
if (remoteIp != outIp)
{
outIp = remoteIp;
@ -136,11 +136,9 @@ void sendUdp(OSCMessage* pMessage)
pMessage->send(Udp); // send the bytes
Udp.endPacket(); // mark the end of the OSC Packet
pMessage->empty(); // free space occupied by message
calcChecksum();
}
void toggleEnabled(OSCMessage &msg, int addrOffset){
void funcEnabled(OSCMessage &msg, int addrOffset){
ledState = !(boolean) msg.getFloat(0);
OSCMessage msgOUT("/Robot/Enable");
@ -148,7 +146,7 @@ void toggleEnabled(OSCMessage &msg, int addrOffset){
msgOUT.add(!ledState);
sendUdp(&msgOUT);
pPacket->Enabled = ledState;
pPacket->Enabled = !ledState;
//Serial.println( ledState ? "Robot disabled" : "Robot enabled");
}