zoukankan      html  css  js  c++  java
  • 【开发者portal在线开发插件系列三】字符串 及 可变长度字符串

    基础篇

    基础场景见上面两个帖子,这里单独说明字符串和可变长度字符串的用法
    话不多说,开始今天的演(表)示(演)

    Profile和插件开发

    添加一个string类型的属性:

    在插件里添加一条数据上报消息:(已添加一个messageId,值为0x02

    再添加一个固定长度的字符串型字段,长度为6个字节

    与profile里的属性关联起来:

    再添加一条数据上报消息:(已添加一个messageId,值为0x03

    再添加一个长度字段:

    添加一个可变长度字符串,并关联长字段:

    与profile里的属性关联起来:

    最后部署插件即可。

    调测:

    注册一个新设备:

    使用NB设备模拟器,绑定后上报数据:此处上报了4条数据,都是02开头的码流

    查看设备历史数据:上报数据时,string字段使用ascii码进行解码(见本帖最后的总结)

    再上报03开头的码流:

    查看设备历史数据:

    总结:

    1)字符串类型的数据是按Ascii码进行编解码的,上报时将16进制码流转为对应字符(如21转为叹号!,31转为1,41转为A);下发命令时则反过来,把字符转为对应的16进制码流(如叹号!转为21,1转为31,A转为41)
    2)可变长度字符串要关联长度字段,长度字段必须为int型
    3)命令下发直接使用固定长度的字符串即可,下发的长度以实际下发数据为准
    4)ASCII码表直接百度即可找到,使用16进制的标准表,不在标准表里的无法编解码。解码时(数据上报)如果解析出来的字符无法使用具体字符表示,如标题开始、正文开始、正文结束等,则使用u+2字节码流值表示(例如01转为u0001,02转为u0002);有具体字符的则使用具体字符,详见本总结第1条。

    附上部分ASCII码表:

    作者:Lily_w 

  • 相关阅读:
    C# 文件夹的常用操作
    c语言学习笔记---预编译
    linux学习笔记
    c语言学习笔记---符号
    vim 编辑基础使用-----linux编程
    用pywinauto进行win32应用程序的测试
    Python中下划线的使用方法
    创建可维护的自动化验收测试
    Appium+Robotframework实现Android应用的自动化测试-1:Appium在Windows中的安装
    在中文windows下使用pywinauto进行窗口操作
  • 原文地址:https://www.cnblogs.com/2020-zhy-jzoj/p/13165391.html
Copyright © 2011-2022 走看看