# FDILink指令配置示例 ## 进入配置模式 ```uart #fconfig\r\n ``` ## 滤波器开关配置示例——将3D磁力计的融合开关打开 ```uart #fconfig\r\n // 1. 进入配置模式 #fparam get AID_MAG_V_MAGNETIC\r\n // 2. 获取当前滤波器状态 #fparam set AID_MAG_V_MAGNETIC 1\r\n // 3. 设置3D磁辅助为打开状态 #fsave\r\n // 4. 保存设置 #freboot\r\n // 5. 重启设备 ``` ## 将COM2 改成NMEA(OUT) 协议 ```uart #fparam get AID_GNSS_VEL_UPDATE\r\n #fparam get MAG_GEOMAGFIELD_B\r\n #fconfig\r\n #fdeconfig\r\n #fsave\r\n #freboot\r\n y\r\n #fconfig\r\n ``` ## 设置端口1的类型为MAIN ```uart #fparam set COMM_STREAM_TYP1 1\r\n ``` ## 设置端口4的类型为NONE ```uart #fparam set COMM_STREAM_TYP4 0\r\n ``` ## 波特率修改配置 ```uart #fimucal_gyro\r\n #fmagcal3d\r\n #faxis\r\n #fmsg 40 100\r\n #fmsg\r\n #fante\r\n ``` ```c Stream_TxBlock(stream, "UNLOG\r\n", strlen("UNLOG\r\n")); // Stream_TxBlock(stream, "GPGGA 1\r\n", strlen("GPGGA 1\r\n")); //增加NMEA解析数据会有2-3s延迟 字符形式解析慢 Stream_TxBlock(stream, "AGRICB 0.1\r\n", strlen("AGRICB 0.1\r\n")); Stream_TxBlock(stream, "LOG PSRDOPB ONCHANGED\r\n", strlen("LOG PSRDOPB ONCHANGED\r\n")); Stream_TxBlock(stream, "LOG PSRVELB ONTIME 0.1\r\n", strlen("LOG PSRVELB ONTIME 0.1\r\n")); // Stream_TxBlock(stream, "LOG PSRPOSB ONTIME 0.1\r\n", strlen("LOG PSRPOSB ONTIME 0.1\r\n")); Stream_TxBlock(stream, "LOG HEADINGB ONTIME 0.1\r\n", strlen("LOG HEADINGB ONTIME 0.1\r\n")); // Stream_TxBlock(stream, "LOG BESTXYZB ONTIME 0.1\r\n", strlen("LOG BESTXYZB ONTIME 0.1\r\n")); ``` ## fconfig指令 | 属性 | 内容 | |:---|:---| | **命令** | **#fconfig** | | 说明 | 使导航设备由导航模式进入配置模式,配置模式下设备不再进行导航也不输出数据。所有配置命令仅在配置模式下有效。配置完成后请保存,否则已配置项不会保存和生效 | | 格式 | `#fconfig` | | 需要确认 | 否 | | 重启生效 | 否 | | 示例 | 输入:`#fconfig` — 导航设备停止输出导航结果,并输出: `#OK` | ## fdeconfig指令 | 属性 | 内容 | |:---|:---| | **命令** | **#fdeconfig** | | 说明 | 使导航设备由配置模式恢复导航模式 | | 格式1 | `#fdeconfig` | | 需要确认 | 否 | | 重启生效 | 否 | | 示例 | 输入:`#fdeconfig` — 导航设备重新输出导航数据 | | 回复 | `*#OK` — 成功进入导航模式 | ## freboot | 属性 | 内容 | |:---|:---| | **命令** | **#freboot** | | 说明 | 重新热启动设备 | | 格式 | `#freboot` | | 需要确认 | 是 | | 重启生效 | 否 | | 示例 | 输入`#freboot`,设备重新热启动 | | 备注 | 重新启动时所有未保存的设置将不会保存,也不会生效。重新启动命令不会重启 gnss 模组 | ## freset | 属性 | 内容 | |:---|:---| | **命令** | **#freset** | | 说明 | 将配置恢复到出厂初始值,恢复出厂配置后用户配置将全部清除,固件版本保持不变 | | 格式 | `#freset` | | 需要确认 | 是 | | 重启生效 | 否 | | 示例 | `#freset` | | 备注 | 通过上位机的参数导出按钮可以将重置之前的用户配置保存下来 | ## fsave | 属性 | 内容 | |:---|:---| | **命令** | **#fsave** | | 说明 | 配置保存 | | 格式 | `#fsave` | | 需要确认 | 否 | | 重启生效 | 否 | | 示例 | `#fsave` | | 备注 | 几乎所有的配置更改后都需要执行配置保存操作,这样重启后才能保证配置生效 | ## fante | 属性 | 内容 | |:---|:---| | **命令** | **#fante** | | 说明 | 配置双天线航向与载体前向夹角 | | 格式1 | `#fante` — 查询GNSS天线配置信息:双天线航向偏角、双天线基线长度、天线杆臂 | | 格式2 | `#fanteheadbias angle` — 其中 angle 为角度值,值域在 0 至 360°间 | | 格式3 | `#fantebaseline length` — 配置双天线之间基线的长度,length单位为米m | | 格式4 | `#fantearm x y z` — 配置GNSS主天线到IMU的杆臂命令 | | 示例 | 将双天线航向与载体前向夹角设置为 270 度:
输入:`#fanteheadbias 270.0`
输出:`*#OK` | | 备注 | 定义:主天线到从天线为基线矢量正方向,从IMU正上方看去,顺时针为天线航向偏角的正方向 | ## fimucal | 属性 | 内容 | |:---|:---| | **命令** | **#fimucal** | | 说明 | 校准陀螺仪、加表的常值零偏以及调平 | | 格式1 | `#fimucal_level` — 将IMU坐标系调平至水平面,不改变陀螺和加表零偏 | | 格式2 | `#fimucal_acce` — 执行加速度计零偏校准 | | 格式3 | `#fimucal_gyro` — 执行陀螺仪零偏校准 | | 需要确认 | 否 | | 重启生效 | 是 | | 示例 | 输入`#fimucal_level`,IMU调平校准 | | 备注 | **注意!** 格式1和格式2需要在水平静止状态下执行该命令;格式3只需要模块保持静止 | ## fmsg | 属性 | 内容 | |:---|:---| | **命令** | **#fmsg** | | 说明 | 配置发送的数据内容 | | 格式1 | `#fmsg` — 查询当前数据包信息。显示内容包括所有支持的数据包以及数据包ID以及其发送频率 | | 格式2 | `#fmsg msg freq` — msg为2位十六进制数字,表示数据包ID;freq为设置指定数据包的发送频率 | | 需要确认 | 否 | | 重启生效 | 是 | | 示例 | 输入:`#fmsg 40 100`,表示IMU数据以100Hz的频率发送
输出:`IMU [40] 100.0Hz`,表示IMU数据已经设置为100Hz的发送频率 | ## fparam | 属性 | 内容 | |:---|:---| | **命令** | **#fparam** | | 说明 | 读取或配置参数 | | 格式1 | `#fparam get paramName` — paramName 需要获取的参数名称 | | 格式2 | `#fparam set paramName paramValue` — paramName需要设置的参数名称;paramValue参数的数值,十进制 | | 需要确认 | 否 | | 重启生效 | 是 | | **配置说明1:串口波特率配置** | paramName的值和paramValue的值见表1 (DETA系列) 和表2 (EPSILON系列),默认配置中COMM_BAUD1 (端口1) 的波特率被设置为921600bps | | **示例1** | 输入:`#fparam get COMM_BAUD2\r\n`
输出:`COMM_BAUD2=5`,表示现在端口2为 115200bps
输入:`#fparam set COMM_BAUD2 8\r\n`
输出:`*#OK`,表示成功将端口2改为921600bps | | **备注1** | 默认端口1配置为Main协议,若端口1配置为其它波特率,则保存重启后波特率也需要重新选择,同时**强烈不建议**将Main协议端口的波特率设置在115200bps以下 | | **配置说明2:滤波开关配置** | 除了在上位机配置滤波器开关外,用户同样可以使用串口指令进行配置:paramName的值可见表3,相应的paramValue为0或者1;0表示关闭,1表示打开 | | **示例2** | 输入:`#fparam get AID_MAG_2D_MAGNETIC\r\n`
输出:`AID_MAG_2D_MAGNETIC=1`,表示磁力计2D辅助开关是打开的
输入:`#fparam set AID_MAG_2D_MAGNETIC 0\r\n`
输出:`*#OK`,表示不使用磁力计进行融合 | | **备注2** | 滤波开关的配置最好在测试前进行,测试中对滤波开关进行配置可能会破坏滤波器的稳定,容易导致位姿的突变与发散 | | **配置说明3:传感器参数修改** | 用户可以使用串口指令查看或者修改位于上位机 Onboard Parameters里的所有传感器参数,包含imu参数、GNSS参数、DEBUG参数等等 | | **示例3** | 输入:`#fparam get IMU_ACC_AVG\r\n`
输出:`IMU_ACC_AVG=9.794700`,表示当地重力加速度计为9.794700m/s²
输入:`#fparam get GNSS_MIN_VACC\r\n`
输出:`GNSS_MIN_VACC=2.500000`,表示当GNSS垂直方向的精度小于2.5m这个阈值时,才会使用GNSS进行组合导航
输入:`#fparam set GNSS_MIN_VACC 0.1\r\n`
输出:`*#OK`,表示成功将GNSS垂直方向的阈值设置为0.1m,这在客户使用RTK高精度组合导航时是有用的,可以防止在GNSS信号变差时对系统造成一定的负面影响 | | **备注3** | 传感器参数的修改一般只用于FDISYSTEMS研发人员的调试阶段,除非用户对该领域很熟悉,否则不建议自行修改 | | **配置说明4:端口协议配置** | 端口协议除了在上位机配置外,还能使用串口指令进行配置,端口协议见表4,常用的端口协议为Main、NAV、RTCM、NMEA和Ublox | | **示例4** | 输入:`#fparam get COMM_STREAM_TYP1\r\n`
输出:`COMM_STREAM_TYP1=1`,表示端口1配置为Main协议
输入:`#fparam set COMM_STREAM_TYP2 2\r\n`
输出:`*#OK`,表示将端口2配置为NAV协议,即可以通过端口2获取FDILink协议的数据;此时用户通过端口1或端口2均能获取数据,此外端口1还能连接上位机,便于实时调试
输入:`#fparam set COMM_STREAM_TYP3 6\r\n`
输出:`*#OK`,表示将端口3配置为Ublox模式,如果端口3有接收到Ublox类型的数据,保存重启后即可实现GPS/INS组合导航 | | **备注4** | 上述所有配置内容都需要`#fsave`保存,否则重新上电后失效;
此外所有端口中必须有一个配置为Main协议,只有该端口可以连接上位机 | ## fmagcal2d | 属性 | 内容 | |:---|:---| | **命令** | **#fmagcal2d** | | 说明 | 磁力计2d校准指令,输入完成后用户在平面上沿模块中心缓慢旋转一周后完成校准,完成后自动保存校准数据并退出当前的配置模式 | | 格式1 | `#fmagcal2d` | | 需要确认 | 否 | | 重启生效 | 是 | | 示例 | 输入:`#fmagcal2d\r\n`
输出:`*#OK`,表示可以开始进行2d校准
输出:`This is a magnetometer 2D calibration. Please wait until the magnetometer progress bar reaches 100 percent Now: 0 percent`
表示2D校准的实时进度,刷新频率为1HZ。当进度到达100 percent表示校准成功系统将立即退出当前配置模式,重新发送FDILink数据 | ## fmagcal3d — 3D磁校准指令 | 属性 | 内容 | |:---|:---| | **命令** | **#fmagcal3d** | | 说明 | 磁力计3d校准指令,输入完成后用户在空中缓慢画8字进行校准,完成后自动保存校准数据退出当前的配置模式 | | 格式1 | `#fmagcal3d` | | 需要确认 | 否 | | 重启生效 | 是 | | 示例 | 输入:`#fmagcal3d\r\n`
输出:`*#OK`,表示可以开始进行3d校准
输出:
`This is a magnetometer 3D calibration.`
`The fitting error of the current calculation: xxx`
`Calibration Algorithm: xxx`
表示3D校准的实时状态,刷新频率为1HZ。"The fitting error of the current calculation : xxx"表示当前计算的拟合误差,参数类型为单精度浮点数类型。"Calibration Algorithm: xxx"表示的是校准算法等级,参数等级分为Low, Mid, High三种。当计算的拟合误差小于3.000f,并算法等级等于High时表示校准成功系统将立即退出当前配置模式,即重新发送FDILink数据 | ## fdgnss | 属性 | 内容 | |:---|:---| | **命令** | **#fdgnss** | | 说明 | 读取或配置上位机DGNSS栏参数 | | 格式1 | `#fdgnss get gnssName`
gnssName 需要获取的参数名称,包含:
• `RTCM_TYPE` — 发送或接收RTCM的方式
• `NET_INFO_IMEI` — SIM卡的IMEI信息(无法配置)
• `NET_INFO_CCID` — SIM卡的CCID信息(无法配置)
• `NTRIP_SVR_DOMAIN` — Ntrip的IP地址
• `NTRIP_SVR_PORT` — Ntrip的IP端口
• `NTRIP_MOUNT` — Ntrip的挂载点
• `NTRIP_ACCOUNT` — Ntrip账号
• `NTRIP_PASSWORD` — Ntrip密码
• `FDI_AUTH` — FDI云鉴权码 | | 格式2 | `#fdgnss set gnssName gnssValue`
gnssName 需要设置的参数名称
gnssValue 参数的数值,十进制

