@@ -262,11 +262,8 @@ struct fw_version_LoRa_s {
262262 String mac_version;
263263};
264264
265- class LoRaVersion : public IPAddress
266- {
267- public:
268- fw_version_LoRa_s fw_version_LoRa;
269- };
265+ IPAddress app_addr;
266+ IPAddress mac_addr;
270267
271268class LoRaModem : public Stream
272269{
@@ -499,20 +496,30 @@ class LoRaModem : public Stream
499496 return false ;
500497 }
501498
502- String version () {
499+ IPAddress version () {
503500
504501 // TODO: split firmware version in actual versions
505- LoRaVersion version_fw;
502+ String app_version_str;
503+ String mac_version_str;
504+ String app_num_str;
505+ String mac_num_str;
506506
507507 sendAT (GF (" +VER=?" ));
508508 if (waitResponse (fw_version) == 1 ) {
509- version_fw.fw_version_LoRa .app_version =fw_version.substring (0 ,fw_version.indexOf (' \r ' ));
510- version_fw.fw_version_LoRa .mac_version =fw_version.substring (fw_version.indexOf (' \n ' )+1 , fw_version.lastIndexOf (' \r ' , fw_version.indexOf (" OK" )));
511-
512- fw_version=fw_version.substring (0 ,fw_version.lastIndexOf (' \r ' , fw_version.indexOf (" OK" )));
509+ app_version_str=fw_version.substring (0 ,fw_version.indexOf (' \r ' ));
510+ mac_version_str=fw_version.substring (fw_version.indexOf (' \n ' )+1 , fw_version.lastIndexOf (' \r ' , fw_version.indexOf (" OK" )));
511+ }
512+ app_num_str=app_version_str.substring (app_version_str.indexOf (' =' )+2 , app_version_str.lastIndexOf (' \r ' ));
513+ mac_num_str=mac_version_str.substring (mac_version_str.indexOf (' =' )+2 , mac_version_str.lastIndexOf (' \r ' ));
514+
515+ if (app_addr.fromString (app_num_str)){
516+ DBG (" App num: " , app_addr);
517+ }
518+ if (mac_addr.fromString (mac_num_str)){
519+ DBG (" Mac num: " , mac_addr);
513520 }
514521
515- return fw_version ;
522+ return app_addr ;
516523 }
517524
518525 String deviceEUI () {
0 commit comments