婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > python使用protobufde的過(guò)程解析

python使用protobufde的過(guò)程解析

熱門標(biāo)簽:百度地圖標(biāo)注沒(méi)有了 宿遷星美防封電銷卡 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢 ai電話機(jī)器人哪里好 湛江智能外呼系統(tǒng)廠家 長(zhǎng)沙高頻外呼系統(tǒng)原理是什么 地圖標(biāo)注審核表 ai電銷機(jī)器人源碼 外呼并發(fā)線路

概念

Protobuf(Google Protocol Buffers)是google開(kāi)發(fā)的的一套用于數(shù)據(jù)存儲(chǔ),網(wǎng)絡(luò)通信時(shí)用于協(xié)議編解碼的工具庫(kù).它和XML和Json數(shù)據(jù)差不多,把數(shù)據(jù)已某種形式保存起來(lái).Protobuf相對(duì)與XML和Json的不同之處,它是一種二進(jìn)制的數(shù)據(jù)格式,具有更高的傳輸,打包和解包效率

優(yōu)點(diǎn):

1:序列化后體積相比Json和XML很小,適合網(wǎng)絡(luò)傳輸

2:支持跨平臺(tái)多語(yǔ)言

3:消息格式升級(jí)和兼容性還不錯(cuò)

4:序列化反序列化速度很快,快于Json的處理速度

缺點(diǎn):

1、以二進(jìn)制的方式存儲(chǔ),除非你有 .proto 定義,否則你沒(méi)法直接讀出 Protobuf 的任何內(nèi)容。

2、功能簡(jiǎn)單,無(wú)法用來(lái)表示復(fù)雜的概念。

標(biāo)準(zhǔn)數(shù)據(jù)類型

一個(gè)標(biāo)量消息字段可以含有一個(gè)如下的類型——該表格展示了定義于.proto文件中的類型,以及與之對(duì)應(yīng)的、在自動(dòng)生成的訪問(wèn)類中定義的類型

基于序號(hào)的協(xié)議字段映射(類似key-value結(jié)構(gòu))

新建 test.proto

在消息中承載的數(shù)據(jù)分別對(duì)應(yīng)于每一個(gè)字段都有一個(gè)名字和一種類型。

syntax = "proto3";

package  WeightEstimationUpdate;
option   java_package = "com.muyuan.platform.bar.patrol.pro";
// 請(qǐng)求包基類(沒(méi)有附加數(shù)據(jù),通信包不重新定義直接使用基類包)
message BaseRequestCommon
{
  string      DeviceId = 1;    // 設(shè)備編號(hào)
  string      MsgID = 2;    // 消息ID,用UUID
  string      Timestamp = 3;    // unix時(shí)間戳(秒)
  uint32      Cmd = 4;    // 指令信息
  bytes       payLoad = 5;  // 消息體
}

// 上報(bào)
message DeviceRegist
{
  string  version = 1;    // 
  string  macAddr = 2;    // 
}

// 下發(fā)
message PushUpgradeInfo
{
  string  version = 1;            // 版本號(hào)
  string  packageName = 2;          // 
  string  packageMd5 = 3;          // 
  string  packageUrl = 4;          // 
}

// 上報(bào)
message ReportWeightEstimationStatus
{
  string      version = 1;    // 
  string      state = 2;      // 
}

// 指令列表
enum EmCmd
{
  CMD_NONE = 0x0000;       // 指令開(kāi)始范圍

  //-----------------服務(wù)器端主動(dòng)下發(fā)到設(shè)備端信令定義開(kāi)始------------------
  CMD_S2C_PUSH_UPGRADE_INFO = 0x0013;    // 下發(fā)(協(xié)議包:PushUpgradeInfo)
  //-----------------服務(wù)器端主動(dòng)下發(fā)到設(shè)備端信令定義結(jié)束-----------------

  //-----------------設(shè)備端主動(dòng)上報(bào)到服務(wù)端信令定義開(kāi)始-------------------
  CMD_C2S_REPORT_REGIST = 0x0060;   // 注冊(cè)(協(xié)議包:WeightEstimationRegist)
  CMD_C2S_REPORT_FAULT = 0x0061;   // 上報(bào)故障(協(xié)議包:ReportFault)
  CMD_C2S_REPORT_WEIGHT_ESTIMATION_STATUS = 0x0063;    // 上報(bào)狀態(tài)信息(協(xié)議包:WeightEstimationStatus)
  //-----------------設(shè)備端主動(dòng)上報(bào)到服務(wù)端信令定義結(jié)束-----------------

  CMD_END = 0xFFFF;        // 指令結(jié)束范圍
}

情況1: 收到通信信息

