【车联网原型系统|二】数据库+应用层协议设计

      最后更新:2022-07-16 22:54:55 手机定位技术交流文章

      物联网原型系统导航

      【车联网原型系统|一】项目介绍+需求分析+概要设计https://blog.csdn.net/weixin_46291251/article/details/125807297

      【车联网原型系统|二】数据库+应用层协议设计https://blog.csdn.net/weixin_46291251/article/details/125808107

      [汽车网络原型系统|3]树果派对设计+模拟基地站计划https://blog.csdn.net/weixin_46291251/article/details/125808229

      【车联网原型系统|四】adhoc组网+frp内网穿透https://blog.csdn.net/weixin_46291251/article/details/125808621

      [汽车连接网络原型系统]前端和后端分离https://blog.csdn.net/weixin_46291251/article/details/125808674

      [汽车连接网络原型系统|6] 效果展览https://blog.csdn.net/weixin_46291251/article/details/125808845

      【源码下载】https://download.csdn.net/download/weixin_46291251/86227197

      文章目录

      • 【车联网原型系统|二】数据库+应用层协议设计
        • 应用层协议设计
          • 字段总体设计
          • 具体字段
            • pac_type
            • control_type
            • state字段
            • 其他字段
        • 数据结构设计
          • 指令
          • 数据
        • 数据库设计
          • 概念模型
            • 表结构设计
              • 设计了以下表:
              • 具体有以下字段
            • ER图
              • 传感器表部分
              • 指令存储部分
              • 路径存储部分
              • 传感器数据部分
          • 物理模型:
            • Crowfoot图

      【车联网原型系统|二】数据库+应用层协议设计

      应用层协议设计

      后端与小车树莓派的通信是通过socket进行的,因此需要定义一个私有协议,区分不同类型的数据报文。数据报文采用json格式进行传输。

      一般来说,报告可以分为两个类别:控制报告和数据报告。 控制信息用于控制用户车,数据信息用于传输数据信息。

      字段总体设计

      下面的表描述了具体领域及其相应的描述:

      数据字段 内容描述
      pac_type 数据包类型
      control_type 不同的消息函数类型
      src_id 发送方id
      dst_id 接收方id
      piece 报文分片标记
      time 发送方时间戳
      ack 标识ack
      length 消息长度
      state 状态码
      alternate 保留字段

      具体字段

      pac_type

      第一个是数据消息类型字段,主要识别消息当前方向,主要有三个方向:

      • 树莓派 到 基站
      • 基站 到 树莓派
      • 林果派对林果派(回想情况)
      包类型(pac_type) 数据流向 编码
      pi -> pc 01
      pc -> pi 10
      pi -> pi 11
      保留类型 00

      control_type

      控件类型字段用于识别消息的特定相应的函数。该部分以 pack_type 为基础进行判断,不同的 pack_type 与不同的含义相符:

      • 对于树莓派到基站到类型,是树莓派反馈数据到基站到报文,分为轨迹数据、传感器数据、和树莓派电量低三种。
      • 对于从基地站发送到树枝的信息类型,从基地站发送的主要控制命令是启动/停止移动、打开/关闭传感器、一个按钮返回和转移(向基地站内不在车辆的转移命令)。
      • 对于“树木-树木-树木”类型,和第二类类似,有较少的传输函数。
      字段 指令含义 编码
      control_type pac_type == pi -> pc 轨迹数据 000
      传感器数据 001
      电量低 010
      无法避障 011
      保留指令 100
      保留指令 101
      保留指令 110
      保留指令 111
      pac_type == pc -> pi 运动 000
      停止 001
      返航 010
      打开传感器 011
      关闭传感器 100
      转发 101
      保留指令 110
      保留指令 111
      pac_type == pi -> pi 运动 000
      停止 001
      返航 010
      打开传感器 011
      关闭传感器 100
      保留指令 101
      保留指令 110
      保留指令 111

      state字段

      状态字段主要用于反馈指令执行数据,例如成功、失败、加班等,并且保留了一些编码以传递自定义状态。

      状态 含义 编码
      成功 000
      失败(超时) 001
      失败(指令非法) 010
      失败(原因3) 011
      失败(原因4) 100
      保留状态 101
      保留状态 110
      保留状态 111

      其他字段

      ack字段:

      接收消息后,系统可以对Ack消息作出回应,表明它已经收到消息(可与数字签名相结合,实现双向无可否认的)

      -每当收到消息时,按照上述逻辑,在收到消息后向发送者发送一个“Ack”消息,表明该消息已经收到。

      - 每次发送消息时,根据上述逻辑发送消息后,会收集Ack消息。此消息的验证显示了消息的结尾。

      piece字段:

      这个领域主要用于处理大型报纸中的断片问题。

      使用芯片方法,头部字段指定当前消息是否是最后的芯片,每次发送一个完整的消息标题和消息的一部分(取决于MTU)。

      接收方每次都接收一个MTU大小的报文,解析出头部的pieces字段,判断结束条件,接收完之后将所有的数据字段组合起来即可得到完成的大报文

      数据结构设计

      本文主要讨论了巴士与基地站之间的信息信息内容的结构

      指令

      字段 含义 举例
      direction(list) 四个按钮的状态 [False,False,False,False]
      speed 速度 50
      diff_speed 转向差速 20

      数据

      字段 含义 举例
      sensor_list 传感器列表
      data_list 数据列表
      trace_stack 路径栈

      数据库设计

      概念模型

      表结构设计

      设计了以下表:
      • 用户表:存储用户帐户,密码,用户类型(等级),登录时间
      • sensor_info表:存储传感器的类型代码、名称、分类和描述信息
      • pi表:所有属于存储系统代码的果实、权限、描述信息等。
      • 传感器表:存储系统中的所有传感器的列表,包括传感器的代码、属于树枝的代码、传感器类型、SN代码(如果有的话)和权限级别
      • data_instruction table:系统发送/执行的所有命令,包括命令ID、用户ID、树苹果ID、时间、执行状态、命令类型、命令的具体数据
      • data_sensor:表:树莓派反馈的传感器数据表,包括数据id、传感器id、用户id、时间、具体的传感器数据
      • Data_trace表:跟踪数据表用于树果反馈,包括数据ID、用户ID、树果ID、时间和特定跟踪数据。
      具体有以下字段
      • data_instruction : [‘id’, ‘user_id’, ‘pi_id’, ‘time’, ‘state’, ‘type’, ‘data’]

      • data_sensor : [‘id’, ‘sensor_id’, ‘user_id’, ‘data’, ‘time’]

      • data_trace : [‘id’, ‘user_id’, ‘pi_id’, ‘time’, ‘data’]

      • pi : [‘id’, ‘level’, ‘description’]

      • sensor_info : [‘id’, ‘name’, ‘group’, ‘description’]

      • sensors : [‘id’, ‘pi_id’, ‘sensor_type’, ‘SN’, ‘level’]

      • user : [‘id’, ‘passwd’, ‘level’, ‘reg_time’]

      ER图

      传感器表部分

      image-20220714151252012

      指令存储部分

      image-20220714151313408

      路径存储部分

      image-20220714151326221

      传感器数据部分

      image-20220714151348806

      image-20220714151403831

      物理模型:

      略,见sql文件内

      Crowfoot图

      image-20220714151516002

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/29848.html

          热门文章

          文章分类