@@ -242,7 +242,17 @@ itsdk_config_ret_e itsdk_config_commitConfiguration(itsdk_config_commit_mode_e m
242242// ====================================================================================================
243243// CONSOLE PART
244244// ====================================================================================================
245-
245+ static bool __checkAndConvert (char * str ,uint8_t start ,uint8_t stop ,uint8_t sz ,uint8_t * buf ) {
246+ if ( (stop - start ) < 2 * sz ) return false;
247+ int k = 0 ;
248+ for ( int i = start ; i < stop ; i += 2 ) {
249+ if ( itdt_isHexChar (str [i ],false) && itdt_isHexChar (str [i + 1 ],false) ) {
250+ buf [k ] = itdt_convertHexChar2Int (& str [i ]);
251+ k ++ ;
252+ } else return false;
253+ }
254+ return true;
255+ }
246256
247257#if ITSDK_WITH_CONSOLE == __ENABLE
248258
@@ -295,6 +305,28 @@ itsdk_config_ret_e itsdk_config_commitConfiguration(itsdk_config_commit_mode_e m
295305 _itsdk_console_printf ("sdk.lora.networkType : %d\r\n" ,_c -> sdk .lorawan .networkType );
296306 _itsdk_console_printf ("sdk.lora.retries : %d\r\n" ,_c -> sdk .lorawan .retries );
297307 #endif
308+
309+ #if ITSDK_WITH_SIGFOX_LIB == __ENABLE
310+ _itsdk_console_printf ("sdk.sigfox.rssiCal : %d\r\n" ,_c -> sdk .sigfox .rssiCal );
311+ _itsdk_console_printf ("sdk.sigfox.txPower : %ddB\r\n" ,_c -> sdk .sigfox .txPower );
312+ _itsdk_console_printf ("sdk.sigfox.speed : %dbps\r\n" ,_c -> sdk .sigfox .speed );
313+ _itsdk_console_printf ("sdk.sigfox.rcz : %d\r\n" ,_c -> sdk .sigfox .rcz );
314+ _itsdk_console_printf ("sdk.sigfox.sgfxKey : %d\r\n" ,_c -> sdk .sigfox .sgfxKey );
315+ #if ITSDK_SIGFOX_NVM_SOURCE == __SFX_NVM_LOCALEPROM
316+ _itsdk_console_printf ("sdk.sigfox.initialPac : [%02X%02X%02X%02X%02X%02X%02X%02X]\r\n" ,
317+ _c -> sdk .sigfox .initialPac [0 ],
318+ _c -> sdk .sigfox .initialPac [1 ],
319+ _c -> sdk .sigfox .initialPac [2 ],
320+ _c -> sdk .sigfox .initialPac [3 ],
321+ _c -> sdk .sigfox .initialPac [4 ],
322+ _c -> sdk .sigfox .initialPac [5 ],
323+ _c -> sdk .sigfox .initialPac [6 ],
324+ _c -> sdk .sigfox .initialPac [7 ]
325+ );
326+ _itsdk_console_printf ("sdk.sigfox.deviceId : %08X \r\n" ,_c -> sdk .sigfox .deviceId );
327+ #endif
328+ #endif
329+
298330 #if ITSDK_WITH_CONFIGURATION_APP == __ENABLE
299331 itsdk_config_app_printConfig (_c );
300332 #endif
@@ -327,6 +359,14 @@ static itsdk_console_return_e _itsdk_config_consolePriv(char * buffer, uint8_t s
327359 _itsdk_console_printf ("SC:3:x : lora.networkType 1:PUBLIC/2:PRIVATE\r\n" );
328360 _itsdk_console_printf ("SC:4:nn : lora.retries 00..99\r\n" );
329361 #endif
362+ #if ITSDK_WITH_SIGFOX_LIB == __ENABLE
363+ _itsdk_console_printf ("SC:8:xx : sigfox.txPower 00-22dB (decimal) 99 (default)\r\n" );
364+ _itsdk_console_printf ("SC:9:xx : sigfox.speed 0(default)/100/600bps (decimal)\r\n" );
365+ _itsdk_console_printf ("SC:A:xx : sigfox.rcz [01,02,3c,04,05]\r\n" );
366+ _itsdk_console_printf ("SC:B:x : sigfox.sgfxKey 0:PRIVATE 1:PUBLIC\r\n" );
367+ _itsdk_console_printf ("SC:C:8hex : sigfox.initialPac 8B hex string\r\n" );
368+ _itsdk_console_printf ("SC:D:4hex : sigfox.deviceId 4B hex string\r\n" );
369+ #endif
330370 return ITSDK_CONSOLE_SUCCES ;
331371 break ;
332372 #if ITSDK_CONFIGURATION_MODE != __CONFIG_STATIC
@@ -433,6 +473,127 @@ static itsdk_console_return_e _itsdk_config_consolePriv(char * buffer, uint8_t s
433473 return ITSDK_CONSOLE_FAILED ;
434474 break ;
435475 #endif
476+ #if ITSDK_WITH_SIGFOX_LIB == __ENABLE
477+ case '8' :
478+ // sigfox.txPower
479+ if ( sz >= 7 ) {
480+ int v = 0 ;
481+ char c = buffer [5 ];
482+ if ( c >= '0' && c <= '9' ) {
483+ v = 10 * (c - '0' );
484+ c = buffer [6 ];
485+ if ( c >= '0' && c <= '9' ) {
486+ v = v + (c - '0' );
487+ } else v = -1 ;
488+ } else v = -1 ;
489+ if ( v >= 0 && v < 24 ) {
490+ itsdk_config_shadow .sdk .sigfox .txPower = v ;
491+ _itsdk_console_printf ("OK\r\n" );
492+ return ITSDK_CONSOLE_SUCCES ;
493+ }
494+ if ( v == 99 ) {
495+ itsdk_config_shadow .sdk .sigfox .txPower = SIGFOX_DEFAULT_POWER ;
496+ _itsdk_console_printf ("OK\r\n" );
497+ return ITSDK_CONSOLE_SUCCES ;
498+ }
499+ }
500+ _itsdk_console_printf ("KO\r\n" );
501+ return ITSDK_CONSOLE_FAILED ;
502+ break ;
503+ case '9' :
504+ // sigfox.speed
505+ if ( sz >= 8 ) {
506+ if ( buffer [6 ] == '0' && buffer [7 ] == '0' ) {
507+ if ( buffer [5 ] == '1' ) {
508+ itsdk_config_shadow .sdk .sigfox .speed = SIGFOX_SPEED_100 ;
509+ _itsdk_console_printf ("OK\r\n" );
510+ return ITSDK_CONSOLE_SUCCES ;
511+ } else if ( buffer [5 ] == '6' ) {
512+ itsdk_config_shadow .sdk .sigfox .speed = SIGFOX_SPEED_600 ;
513+ _itsdk_console_printf ("OK\r\n" );
514+ return ITSDK_CONSOLE_SUCCES ;
515+ } else if ( buffer [5 ] == '0' ) {
516+ itsdk_config_shadow .sdk .sigfox .speed = SIGFOX_DEFAULT_SPEED ;
517+ _itsdk_console_printf ("OK\r\n" );
518+ return ITSDK_CONSOLE_SUCCES ;
519+ }
520+ }
521+ }
522+ _itsdk_console_printf ("KO\r\n" );
523+ return ITSDK_CONSOLE_FAILED ;
524+ break ;
525+ case 'A' :
526+ if ( sz >= 7 ) {
527+ if ( buffer [5 ] == '0' && buffer [6 ] == '1' ) {
528+ itsdk_config_shadow .sdk .sigfox .rcz = SIGFOX_RCZ1 ;
529+ _itsdk_console_printf ("OK\r\n" );
530+ return ITSDK_CONSOLE_SUCCES ;
531+ }
532+ if ( buffer [5 ] == '0' && buffer [6 ] == '2' ) {
533+ itsdk_config_shadow .sdk .sigfox .rcz = SIGFOX_RCZ2 ;
534+ _itsdk_console_printf ("OK\r\n" );
535+ return ITSDK_CONSOLE_SUCCES ;
536+ }
537+ if ( buffer [5 ] == '3' && buffer [6 ] == 'c' ) {
538+ itsdk_config_shadow .sdk .sigfox .rcz = SIGFOX_RCZ3C ;
539+ _itsdk_console_printf ("OK\r\n" );
540+ return ITSDK_CONSOLE_SUCCES ;
541+ }
542+ if ( buffer [5 ] == '0' && buffer [6 ] == '4' ) {
543+ itsdk_config_shadow .sdk .sigfox .rcz = SIGFOX_RCZ4 ;
544+ _itsdk_console_printf ("OK\r\n" );
545+ return ITSDK_CONSOLE_SUCCES ;
546+ }
547+ if ( buffer [5 ] == '0' && buffer [6 ] == '5' ) {
548+ itsdk_config_shadow .sdk .sigfox .rcz = SIGFOX_RCZ5 ;
549+ _itsdk_console_printf ("OK\r\n" );
550+ return ITSDK_CONSOLE_SUCCES ;
551+ }
552+ }
553+ _itsdk_console_printf ("KO\r\n" );
554+ return ITSDK_CONSOLE_FAILED ;
555+ break ;
556+ case 'B' :
557+ if ( sz >= 6 ) {
558+ if ( buffer [5 ] == '0' ) {
559+ itsdk_config_shadow .sdk .sigfox .sgfxKey = SIGFOX_KEY_PRIVATE ;
560+ _itsdk_console_printf ("OK\r\n" );
561+ return ITSDK_CONSOLE_SUCCES ;
562+ }
563+ if ( buffer [5 ] == '1' ) {
564+ itsdk_config_shadow .sdk .sigfox .sgfxKey = SIGFOX_KEY_PUBLIC ;
565+ _itsdk_console_printf ("OK\r\n" );
566+ return ITSDK_CONSOLE_SUCCES ;
567+ }
568+ }
569+ _itsdk_console_printf ("KO\r\n" );
570+ return ITSDK_CONSOLE_FAILED ;
571+ break ;
572+ case 'C' :
573+ {
574+ uint8_t b [8 ];
575+ if ( __checkAndConvert (buffer ,5 ,sz ,8 ,b ) ) {
576+ bcopy (b ,itsdk_config_shadow .sdk .sigfox .initialPac ,8 );
577+ _itsdk_console_printf ("OK\r\n" );
578+ return ITSDK_CONSOLE_SUCCES ;
579+ }
580+ _itsdk_console_printf ("KO\r\n" );
581+ return ITSDK_CONSOLE_FAILED ;
582+ }
583+ break ;
584+ case 'D' :
585+ {
586+ uint8_t b [4 ];
587+ if ( __checkAndConvert (buffer ,5 ,sz ,4 ,b ) ) {
588+ bcopy (b ,itsdk_config_shadow .sdk .sigfox .deviceId ,4 );
589+ _itsdk_console_printf ("OK\r\n" );
590+ return ITSDK_CONSOLE_SUCCES ;
591+ }
592+ _itsdk_console_printf ("KO\r\n" );
593+ return ITSDK_CONSOLE_FAILED ;
594+ }
595+ break ;
596+ #endif // ITSDK_WITH_SIGFOX_LIB
436597 default :
437598 break ;
438599 }
0 commit comments