1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-11-22 23:56:13 +01:00

subscriber topics ok

This commit is contained in:
Gregor Baues 2021-05-07 09:08:09 +02:00
parent 0b0744cc94
commit 508b1fcfce
3 changed files with 90 additions and 992 deletions

File diff suppressed because it is too large Load Diff

View File

@ -93,7 +93,8 @@ typedef struct csmsg_t {
typedef struct csmqttclient_t {
int distant; // random int number recieved from the subscriber
byte mqsocket; // mqtt socket = subscriberid provided by the cs
int topic; // cantor(subscriber,cs) encoded tpoic used to send / recieve commands
int32_t topic; // cantor(subscriber,cs) encoded tpoic used to send / recieve commands
bool open; // true as soon as we have send the id to the mq broker for the client to pickup
} csmqttclient_t;
enum DccMQTTState
@ -138,7 +139,7 @@ public:
{
return &singleton;
}
boolean subscribe(char *topic);
void publish(char *topic, char* payload);
@ -153,7 +154,7 @@ public:
char *getClientID() { return clientID; };
uint8_t obtainSubscriberID(){
if ( subscriberid == UCHAR_MAX) {
if ( subscriberid == MAXMQTTCONNECTIONS) {
return 0; // no more subscriber id available
}
return (++subscriberid);
@ -163,7 +164,7 @@ public:
// but to save space we calculate it at each publish
void getSubscriberTopic( uint8_t subscriberid, char *tbuffer ){
sprintf(tbuffer, "%s/%d", clientID, clients[subscriberid].topic);
sprintf(tbuffer, "%s/%ld", clientID, (long) clients[subscriberid].topic);
}
csmqttclient_t *getClients() { return clients; };

View File

@ -1 +1 @@
mosquitto_pub -h test.mosquitto.org -p 1883 -t 6E756E6B776F -m "(255)"
mosquitto_pub -h test.mosquitto.org -p 1883 -t 6E756E6B776F -m "mi(255)"