memomem

備忘録・メモ置き場

SpresenseのGNSS測定周期を変更

ja.stackoverflow.com

arduinoで変更する場合は、 /Users/USER_NAME/Library/Arduino15/packages/SPRESENSE/hardware/spresense/2.2.1/libraries/GNSS/GNSS.cpp

のsetIntervalを変更し、Arduino側から直接指定できるようにする。

int SpGnss::setInterval(long interval)
{
    int ret;
    struct cxd56_gnss_ope_mode_param_s setdata;

    /* Set parameter. */

      setdata.mode     = 1;
    //   setdata.cycle    = interval * 1000;
      setdata.cycle    = interval; // 直接指定できるように変更

    /* Call ioctl. */

    ret = ioctl(fd_, CXD56_GNSS_IOCTL_SET_OPE_MODE, (unsigned long)&setdata);
    if (ret < OK)
    {
        PRINT_E("SpGnss E: Failed to set Interval\n");
    }

    return ret;
}

とはいえ、初期値が interval * 1000 なので、不具合など起きないかは含め自己責任で。