You need to enable JavaScript to run this app. OpenDNP3 master-gprs-tls-demo、outstation-tls-demo运行求助
优惠活动
大模型
产品
解决方案
定价
更多

OpenDNP3 master-gprs-tls-demo、outstation-tls-demo运行求助

异常场景下的程序正常运行操作指南

当前遇到的两类异常(主站运行master-gprs-tls-demo输出usage提示、子站运行outstation-tls-demo也打印master程序的usage提示),本质集中在程序错配、入参缺失、编译目标错位三类原因,按以下固定步骤操作即可恢复运行。

第一步:校验可执行文件的匹配关系

  • 在对应运行终端执行ls -l $(which master-gprs-tls-demo) $(which outstation-tls-demo),查看两个文件的大小、最后修改时间
  • 单独不带参数执行outstation-tls-demo,对比输出的usage内容:如果输出和master程序的提示完全一致,说明当前系统登记的outstation-tls-demo是错放的master程序,需要删除该路径下的错配文件,替换为正确编译的子站程序

第二步:对齐程序运行的必填入参

程序主动打印usage提示的核心触发条件是入参校验不通过,需严格按照帮助信息传入必填参数:

  • 主站侧运行master-gprs-tls-demo:先不带参数执行拿到完整帮助列表,按要求传入TLS证书路径、私钥路径、CA根证书路径、监听端口、GPRS透传模块对应的串口设备路径,典型命令格式参考:
    ./master-gprs-tls-demo --cert ./certs/master.crt --key ./certs/master.key --ca ./certs/ca.crt --listen-port 20000 --gprs-serial /dev/ttyUSB0
  • 子站侧运行outstation-tls-demo:先不带参数执行拿到对应程序的专属帮助列表,按要求传入子站自身的证书、私钥、CA根证书、主站连接地址/端口、自身遥测点配置,典型命令格式参考:
    ./outstation-tls-demo --cert ./certs/outstation.crt --key ./certs/outstation.key --ca ./certs/ca.crt --master-addr 主站IP --port 20000
    如果运行outstation程序时无法拿到专属的子站帮助提示,直接跳过当前步骤进入编译排查环节

第三步:修复编译环节的目标错配

  • 打开项目根目录的构建配置文件(Makefile/CMakeLists.txt),检查两个demo的编译源文件绑定逻辑:
    • 确认master-gprs-tls-demo的编译入口是主站逻辑的main函数
    • 确认outstation-tls-demo的编译入口是子站逻辑的main函数,没有误链接主站的源文件
  • 执行全量清理重编译操作:
    make clean && rm -rf build && mkdir build && cd build && cmake .. && make -j4
  • 编译完成后在build目录下逐个验证两个程序的usage输出,确认两个程序的帮助信息分别对应各自的逻辑,没有错配

第四步:排除运行时环境干扰

  • 给编译生成的可执行文件添加执行权限:chmod +x master-gprs-tls-demo outstation-tls-demo
  • 检查启动脚本、systemd服务文件中的执行路径,确认没有将outstation程序的启动命令指向master程序的路径
  • 确认运行目录下的TLS证书、私钥文件权限正常,避免因为程序读取证书失败直接触发入参校验、提前打印usage提示

内容的提问来源于stack exchange,提问作者Soliman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.04 23:24:03