Skip to content

Commit febad4f

Browse files
add disconnect to example
1 parent 6fe9f93 commit febad4f

File tree

1 file changed

+34
-20
lines changed

1 file changed

+34
-20
lines changed

examples/pico/src/main.rs

Lines changed: 34 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -217,28 +217,39 @@ where
217217
T: Write,
218218
U: Read,
219219
{
220-
let mut connection = MQTTSessionSettings::new("88.198.226.54", 1883);
221-
let mqtt = Mqtt::new(connection);
222-
let mqtt_session = mqtt
223-
.create_session(&mut modem)
224-
.map_err(|_| AtError::MqttFailure)?;
225-
let mqtt_connection = mqtt_session
226-
.connect(
227-
&MQTTConnectionSettings {
228-
mqtt_id: 0,
229-
version: MQTTVersion::MQTT31,
230-
client_id: "0",
231-
keepalive_interval: 0,
232-
clean_session: false,
233-
will_flag: false,
234-
username: "marius",
235-
password: "Haufenhistory",
236-
},
237-
&mut modem,
238-
)
239-
.unwrap();
220+
let connection = MQTTSessionSettings::new("88.198.226.54", 1883);
221+
240222
loop {
241223
delay.delay_ms(1000);
224+
info!("creating mqtt session.");
225+
226+
let mqtt = Mqtt::new(&connection);
227+
let mqtt_session = mqtt
228+
.create_session(&mut modem)
229+
.map_err(|_| AtError::MqttFailure);
230+
if let Err(e) = mqtt_session {
231+
info!("mqtt session creation failed: {:?}. Retry", e);
232+
continue;
233+
}
234+
let mqtt_session = mqtt_session.unwrap();
235+
delay.delay_ms(1000);
236+
let mqtt_connection = mqtt_session
237+
.connect(
238+
&MQTTConnectionSettings {
239+
mqtt_id: 0, // mqtt_id should be taken from session!
240+
version: MQTTVersion::MQTT31,
241+
client_id: "nbiot",
242+
keepalive_interval: 0,
243+
clean_session: false,
244+
will_flag: false,
245+
username: "marius",
246+
password: "Haufenhistory",
247+
},
248+
&mut modem,
249+
)
250+
.unwrap();
251+
delay.delay_ms(1000);
252+
242253
match mqtt_connection.publish(
243254
&at_command::mqtt::MQTTMessage {
244255
topic: "test", // length max 128b
@@ -257,6 +268,9 @@ where
257268
continue;
258269
}
259270
};
271+
delay.delay_ms(1000);
272+
let mqtt = mqtt_connection.disconnect(&mut modem).unwrap();
273+
delay.delay_ms(10000);
260274
}
261275

262276
// connected_mqtt.

0 commit comments

Comments
 (0)