Message Payload type
-
I'm sending a message from node to node but when the message gets there it's the wrong type.
I need to send as P_STRING but it's showing as P_INT16This is my send
void sendToReceiver(boolean reed_tripped) { char percent; Serial.print(" Light Status "); Serial.println(reed_tripped); switch (reed_tripped) { case 0: percent = "0"; send(msgDimmer_to_5.setDestination(5).setSensor(0).set(percent).setType(V_PERCENTAGE)); //send(msgDimmer_to_5.setDestination(5).setSensor(0).set(percent)); //send(msgDimmer_to_5.set(percent, 0)); break; case 1: percent = "30"; send(msgDimmer_to_5.setDestination(5).setSensor(0).set(percent).setType(V_PERCENTAGE)); //send(msgDimmer_to_5.setDestination(5).setSensor(0).set(percent)); //send(msgDimmer_to_5.set(percent, 0)); break; } }
and the message
2836 !TSF:MSG:SEND,8-8-5-5,s=0,c=1,t=3,pt=2,l=2,sg=0,ft=0,st=NACK:4 2842 !TSF:RTE:N2N FAIL 2846 TSF:MSG:SEND,8-8-0-5,s=0,c=1,t=3,pt=2,l=2,sg=0,ft=0,st=OK:4 2854 MCO:SLP:MS=360000,SMS=0,I1=0,M1=1,I2=255,M2=255 2861 TSF:TDI:TSL
What the heck am I doing wrong?
-
@r-nox you are setting the message type to V_PERCENTAGE. You probably want to use V_TEXT.
-
@r-nox said in Message Payload type:
char percent;
Your data is of type char. Make it char *. Something like
char buf[MAX_PAYLOAD_SIZE+1]; strcpy ( buf, "30" ); send(msgDimmer_to_5.setDestination(5).setSensor(0).set(buf).setType(V_TEXT));
-
I tried this. Here's the results. They are close but payload looks corrupted.
char buf[MAX_PAYLOAD_SIZE+1]; strcpy ( buf, percent ); void sendToReceiver(boolean reed_tripped) { char percent; Serial.print(" Light Status "); Serial.println(reed_tripped); switch (reed_tripped) { case 0: percent = "0"; Serial.print(" Select case is "); Serial.println("0"); char buf[MAX_PAYLOAD_SIZE+1]; strcpy ( buf, percent ); send(msgDimmer_to_5.setDestination(5).setSensor(0).set(buf).setType(V_TEXT)); break; case 1: percent = "30"; Serial.print(" Select case is "); Serial.println("30"); char buf2[MAX_PAYLOAD_SIZE+1]; strcpy ( buf, percent ); send(msgDimmer_to_5.setDestination(5).setSensor(0).set(buf2).setType(V_TEXT)); break; }
My results have had their molecules mixed during transport. I expected "30" but received :⸮
4870 TSF:MSG:SEND,8-8-0-5,s=0,c=1,t=47,pt=0,l=3,sg=0,ft=0,st=OK:⸮
Any further advice?
-
Sending as V_TEXT did not have the effect needed.
void sendToReceiver(boolean reed_tripped) { char percent; Serial.print(" Light Status "); Serial.println(reed_tripped); switch (reed_tripped) { case 0: percent = "0"; Serial.print(" Select case is "); Serial.println("0"); send(msgDimmer_to_5.setDestination(5).setSensor(0).set(percent).setType(V_TEXT)); //send(msgDimmer_to_5.setDestination(5).setSensor(0).set(percent)); //send(msgDimmer_to_5.set(percent, 0)); break; case 1: percent = "30"; Serial.print(" Select case is "); Serial.println("30"); send(msgDimmer_to_5.setDestination(5).setSensor(0).set(percent).setType(V_TEXT)); //send(msgDimmer_to_5.setDestination(5).setSensor(0).set(percent)); //send(msgDimmer_to_5.set(percent, 0)); break; } }
and the results
3201 TSF:MSG:SEND,8-8-0-5,s=0,c=1,t=47,pt=2,l=2,sg=0,ft=0,st=OK:4
Payload still shows as P_INT16 and payload is 4 but in fact should be 30
This should be simple. I don't understand what's going wrong.
-
@r-nox said in Message Payload type:
char buf2[MAX_PAYLOAD_SIZE+1];
strcpy ( buf, percent );
send(msgDimmer_to_5.setDestination(5).setSensor(0).set(buf2).setType(V_TEXT));You copied to buf, but sent buf2
-
@frits Thank you for catching that. I was just reworking and now it's sending proper values.
Suggested Topics
-
Arduino Celebrates 10 years (Malmö/Sweden)
Announcements • 29 Mar 2014, 17:08 • hek 29 Mar 2014, 17:08 -
Gateway without a radio
Development • 12 Jan 2025, 23:19 • OldSurferDude 14 Jan 2025, 22:07 -
Radio waking up for no reason.
Development • 4 Jul 2020, 21:09 • Sasquatch 15 Jan 2025, 08:33 -
Adding Listen only device to my system.
Development • 26 Feb 2025, 00:39 • dpcons 26 Feb 2025, 06:26 -
MQTT-Help me understand about the MQTT Gateway.
Development • 2 Mar 2025, 01:44 • dpcons 12 Mar 2025, 23:39 -
PJON and Minicore not working
Development • 27 days ago • Trand 27 days ago