95914


SpresenseのGNSSアドンボードを用いてみちびきのDCreportを取得するアプリケーションの実装をしていますが、  
spGnssAddonクラス上のgetDCreportメソッドを呼び出し以降getNavDataで取得したデーターが更新されなくなりました。  
ブートローダーの更新も試してみましたが改善しません。  
spGnssAddonクラスを用いて正常にgetDCreportを実行できる方法をご教授シテいただけませんでしょうか。

以下に検証に用いたコードを添付します。

[code]

    #include <GNSS.h>
    #define SELECTSAT (SpSatelliteType)(GPS | QZ_L1CA | QZ_L1S)
    //static SpGnss Gnss;
    static SpGnssAddon Gnss;
    
    void setup() {
    
      Serial.begin(115200);
      if (Gnss.begin() != 0) {
        Serial.println("Gnss begin error!!");
      } else if (Gnss.start() != 0) {
        Serial.println("Gnss start error!!");
      } else {
        Serial.println("Gnss setup OK");
        Gnss.setInterval(SpInterval_1Hz);
        Gnss.select(SELECTSAT);
      }
    }
    
    void loop() {
      static char c = 0;
      if (Gnss.waitUpdate(-1)) {
        if (c++ % 2 == 1) {
          ledOn(LED0);
        } else {
          ledOff(LED0);
        }
        SpNavData NavData;
        Gnss.getNavData(&NavData);
    
        if (NavData.posDataExist && (NavData.posFixMode != FixInvalid)) {
          ledOn(LED1);
        } else {
          ledOff(LED1);
        }
    
        if ((NavData.satelliteType & QZ_L1S) != 0) {
          ledOn(LED2);
        } else {
          ledOff(LED2);
        }
    
        SpGnssTime time = NavData.time;
        Serial.printf("%04d/%02d/%02d ", time.year, time.month, time.day);
        Serial.printf("%02d:%02d:%02d.%06ld\n", time.hour, time.minute, time.sec, time.usec);
        if (NavData.posFixMode == FixInvalid) {
          Serial.print("No-Fix, ");
        } else {
          Serial.print("Fix, ");
        }
        if (NavData.posDataExist == 0) {
          Serial.print("No Position");
        } else {
          Serial.print("Lat=");
          Serial.print(NavData.latitude, 6);
          Serial.print(", Lon=");
          Serial.print(NavData.longitude, 6);
        }
        Serial.println("");
    
        struct cxd56_gnss_dcreport_data_s *handle = Gnss.getDCReport();
        if (handle) {
          ledOn(LED3);
          Serial.println(handle->svid);
        } else {
          ledOff(LED3);
        }
      }
    }
    
    
[/code]

上記のコードのspGnssAddonをspGnssに変更してアドオンボードを外した場合は正常に動作しました。


CC BY-SA 4.0
2023-08-10T04:27:38.047
95910
2023-08-10T07:09:32.380
59431
question
spresense
GNSSアドオンボードでgetDCReportを呼び出すとNavDataが更新されなくなる


現行のGNSS Add-onボードでは、災危通報機能には対応しておりません。  
今後、GNSS Add-onボードのファームウェアアップデートにより対応を予定しています。


CC BY-SA 4.0
2023-08-10T07:09:32.380
95914
2023-08-10T07:09:32.380
29520
95910
answer