安防监控之软硬件环境分析和通信结构体定义

文章目录

  • 声明
  • 软硬件环境分析
    • FS4412 资源描述
    • ZigBee 开发套件简介
  • 通信结构体定义
    • zigbee 模块对象信息参数结构体
    • A9模块对象信息参数结构体
    • 环境参数对象结构体参数
    • 所有监控区域的信息结构体
    • 设备控制对象列表
    • A9-ZIGBEE通用指令

声明

华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育

创客学院官网:http://www.makeru.com.cn/
华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb
华清远见创客学院物联网课程链接:http://www.makeru.com.cn/iot

软硬件环境分析

硬件环境 软件架构分析
安防监控之软硬件环境分析和通信结构体定义_第1张图片 安防监控之软硬件环境分析和通信结构体定义_第2张图片

FS4412 资源描述

华清远见 ARM Cortex-A9 FS4412 开发平台(下文简称 FS4412)是由华清远见研发中心专为培训教学和项目研发定制的高性能的 ARM Cortex-A9 开发平台。FS4412 采用三星 ARM Exynos 4412 四核处理器,运行主频可高达 1.5GHz,其处理速度和节能能力比起双核大幅提高。对比上一代的双核处理器,四核能提供翻倍的处理能力以及减半的功耗,这也为精细的显示效果、1080P 拍摄及播放、以及各方面的超高流畅

安防监控之软硬件环境分析和通信结构体定义_第3张图片

ZigBee 开发套件简介

安防监控之软硬件环境分析和通信结构体定义_第4张图片

通信结构体定义

zigbee 模块对象信息参数结构体

 typedef struct _makeru_zigbee_info
  {
 	uint8_t head[3];       //标识位: 'm' 's' 'm'  makeru-security-monitor  
 	uint8_t type;	       //数据类型  'z'---zigbee  'a'---a9
 	float temperature;     //温度
 	float humidity;        //湿度
 	float tempMIN;         //温度下限
 	float tempMAX;         //温度上限 
 	float humidityMIN;     //湿度下限
 	float humidityMAX;     //湿度上限
 	uint32_t reserved[2];  //保留扩展位,默认填充0
 	//void *data;  内核预留的扩展接口  参考版
  }ZIGBEE_INFO_T;

A9模块对象信息参数结构体

 typedef struct _makeru_a9_info
 {
 	uint8_t head[3]; //标识位: 'm' 's' 'm'  makeru-security-monitor  
 	uint8_t type;	 //数据类型  'z'---zigbee  'a'---a9
 	float adc;
 	short gyrox;   //陀螺仪数据
 	short gyroy;
 	short gyroz;
 	short  aacx;  //加速计数据
 	short  aacy;
 	short aacz;
 	uint32_t reserved[2]; //保留扩展位,默认填充0
 	//void *data;  内核预留的扩展接口  参考版
 }CROTEXA9_INFO_T;

环境参数对象结构体参数

 typedef struct _makeru_env_data
 {
 	CROTEXA9_INFO_T  a9_info;    
 	ZIGBEE_INFO_T    zigbee_info;
 	uint32_t reserved[2]; //保留扩展位,默认填充0
 }ENV_DATA_T;

所有监控区域的信息结构体

 struct env_info_client_addr
 {
 	ENV_DATA_T  monitor_no[MONITOR_NUM];	//数组  老家---新家
 }env_info_client_addr;

设备控制对象列表

 typedef  enum 
 {
     DEVICE_CTL_LED = 1,         //LED控制
     DEVICE_CTL_BUZZER = 2,      //蜂鸣器控制
     DEVICE_CTL_DIGITAL = 3,     //四路LED灯模拟的数码管
     DEVICE_CTL_FAN =4,           //风扇
     DEVICE_CTL_TEMP_HUMI=5,      //温湿度最值设置
     DEVICE_CTL_RESERVED=6,      //用于个人的扩展
     DEVICE_CTL_GPRS = 10,       //3G通信模块-GPRS 
     DEVICE_CTL_MAX, 
 }DEVICE_CONTROL_LIST_E;

A9-ZIGBEE通用指令

  1. 命令格式说明
    一个字节,unsigned char 对应消息队列中正文的类型:
    unsigned char 8位

    平台编号 设备编号 操作设备
    7 6 5 4 3 2 1 0
  2. 平台编号详细说明

    平台编号 设备说明
    0x00 0号-ZigBee平台
    0x40 1号-A9/A53平台
    0x80 2号-STM32平台(可以自己扩展)
    0xc0 3号-avr arduino…保留(如果平台继续增多的话可以采用2个字节或多个字节来对设备进唯一的编号,比如A9类下的1号平台,2号平台,先分类,然后再具体标识设备)
  3. 设备编号控制说明

    设备编号 设备对象 操作掩码-操作说明
    0x00 LED 0x00  全部关闭
    0x01  全部打开
    0x02  打开LED2
    0x03  打开LED3
    0X04  打开LED4
    0x05  打开LED5
    0X10  打开流水灯
    0x10 蜂鸣器 0x00  关闭
    0x01  打开
    0x02  自动报警关闭
    0x03  自动报警打开
    0x20 风扇 风扇 0x00 关闭风扇
    0x01 打开风扇
    x30 数码管 0x0~0xF   显示0~F数字(四盏灯,对应0000-表示0,0001-表示1…1110-表示14)
    0x0f    关闭数码管 led2-3-4-5
  4. 控制命令:
    平台编号 + 设备编号 + 操作掩码 = 命令 (命令的封装)
    例如:
    0x00 + 0x20 + 0x01 = 0x21 风扇打开
    0x40 + 0x10 + 0x01 = 0x51 蜂鸣器打开
    0x40 + 0x30 + 0x08 = 0x78 数码管显示8
    0x40 + 0x30 + 0x0f = 0x7f 关闭数码管

     上行:封装的结构体====共享内存和信号量 ===>交给CGI(C语言和HTML语言之间的转化接口)===>交给HTML
     下行:封装的命令字====消息队列 ====>msgbuf msgsnd===>控制命令字封装在msgsnd的msgbuf中 ===>A9端解析==>向下控制硬件
    

你可能感兴趣的:(安防监控项目)