This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
1.下载网络代码资源 https://github.com/htgd/wh_fsu#动环监控主机程序说明 20230814
2.添加对应库并编译; 20230818
3.添加端口 配置信息 及修改数据库, 数据库关于CfgTab_S_DevicePortFuncDef表为合并表导入 20230918
4.增加mslog库 20230920
5.将端口配置表信息 分离,方便支持每个端口支持多设备连接 20230926
6.添加cjson库相关资源
{
"FsuCode":"11010110100001",
"IdCodeContent":[
{"IDCode": ".1.3.6.1.4.1.41475.1.1.4.1.1.0","Value": "112","Factor": "10"},
{"IDCode": ".1.3.6.1.4.1.41475.1.1.4.1.3.0","Value": "130200","Factor": "100"},
{"IDCode": ".1.3.6.1.4.1.41475.1.1.4.1.22.0","Value": "1234","Factor": "0.1"}
]
}
7.将端口配置表信息合并,依靠数据库列判断 20231008
8.在/etc/init.d/rcS 文件中增加两行 开机执行的代码,注意 rcS执行是放在inittab 文件里, 在profile之前执行, profile
cd /home/EdgeGateway_FSU_App
./EdgeGateway_FSU_App_Start.sh
9.支持ntpdate指令, 将Ubuntu系统下/etc/services文件复制到根文件系统etc目录下, 修改权限; 从别处根文件系统复制ntpdate到sbin目录下, 并修改权限; 202310
ln -s /usr/share/zoneinfo/Asia/Shanghai localtime 软连接 时区选择 ,也是从别的文件系统复制。
ntpdate ntp1.aliyun.com
ntpdate time.pool.aliyun.com
ntpdate time.windows.com
10.调整mqttClientApp
11.条件限定,相同编码子设备需在同一端口,暂定后续更改 202310
12.不同进程共享内存, 使用标准Posix 共享内存,不建议使用 System V 方式建立共享内存。 不建议shmget创建内存, 建议shm_open 创建内存。kooloo add 202310
13.修改inittab文件, 初始化创建/dev/shm等相关文件 kooloo add 202310 新建 /dev/mqueue kooloo add 202311
14.调整文件系统,开机创建/tmp/mslog目录和/tmp/mslog/mslog_fsu.txt文件 kooloo add 202311
15.sysconf(_SC_PAGE_SIZE)或者sysconf(_SC_PAGESIZE)获取页大小,内存最小为一页,否则访问超过设定值的页读取异常 kooloo add 202311
16.再次确认 此编程数据类型int 是4字节, long int 也是4字节, 最大是0x7FFFFFFF, sizeof确认 kooloo add 202311
17.mq_open打开失败, 失败原因: mq_open:Function not implemented 底层还不支持posix的消息队列。
解决方法是修改内核编译, make menuconfig -> General setup ->[ ]POSIX Message Queues ->[*]POSIX Message Queues.
18.注意根文件系统需要cd rootfs/ 然后 tar -vcjf rootfs.tar.bz2 *,这样才可以正常烧录,否则不会挂.,用sudo, 避免权限不够
19.软件调试增加一个Uart_passthroughApp, 主要是测试串口的读写以及串口桥接透传, kooloo add 202312
20.时间戳转换 GetLocalTimeStr void GetLocalTimeStr(char* strDst); 202310 之前实现 此备注
21.mslog库不能打印全部的cjson表, 缓冲区受限,
mslog 宏定义 #define PRINT DebugPrint, 其中DebugPrint的DEBUG_STRING_MAX_LEN 缓冲区设置过小, 修改为1000k空间, 暂时无此问题 kooloo add 202311
22.cjson 库测试, bug原因为有一个子节点被释放 kooloo add 202312
/* cJSON 填坑指南
* Cjson 使用注意事项 cJSON_Parse 、cJSON_Createxxx 后必须使用 cJSON_Delete 释放内存。
* 一定要确认不在使用,不在任何节点使用,否则容易异常
* cJSON_Print 后必须使用 cJSON_free 释放内存。不可以乱用,容易造成异常 kooloo add 202312
* cJSON_DeleteItemFromObject 删除 cJSON_Createxxx 创建的对象后,不能再使用 cJSON_Delete 删除其节点数据。
*
*
* /
23.修改CfgTab_SmartDevicePortFuncDef 将FuncConfigTypeID表和PollAddCollect合并, 用json表示,
{"FuncCfgDefNumber":"2","FuncCfgDef:":[{"FuncCfgTypeID":"1","Add":"1"},{"FuncCfgTypeID":"1","Add":"2"}]}
之前是使用多行方式表示, 来实现不同ID和地址的功能实现 不需要修改 ,暂时不修改 kooloo add 202312 回滚到之前版本
不支持相同子设备挂在不同接口上 kooloo add 202312 未做合并 如果在一起会重复覆盖 kooloo add 202312
24.调整json格式, 将子设备信号分类组数据完整, 修改后直接发送即可, 无需再次封装。202312
25.调整sqTable_init, 初始化分类, 个别进程初始化不需要json; 202312
26. AlarmReDiff和AlarmThreshold 新增 子设备的警告用判断参数,主要是温湿度等相关子设备使用,后续依据需要改变 kooloo add 202401
27.mqtt 数据打印消息与实际发送不一致, 是Mqmsgbuf缓冲区未自行截断, 得到一帧数据后, 如果数据长度没有之前的长, 则会打印出来, 所以要指定长度打印即可。kooloo add 20240109
28."ps -e -o pid,comm | grep DevicePortGetApp* | grep -v PID | grep -v grep" 主函数 进程管道时加* kooloo add 20240109
29.数据说明: 1.发送数据是以子设备为单位,比如子设备的所有遥信或者遥测信号一起打包发送;2.服务器获取数据, 只判断接收到的IdCodeContent数组中的一个数据的子设备号和地址, 并处理后返回。3.服务器遥调数据不返回。
30.群方-华为太阳能整流模块S4875G 取名字过长 ,修改为 群方-太阳能模块S4875G 数据表读取有误,已经修改 kooloo add 20240130
硬件调试记录表 第一版
1.EC200G使用的是串口而不是USB接口, 需要实现底层, 而且所有口都是共用一个口, 建议直接用USB OTG方式挂载, 可以将蓝牙、wifi、4G、GNSS等在软件层分开, 不会有速度压力, 暂时先以串口使用, 如不能满足要求再更改。202311
2.RTL8306MB口, MDIO口上拉原理图错误, MDC未上拉。202311
高版本内核有RTL8366的驱动 4*GE+1*SGMII+1*RGMII
RTL8366SC-CG
LAYER 2 MANAGED 4+2-PORT 10/100/1000M SWITCH CONTROLLER
5*FE+1*(MII/RMII)
RTL8306MB-CG
SINGLE-CHIP 6-PORT 10/100M ETHERNET SWITCH CONTROLLER
3.核心板 RTC CR2012 容量38mAh, 大概能支持2个月左右。202311
4.内核移植 linux-imx 固件加载出错( failed to load regulatory.db)问题处理
5.CAN口调试, GD和核心板各挂一个CAN接口芯片, 两者以手拉手方式对外连接, CAN0口( CAN1) 正常收发, 驱动正常,
发cansend can0 06081003#11.22.33.44.55.66.77.88 2023120501
CAN1口( CAN2) 是以拓展方式使用, 暂时无法测试。
6.核心板OTG正常, 能正常烧录内核文件系统uboot等 202311
7.beep蜂鸣器, 高开低关, 与原子核心板电平相反, 调试时需要关闭或者断开。20231205
8.按键正常, od -x /dev/input/event0 20231205
9.TF卡接口正常 20231205
10.NVCC_CSI DATA IO电压只有2.8V,CSI_DATA5和CSI_DATA6 高电平点亮 LED灯, 默认开 kooloo add 202312
11.WM8960芯片驱动, 注意原子版本2.4及以后, IIC是挂在IIC1上, 现在原子开发板是2.4版本, 是挂在IIC1上, 要调整下设备树。把IIC1打开
12.EC200G-CN模块仅使用中国, 模块现在通信可UART口或者USB口, 建议直接USB挂在核心板上,
EC200G的Reset引脚是接在CSI_DATA2引脚上, 此引脚上电为高电平即可。核心板可控; 建议将EC200G的reset脚和核心板复位按键连接在一起
EC200G的pwrkey引脚接的是CSI_HSYNC 引脚,此引脚上电设置为低,核心板可控。
EC200G-CN 连接的串口6, 能正常收发, 读取指令正常;
但此接口的核心板TX不能和电脑侧的串口工具TX接在一起, 接在一起核心板和EC200G正常通信, 但是电脑无法控制EC200G, 电脑侧电压3.3V, 核心板2.8V, 接在一起后3.3V,电脑侧发无电平变化。不影响使用。
13.串口情况, 串口1调试口正常使用;
串口2收发正常, 但串口2是接在485上, 485需要用自动收发控制无需软件干预;
串口3到MCU上能正常收发, 下次预留测试点;
串口4能发, 接收和WM8960的IIC1口干涉, 无法接收 ,(预留);
串口5能正常收发( 预留) ;
串口7能正常收发( 预留) ;
串口8能正常收发( 预留) ;
14.网口RTL8306MB芯片, 暂时无法调通, 软件调试比较困难, 在无网络通信的情况下, 需要手动切换模式, 烧录测试内核和uboot, 效率太低, 建议, 在保证网口1正常通信的情况下, 选择一款非MIDO控制的多网口芯片。
15.与GD通信, 读取AI等, , GD未回数据, GD软件接收异常, 已修改。
16.485透传, 速度较慢, 发115200可工作, 收38400可工作, 再高可能不工作, 硬件限制。
17.485透传, 数据超过245字节异常。