Skip to content

Commit dc7c54e

Browse files
committed
🚧 WIP, analogio - publish out to the broker
1 parent f4f7432 commit dc7c54e

File tree

4 files changed

+28
-5
lines changed

4 files changed

+28
-5
lines changed

src/Wippersnapper_V2.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -862,26 +862,32 @@ bool Wippersnapper_V2::PublishSignal(pb_size_t which_payload, void *payload) {
862862
WS_DEBUG_PRINT("Signal Payload Type: ");
863863
switch (which_payload) {
864864
case wippersnapper_signal_DeviceToBroker_checkin_request_tag:
865-
WS_DEBUG_PRINTLN("Checkin Request");
865+
WS_DEBUG_PRINTLN("CheckinRequest");
866866
MsgSignal.which_payload =
867867
wippersnapper_signal_DeviceToBroker_checkin_request_tag;
868868
MsgSignal.payload.checkin_request =
869869
*(wippersnapper_checkin_CheckinRequest *)payload;
870870
break;
871871
case wippersnapper_signal_DeviceToBroker_digitalio_event_tag:
872-
WS_DEBUG_PRINTLN("DigitalIO Event");
872+
WS_DEBUG_PRINTLN("DigitalIOEvent");
873873
MsgSignal.which_payload =
874874
wippersnapper_signal_DeviceToBroker_digitalio_event_tag;
875875
MsgSignal.payload.digitalio_event =
876876
*(wippersnapper_digitalio_DigitalIOEvent *)payload;
877877
break;
878878
case wippersnapper_signal_DeviceToBroker_analogio_event_tag:
879-
WS_DEBUG_PRINTLN("AnalogIO Event");
879+
WS_DEBUG_PRINTLN("AnalogIOEvent");
880880
MsgSignal.which_payload =
881881
wippersnapper_signal_DeviceToBroker_analogio_event_tag;
882882
MsgSignal.payload.analogio_event =
883883
*(wippersnapper_analogio_AnalogIOEvent *)payload;
884884
break;
885+
case wippersnapper_signal_DeviceToBroker_ds18x20_added_tag:
886+
WS_DEBUG_PRINTLN("DS18X20Added");
887+
MsgSignal.which_payload =
888+
wippersnapper_signal_DeviceToBroker_ds18x20_added_tag;
889+
MsgSignal.payload.ds18x20_added = *(wippersnapper_ds18x20_Ds18x20Added *)payload;
890+
break;
885891
default:
886892
WS_DEBUG_PRINTLN("ERROR: Invalid signal payload type, bailing out!");
887893
return false;

src/components/ds18x20/controller.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,19 @@ bool DS18X20Controller::Handle_Ds18x20Add(pb_istream_t *stream) {
3535
// Add the DS18X20Hardware object to the vector of hardware objects
3636
_DS18X20_pins.push_back(new_dsx_driver);
3737

38-
// TODO: We should publish back an Added message to the broker
38+
// Encode and publish a Ds18x20Added message back to the broker
39+
if (!_DS18X20_model->EncodeDS18x20Added(
40+
_DS18X20_model->GetDS18x20AddMsg()->onewire_pin, true)) {
41+
WS_DEBUG_PRINTLN("ERROR: Unable to encode Ds18x20Added message");
42+
return false;
43+
}
44+
45+
// Publish the AnalogIO message to the broker
46+
if (!WsV2.PublishSignal(wippersnapper_signal_DeviceToBroker_ds18x20_added_tag,
47+
_DS18X20_model->GetDS18x20AddedMsg())) {
48+
WS_DEBUG_PRINTLN("ERROR: Unable to publish Ds18x20Added message");
49+
return false;
50+
}
3951

4052
return true;
4153
}

src/components/ds18x20/model.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ wippersnapper_ds18x20_Ds18x20Add *DS18X20Model::GetDS18x20AddMsg() {
3232
return &_msg_DS18x20Add;
3333
}
3434

35+
wippersnapper_ds18x20_Ds18x20Added *DS18X20Model::GetDS18x20AddedMsg() {
36+
return &_msg_DS18x20Added;
37+
}
38+
3539
bool DS18X20Model::EncodeDS18x20Added(char *onewire_pin, bool is_init) {
3640
// Fill the Ds18x20Added message
3741
_msg_DS18x20Added = wippersnapper_ds18x20_Ds18x20Added_init_zero;
@@ -49,4 +53,4 @@ bool DS18X20Model::EncodeDS18x20Added(char *onewire_pin, bool is_init) {
4953
pb_ostream_t msg_stream = pb_ostream_from_buffer(buf, sizeof(buf));
5054
return pb_encode(&msg_stream, wippersnapper_ds18x20_Ds18x20Added_fields,
5155
&_msg_DS18x20Added);
52-
}
56+
}

src/components/ds18x20/model.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class DS18X20Model {
3131
wippersnapper_ds18x20_Ds18x20Add *GetDS18x20AddMsg();
3232
// Ds18x20Remove Message
3333
bool EncodeDS18x20Added(char *onewire_pin, bool is_init);
34+
wippersnapper_ds18x20_Ds18x20Added *GetDS18x20AddedMsg();
3435

3536
private:
3637
wippersnapper_ds18x20_Ds18x20Add

0 commit comments

Comments
 (0)