pb3-protobuf 格式-上传 网络信息内容

该博客详细介绍了protobuf格式中的messageCollectorInfo结构,包括采集器编码、类型、网络配置和板信息等字段。同时展示了如何填充和上传网络参数信息,涉及到IP、网关、MAC地址、WiFi配置等关键数据。内容涵盖网络配置类NetConfig和板信息类BoardInfo的定义及其附加属性的使用。

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);
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值