import test_pb2 as weight_pd
base_request_common_obj = weight_pd.BaseRequestCommon()
base_request_common_obj.ParseFromString(msg)
payload = base_request_common_obj.payLoad
push_upgrade_info_obj = weight_pd.PushUpgradeInfo()
push_upgrade_info_obj.ParseFromString(payload)
update_version = push_upgrade_info_obj.version
update_zip_filename = push_upgrade_info_obj.packageName
# 反向解析即可

情況2:發(fā)送通信信息

import test_pb2 as weight_pd
base_request_common = weight_pd.BaseRequestCommon()
base_request_common.DeviceId = deviceId
base_request_common.MsgID = str(uuid.uuid4())
base_request_common.Timestamp = str(int(time.time()))
# change
item_list = weight_pd.EmCmd.items()
#此為 protobuf 3.0.0 版本的
weight_dict = listtuple_dict(item_list)
base_request_common.Cmd = weight_dict.get("CMD_C2S_REPORT_WEIGHT_ESTIMATION_STATUS")
#此為 protobuf 最新版本  
# base_request_common.Cmd = weight_pd.EmCmd.CMD_C2S_REPORT_WEIGHT_ESTIMATION_STATUS
report_weight_estimation_status = weight_pd.ReportWeightEstimationStatus()
report_weight_estimation_status.version = self.version
report_weight_estimation_status.state = state
base_request_common.payLoad = report_weight_estimation_status.SerializeToString()
serializeToString = base_request_common.SerializeToString()
#  serializeToString 即為 二進(jìn)制數(shù)據(jù)流
def listtuple_dict(item_list):
    weight_cmd_dict = {}
    for k, v in item_list:
        weight_cmd_dict.setdefault(k, v)
    return weight_cmd_dict```

到此這篇關(guān)于python使用protobuf的文章就介紹到這了,更多相關(guān)python使用protobuf內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • java程序中protobuf的基本用法示例
  • 淺談序列化之protobuf與avro對(duì)比(Java)
  • 基于Protobuf動(dòng)態(tài)解析在Java中的應(yīng)用 包含例子程序
  • protobuf c++編程筆記
  • SpringBoot使用protobuf格式的接口方式
  • Netty結(jié)合Protobuf進(jìn)行編解碼的方法
  • Python使用protobuf序列化和反序列化的實(shí)現(xiàn)
  • Protobuf在Cmake中的正確使用方法詳解
  • C#語(yǔ)言使用gRPC、protobuf(Google Protocol Buffers)實(shí)現(xiàn)文件傳輸功能
  • 在java程序中使用protobuf

標(biāo)簽:南平 漯河 林芝 普洱 寧夏 盤(pán)錦 大同 海南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python使用protobufde的過(guò)程解析》,本文關(guān)鍵詞  python,使用,protobufde,的,過(guò)程,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python使用protobufde的過(guò)程解析》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于python使用protobufde的過(guò)程解析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    在线观看欧美日本| 日韩一级免费一区| 亚洲精品综合在线| 日韩美女主播在线视频一区二区三区| 岛国一区二区在线观看| 欧美天堂一区二区三区| 欧美精品一区二区高清在线观看| 久久精品国产免费看久久精品| 制服视频三区第一页精品| 成人激情动漫在线观看| 一区二区三区四区av| 精品卡一卡二卡三卡四在线| 欧美日韩国产首页| 欧美日韩综合在线免费观看| 国产精品伦理一区二区| 日韩美女在线视频| 91精品综合久久久久久| 欧美另类久久久品| 在线免费观看视频一区| 日本高清不卡aⅴ免费网站| 99久久久久免费精品国产| 国产美女在线观看一区| 美国三级日本三级久久99| 日韩福利视频导航| 琪琪一区二区三区| 国内成人精品2018免费看| 国内偷窥港台综合视频在线播放| 青青草伊人久久| 久久国产麻豆精品| 大陆成人av片| 91女人视频在线观看| 在线国产电影不卡| 欧美日韩精品三区| 欧美精品一区男女天堂| 国产性色一区二区| 亚洲欧美综合色| 亚洲国产美女搞黄色| 亚洲成av人影院| 欧美亚洲综合网| 日本丰满少妇一区二区三区| 欧美日韩一级大片网址| 99久久国产综合精品麻豆| 丁香网亚洲国际| 国产又黄又大久久| 一区二区三区成人| 国模娜娜一区二区三区| 国产在线精品一区二区夜色| 不卡大黄网站免费看| 欧美图片一区二区三区| 精品区一区二区| 中文字幕一区二区三区不卡在线| 亚洲综合视频在线观看| 久久精品99国产精品| 91丨porny丨首页| 555www色欧美视频| 欧美高清在线精品一区| 亚洲成va人在线观看| 国产精品12区| 91精品国产丝袜白色高跟鞋| 国产精品亲子乱子伦xxxx裸| 亚洲va欧美va人人爽午夜| 国产精品亚洲第一| 欧美三级中文字| 国产视频一区在线观看| 日韩国产欧美三级| 91麻豆6部合集magnet| 精品少妇一区二区三区在线视频| 亚洲免费观看高清完整| 国产精品18久久久久久vr| 91成人在线观看喷潮| 国产日韩视频一区二区三区| 日本91福利区| 日本久久电影网| 久久久国产午夜精品| 午夜不卡av免费| 成人av网在线| 精品久久久久久久久久久久久久久 | 国产在线精品免费| 欧美日韩久久一区| 亚洲人成影院在线观看| 国产成人综合网站| 精品处破学生在线二十三| 亚洲sss视频在线视频| 色猫猫国产区一区二在线视频| 欧美经典一区二区| 久久综合综合久久综合| 欧美一区二区久久| 日本成人在线不卡视频| 在线不卡一区二区| 午夜不卡在线视频| 在线不卡一区二区| 波波电影院一区二区三区| 中文字幕欧美日韩一区| 国产精品欧美久久久久无广告| 视频一区视频二区中文| 欧美精品日韩一区| 成人高清视频在线观看| 日韩二区三区四区| 一区二区欧美国产| 伊人婷婷欧美激情| 亚洲人成伊人成综合网小说| 国产夜色精品一区二区av| 狠狠色狠狠色合久久伊人| 国产午夜精品一区二区三区视频| 免费av网站大全久久| 欧美成人国产一区二区| 久久99久久久欧美国产| 精品91自产拍在线观看一区| 国产在线精品一区二区三区不卡| 精品毛片乱码1区2区3区| 久久99久久精品| 国产婷婷色一区二区三区| 成人在线视频首页| 亚洲欧美成人一区二区三区| 在线国产亚洲欧美| 久久精品国产99国产精品| 久久精品夜色噜噜亚洲a∨| 成人激情校园春色| 亚洲一区免费观看| 日韩精品一区二区三区在线| 国产ts人妖一区二区| 亚洲三级在线观看| 91麻豆精品91久久久久同性| 国产伦精品一区二区三区免费迷| 国产精品国产三级国产a| 精品视频在线视频| 国产电影精品久久禁18| 樱桃国产成人精品视频| 日韩精品一区二区三区在线 | 亚洲国产欧美一区二区三区丁香婷| 欧美日韩久久一区二区| 激情五月婷婷综合网| 一区二区三区日韩精品视频| 日韩一区二区电影在线| av一区二区不卡| 美女视频黄久久| 一区二区三区在线视频观看 | 国产久卡久卡久卡久卡视频精品| 亚洲国产精品国自产拍av| 欧美四级电影网| 成人a免费在线看| 麻豆一区二区在线| 亚洲资源中文字幕| 国产三级一区二区| 欧美色图激情小说| av一区二区三区在线| 免费成人在线网站| 一区二区三区国产| 国产精品丝袜一区| 日韩一本二本av| 欧美熟乱第一页| 9i看片成人免费高清| 国产精品自拍一区| 久久精品国产亚洲5555| 午夜精品久久久久久久| 伊人性伊人情综合网| 69堂精品视频| 欧美三级资源在线| 99久久婷婷国产| 成人中文字幕合集| 国产精品一区久久久久| 美国毛片一区二区| 日本午夜一区二区| 亚洲国产美女搞黄色| 一区二区三区欧美激情| 中文字幕一区二区三区蜜月| 国产亚洲成年网址在线观看| 欧美不卡在线视频| 日韩视频一区二区| 欧美一区二区三区电影| 欧美精品在线观看播放| 欧美精品色一区二区三区| 欧美午夜免费电影| 欧美日韩国产精选| 在线播放国产精品二区一二区四区| 在线观看一区不卡| 在线观看亚洲精品视频| 欧美色网一区二区| 欧美日本免费一区二区三区| 欧美性生活影院| 欧美精品丝袜久久久中文字幕| 欧美视频完全免费看| 欧美日韩一区高清| 在线播放中文一区| 日韩欧美一区在线观看| 日韩视频在线观看一区二区| 欧美一级搡bbbb搡bbbb| 欧美一区永久视频免费观看| 日韩视频在线观看一区二区| 337p日本欧洲亚洲大胆色噜噜| 精品国产3级a| 中文字幕精品在线不卡| 亚洲人成7777| 日韩成人免费在线| 国内精品嫩模私拍在线| 成人h精品动漫一区二区三区| 色婷婷久久综合| 欧美日韩一区二区三区不卡| 日韩精品一区二区在线| 国产精品网站在线观看|