19
19
#include "cloud_module.h"
20
20
#include "fota.h"
21
21
#include "location.h"
22
+ #include "led.h"
22
23
23
24
#if defined(CONFIG_APP_BATTERY )
24
25
#include "battery.h"
@@ -219,7 +220,7 @@ static void init_run(void *o)
219
220
}
220
221
221
222
if ((user_object -> status == CLOUD_DISCONNECTED ) ||
222
- (user_object -> status == CLOUD_CONNECTED_PAUSED )) {
223
+ (user_object -> status == CLOUD_CONNECTED_PAUSED )) {
223
224
LOG_DBG ("Cloud disconnected/paused, going into disconnected state" );
224
225
STATE_SET (app_state , STATE_CLOUD_DISCONNECTED );
225
226
return ;
@@ -235,6 +236,25 @@ static void cloud_disconnected_entry(void *o)
235
236
236
237
LOG_DBG ("%s" , __func__ );
237
238
239
+ int err ;
240
+
241
+ /* Blink Yellow */
242
+ struct led_msg led_msg = {
243
+ .type = LED_RGB_SET ,
244
+ .red = 255 ,
245
+ .green = 255 ,
246
+ .blue = 0 ,
247
+ .duration_on_msec = 1000 ,
248
+ .duration_off_msec = 1000 ,
249
+ .repetitions = 10 ,
250
+ };
251
+ err = zbus_chan_pub (& LED_CHAN , & led_msg , K_SECONDS (1 ));
252
+ if (err ) {
253
+ LOG_ERR ("zbus_chan_pub, error: %d" , err );
254
+ SEND_FATAL_ERROR ();
255
+ return ;
256
+ }
257
+
238
258
k_work_cancel_delayable (& trigger_work );
239
259
}
240
260
@@ -245,7 +265,7 @@ static void cloud_disconnected_run(void *o)
245
265
LOG_DBG ("%s" , __func__ );
246
266
247
267
if ((user_object -> chan == & CLOUD_CHAN ) &&
248
- (user_object -> status == CLOUD_CONNECTED_READY_TO_SEND )) {
268
+ (user_object -> status == CLOUD_CONNECTED_READY_TO_SEND )) {
249
269
LOG_DBG ("Cloud connected and ready, going into connected state" );
250
270
STATE_SET (app_state , STATE_CLOUD_CONNECTED );
251
271
return ;
@@ -260,6 +280,26 @@ static void cloud_connected_entry(void *o)
260
280
261
281
LOG_DBG ("%s" , __func__ );
262
282
283
+ int err ;
284
+
285
+ /* Blink Green */
286
+ struct led_msg led_msg = {
287
+ .type = LED_RGB_SET ,
288
+ .red = 0 ,
289
+ .green = 255 ,
290
+ .blue = 0 ,
291
+ .duration_on_msec = 1000 ,
292
+ .duration_off_msec = 1000 ,
293
+ .repetitions = 10 ,
294
+ };
295
+
296
+ err = zbus_chan_pub (& LED_CHAN , & led_msg , K_SECONDS (1 ));
297
+ if (err ) {
298
+ LOG_ERR ("zbus_chan_pub, error: %d" , err );
299
+ SEND_FATAL_ERROR ();
300
+ return ;
301
+ }
302
+
263
303
k_work_reschedule (& trigger_work , K_NO_WAIT );
264
304
}
265
305
@@ -270,8 +310,8 @@ static void cloud_connected_run(void *o)
270
310
LOG_DBG ("%s" , __func__ );
271
311
272
312
if ((user_object -> chan == & CLOUD_CHAN ) &&
273
- ((user_object -> status == CLOUD_CONNECTED_PAUSED ) ||
274
- (user_object -> status == CLOUD_DISCONNECTED ))) {
313
+ ((user_object -> status == CLOUD_CONNECTED_PAUSED ) ||
314
+ (user_object -> status == CLOUD_DISCONNECTED ))) {
275
315
LOG_DBG ("Cloud disconnected/paused, going into disconnected state" );
276
316
STATE_SET (app_state , STATE_CLOUD_DISCONNECTED );
277
317
return ;
@@ -321,9 +361,9 @@ static void app_callback(const struct zbus_channel *chan)
321
361
int err ;
322
362
323
363
if ((chan != & CONFIG_CHAN ) &&
324
- (chan != & CLOUD_CHAN ) &&
325
- (chan != & BUTTON_CHAN ) &&
326
- (chan != & TIME_CHAN )) {
364
+ (chan != & CLOUD_CHAN ) &&
365
+ (chan != & BUTTON_CHAN ) &&
366
+ (chan != & TIME_CHAN )) {
327
367
LOG_ERR ("Unknown channel" );
328
368
return ;
329
369
}
0 commit comments