**RTCM_TYPE参数特殊定义:**
• 0 — Radio
• 1 — 千寻位置SDK
• 2 — Ntrip配置
• 3 — FDI云

其余gnssValue无特殊定义 | | 需要确认 | 否 | | 重启生效 | 是 | | 示例1 | 输入:`#fdgnss get NTRIP_SVR_PORT\r\n`
输出:`NTRIP_SVR_PORT:8002`,表示Ntrip的IP端口为8002 | | 示例2 | **完整配置NTRIP账号过程:**
1. 输入:`#fdgnss set RTCM_TYPE 3\r\n` → 输出:`*#OK`(切换为NTRIP配置)
2. 输入:`#fdgnss set NTRIP_SVR_DOMAIN xxx.xxx.xx.xxx\r\n` → 输出:`*#OK`(IP配置成功)
3. 输入:`#fdgnss set NTRIP_SVR_PORT 8002\r\n` → 输出:`*#OK`(端口配置为8002)
4. 输入:`#fdgnss set NTRIP_MOUNT RTCM32_GGB\r\n` → 输出:`*#OK`(挂载点配置为RTCM32_GGB)
5. 输入:`#fdgnss set NTRIP_ACCOUNT qxx1234\r\n` → 输出:`*#OK`(账号配置为qxx1234)
6. 输入:`#fdgnss set NTRIP_PASSWORD 12345678\r\n` → 输出:`*#OK`(密码配置为12345678) | | 备注 | 上述所有配置内容都需要`#fsave`保存,否则重新上电后失效 | ## 附录表格 ### 表1:DETA 系列v2端口波特率配置说明 | paramName | 端口说明 | paramValue | 对应波特率 | |:---|:---|:---:|:---| | COMM_BAUD1 | UART, TTL电平, 设置范围9600bps-921600bps | 1 | 9600bps | | | | 2 | 19200bps | | | | 3 | 38400bps | | COMM_BAUD2 | UART, TTL电平, 设置范围9600bps-921600bps | 4 | 76800bps | | | | 5 | 115200bps | | | | 6 | 230400bps | | COMM_BAUD3 | UART, TTL电平, 设置范围9600bps-921600bps | 7 | 460800bps | | | | 8 | 921600bps | | | | 9 | 2625000bps | | COMM_BAUD4 | UART, TTL电平, 设置范围9600bps-921600bps | 10 | 5250000bps | | | | 11 | 10500000bps | | | | 12 | 100000bps | | COMM_BAUD5 | CAN, 可设置波特率为250000bps、500000bps、1000000bps | 13 | 250000bps | | | | 14 | 500000bps | | | | 15 | 1000000bps | ### 表2:EPSILON系列端口波特率配置说明 | paramName | 端口说明 | paramValue | 对应波特率 | |:---|:---|:---:|:---| | COMM_BAUD1 | RS232,设置范围9600bps-921600bps | 1 | 9600bps | | | | 2 | 19200bps | | | | 3 | 38400bps | | COMM_BAUD2 | RS232,设置范围9600bps-921600bps | 4 | 76800bps | | | | 5 | 115200bps | | | | 6 | 230400bps | | COMM_BAUD3 | RS422,设置范围9600bps-921600bps | 7 | 460800bps | | | | 8 | 921600bps | | | | 9 | 2625000bps | | COMM_BAUD4 | GPIO TTL,设置范围9600bps-921600bps | 10 | 5250000bps | | | | 11 | 10500000bps | | | | 12 | 100000bps | | COMM_BAUD5 | CAN,可设置波特率为250000bps、500000bps、1000000bps | 13 | 250000bps | | | | 14 | 500000bps | | | | 15 | 1000000bps | ### 表3:SPKF融合开关说明 | paramName | 说明 | |:---|:---| | AID_ACCEL_GRAVITY | 加速度计融合开关 | | AID_BRO_ALT_UPDATE | 气压计融合开关 | | AID_CAR_CENT_ACCEL_NHC_ENABLED | 汽车向心加速度补偿开关 | | AID_CAR_YZ_ZERO_VEL_NHC_ENABLED | 汽车零速更新开关 | | AID_EXT_HEADING_UPDATE | 外部航向输入开关 | | AID_GNSS_POS_UPDATE | GNSS 位置融合开关 | | AID_GNSS_TRACK_HEADING_UPDATE | GNSS 航迹角融合开关 | | AID_GNSS_VEL_UPDATE | GNSS 速度融合开关 | | AID_GYO_TURN_ON_TARE_ENABLED | 开机时静态陀螺零偏估计开关 | | AID_INIT_YAW_USE_MAG | 磁力计初始化航向角开关 | | AID_MAG_2D_MAGNETIC | 磁航向融合开关 | | AID_MAG_3D_MAGNETIC | 磁矢量融合开关 | | AID_ODOMETER_VEL_UPDATE | 里程计融合开关 | | AID_OPTICFLOW_UPDATE | 光流计融合开关 | | AID_ZERO_POS_UPDATE | 零位置更新开关 | | AID_ZERO_RATE_UPDATE | 零角速度更新开关 | | AID_ZERO_VEL_UPDATE | 零速度更新 | ### 表4:端口协议类型与说明 | paramName | 端口协议 | 说明 | paramValue | |:---|:---|:---|:---:| | **COMM_STREAM_TYP(1-5)** | **None** | 空 | 0 | | | **Main** | 主协议,导航数据收发和连接上位机,通过0xF0切换模式 | 1 | | | **NAV** | 导航模式,收发 | 2 | | | **RTCM** | 接收差分修正数据v3版,D3 00开头 | 3 | | | **NMEA** | 接收NMEA格式数据 | 4 | | | **NMEA(OUT)** | 导航输出NMEA格式数据 | 5 | | | **Ublox** | 接收UBX格式数据 | 6 | | | **External Position** | 接收外部位置数据 | 7 | | | **External Velocity** | 接收外部速度数据 | 8 | | | **External Position&Velocity** | 接收外部位置和速度数据 | 9 | | | **External Attitude angle** | 接收外部姿态数据 | 10 | | | **External Time** | 接收外部时间数据 | 11 | | | **External Heading** | 接收外部航向数据 | 12 | | | **External Depth** | 接收外部深度数据 | 13 | | | **External SLAM1** | 接收外部slam1数据 | 14 | | | **External SLAM2** | 接收外部slam2数据 | 15 | | | **External Pitot Pressure** | 接收外部气压计数据 | 16 | | | **External Air speed** | 接收外部空速数据 | 17 | | | **External Odom** | 接收外部里程计数据 | 18 | | | **External LIDAR** | 接收外部雷达数据 | 19 |