pb3-protobuf 格式-上传 网络信息内容
message CollectorInfo
{
string Code = 1; //采集器编码05600001、10000001
CollectorStyle Type = 2; //采集器类型RH560A、RH1000
BoardStyle BoardType = 3; //采集板类型
NetStyle NetType = 4; //网络类型:有线 无线
NetConfig NetConfig = 5; //网络配置
repeated BoardInfo BoardInfos = 6; //板信息
map<uint32,string> ExtraProperties = 10; //附加属性
}
//采集器信息属性key-value说明:
//1:连接次数
//2:断网数据总量
//3:预估断网数据上传完毕的秒数
//4:是否边缘计算版本 1:是 0或不填:否
消息实体 CollectorInfo 包含了 NetConfig 和 BoardInfos 2个消息对象,
//网络配置
message NetConfig
{
string Code = 1; //编码
string IP = 2; //IP
string GateWay = 3; //网关
string SubnetMask = 4; //子网掩码
string MacAddr = 5; //MacAddr
string BrokerIP = 6; //BrokerIP
uint32 BrokerPort = 7; //Broker端口
map<uint32,string> ExtraProperties = 10; //属性
}
//ExtraProperties属性key-value说明:
//1:通讯频率
//2:发射功率
//3:低频板块 0-低频,1-DHCP备用,2-通用
//4:Wifi名称
//5:Wifi密码
//板信息
message BoardInfo
{
uint32 Code = 1; //编号
map<uint32,string> ExtraProperties = 10; //附加属性
}
//板信息附加属性key-value说明
//1:应用程序版本
//2:硬件版本号
//3:序列号
static void upload_net_param_info(CollectorInfo *collect_info)
{
char mac[64] = {0};
uint32_t ver_len = 0;
NetConfig *net_config = collect_info->mutable_netconfig(); /* 注意这里是将子类和父类对象进行关联匹配问题 */
net_config->set_code(g_sysconfig.instrcode);
net_config->set_ip(g_sysconfig.local_ipaddr, strlen(g_sysconfig.local_ipaddr));
net_config->set_gateway(g_sysconfig.local_gw, strlen(g_sysconfig.local_gw));
net_config->set_subnetmask(g_sysconfig.local_netmask, strlen(g_sysconfig.local_netmask));
net_config->set_brokerip(g_sysconfig.server_host, strlen(g_sysconfig.server_host));
net_config->set_brokerport(atoi(g_sysconfig.server_port));
sprintf(mac, "%02X:%02X:%02X:%02X:%02X:%02X", (uint8_t)g_sysconfig.mac_addr[0], (uint8_t)g_sysconfig.mac_addr[1], (uint8_t)g_sysconfig.mac_addr[2],(uint8_t)g_sysconfig.mac_addr[3],
(uint8_t)g_sysconfig.mac_addr[4](uint8_t)g_sysconfig.mac_addr[5]);
net_config->set_macaddr(mac, strlen(mac));
ver_len = strlen(g_sysconfig.wifi_ssid);
ver_len = (ver_len >= sizeof(g_sysconfig.wifi_ssid)-1?sizeof(g_sysconfig.wifi_ssid)-1:ver_len);
auto &net_map = *(net_config->mutable_extraproperties());
net_map[4] = string(g_sysconfig.wifi_ssid, ver_len);
ver_len = strlen(g_sysconfig.wifi_key);
ver_len = (ver_len >= sizeof(g_sysconfig.wifi_key)-1?sizeof(g_sysconfig.wifi_key)-1:ver_len);
net_map[5] = string(g_sysconfig.wifi_key, ver_len);
}
该博客详细介绍了protobuf格式中的messageCollectorInfo结构,包括采集器编码、类型、网络配置和板信息等字段。同时展示了如何填充和上传网络参数信息,涉及到IP、网关、MAC地址、WiFi配置等关键数据。内容涵盖网络配置类NetConfig和板信息类BoardInfo的定义及其附加属性的使用。
1334

被折叠的 条评论
为什么被折叠?



