当前位置: 首页 > news >正文

来宾网站建设做评测系统网站首先要干嘛

来宾网站建设,做评测系统网站首先要干嘛,住房和城乡建设部政务服务门户网站,网站地图的使用文章目录 Sensor Hub 设计思想分层设计Sensor Hub 层(tdl)Sensor Driver 层(tdd) 传感数据元素类型抽象传感器采集策略 Sensor Hub 对上数据与接口数据结构1. 数据读取的触发模式2. 元素型数据订阅规则3. 数据就绪通知回调4. 传感设备信息 应用接口1. 创建传感器实例2. 启动传感… 文章目录 Sensor Hub 设计思想分层设计Sensor Hub 层(tdl)Sensor Driver 层(tdd) 传感数据元素类型抽象传感器采集策略 Sensor Hub 对上数据与接口数据结构1. 数据读取的触发模式2. 元素型数据订阅规则3. 数据就绪通知回调4. 传感设备信息 应用接口1. 创建传感器实例2. 启动传感器3. 停止传感器4. 配置传感器参数5. 读取传感器实时数据 Sensor Hub 对下数据与接口数据结构驱动接口抽象驱动注册接口 驱动开发流程Sensor Hub使用流程 Sensor Hub 是 TuyaOS 传感器管理组件可以实现对传感器设备的硬件抽象设备管理和数据处理。基于 sensor_hub 开发传感器应用时开发者无需关注传感器的传输协议只需要对传感器挂载硬件接口、工作方式、采集间隔等进行配置然后在事件回调中读取传感器处理即可。 通过 Sensor Hub 管理传感器可快速新增、切换新的传感器而无需修改上层应用程序。 开发者可使用 tuyaos_sensor_hub_demo_quickstart 体验 Sensor Hub 组件将多种传感器设备加入到智能设备中实现更多设备智能化。 Sensor Hub 设计思想 分层设计 Sensor Hub 组件采用软硬件分层设计分为 sensor hub 逻辑实现层、sensor driver 驱动层可在驱动层添加新驱动实现新传感器快速接入。 Sensor Hub 层(tdl) 主要功能 对应用提供统一的传感交互接口对传感驱动提供统一的适配接口给应用提供多种比较通用的采集策略 Sensor Driver 层(tdd) 主要功能 传感器实例化对应用提供挂载到 Sensor Hub 上的注册接口 传感数据元素类型抽象 传感上报的数据类型由 Sensor Driver 层配置即由传感器实例决定。 元素型 传感器采集的某一类数据可以根据其物理含义抽象为一种元素 (element)复合型传感则包含多种元素如温湿度传感器就包含了 2 种元素温度、湿度。一组数据中包含了 几种元素、各元素名称 (ID)、各元素值的数据类型 均由 Sensor Driver 层配置。 元素值的数据类型可分为整型、浮点型。 透传型 传感数据存储的具体格式由 Sensor Driver 层配置以二进制形式存储。 传感器采集策略 目前 Sensor Hub 支持以下采集策略配置 数据读取的触发模式 软定时轮询硬件定时轮询IO中断 传感数据组缓存 fifo 深度 数据订阅模式 元素组每次返回都是所有元素数据单元素每次返回仅一种元素数据 数据订阅规则设定 数据组数过滤规则最大值/最小值/步进值 Sensor Hub 对上数据与接口 数据结构 1. 数据读取的触发模式 /*** brief 采集触发模式*/ typedef BYTE_T SR_TRIG_MODE_E; #define SR_MODE_POLL_SOFT_TM 0 // 轮询(软件定时) #define SR_MODE_POLL_HARD_TM 1 // 轮询(硬件定时) #define SR_MODE_EXTI 2 // 外部中断(GPIO)/*** brief 工作模式配置*/ typedef struct {SR_TRIG_MODE_E trig_mode; // 采集触发方式UINT_T poll_intv_ms; // 轮询方式采集间隔(ms)TUYA_GPIO_NUM_E irq_pin; // 中断方式中断引脚TUYA_GPIO_IRQ_E irq_mode; // 中断方式中断模式 } SR_WORK_MODE_T;2. 元素型数据订阅规则 /*** brief 元素型数据订阅类型*/ typedef BYTE_T SR_ELE_SUB_TP_E; #define SR_ELE_SUB_TP_GROUP 0 // 以组的形式上报应用订阅的所有元素的数据 #define SR_ELE_SUB_TP_SINGLE 1 // 一一上报应用订阅的每个元素的数据/*** brief 过滤规则*/ typedef union {struct {INT_T max; // 最大值INT_T min; // 最小值UINT_T step; // 步进值(非0前后变化低于该值的会被过滤)} i; // 整型struct {FLOAT_T max; // 最大值FLOAT_T min; // 最小值FLOAT_T step; // 步进值(非0前后变化低于该值的会被过滤)} f; // 浮点型 } SR_FILTETR_U;/*** brief 元素型数据订阅规则* note val_num仅在订阅类型为SR_ELE_SUB_TP_SINGLE时有效且其值不能超过fifo_size*/ typedef struct {UCHAR_T id; // 元素IDUCHAR_T val_num; // 每次订阅的元素值个数SR_FILTETR_U filter; // 过滤规则 } SR_ELE_SUB_RULE_T;/*** brief 元素型数据订阅配置* 拓展功能 (可选)*/ typedef struct {SR_ELE_SUB_TP_E tp; // 元素型数据订阅方式UCHAR_T num; // 元素订阅数量也是元素型数据订阅规则数量SR_ELE_SUB_RULE_T *rule; // 元素型数据订阅规则 } SR_ELE_SUB_CFG_T;3. 数据就绪通知回调 /*** brief 元素型数据缓存结构*/ typedef struct {UCHAR_T id; // 元素IDSR_VAL_TP_E val_tp; // 元素值类型UCHAR_T val_num; // 元素值个数SR_VAL_U *val; // 元素值(存储地址) } SR_ELE_BUFF_T;/*** brief 数据就绪通知回调*/ typedef VOID_T (*SR_ELE_INFORM_CB)(CHAR_T* name, UCHAR_T buf_num, SR_ELE_BUFF_T *ele_data); typedef VOID_T (*SR_RAW_INFORM_CB)(CHAR_T* name, UINT_T raw_num, SR_RAW_DATA_T *raw_data); typedef union {SR_ELE_INFORM_CB ele; // 用于元素型数据SR_RAW_INFORM_CB raw; // 用于透传型数据 } SR_INFORM_CB_T;4. 传感设备信息 /*** brief 传感设备注册信息*/ typedef struct {SR_WORK_MODE_T mode; // 数据采集模式SR_INFORM_CB_T inform_cb; // 数据就绪通知回调UCHAR_T fifo_size; // 存放返回给app数据的缓存大小SR_ELE_SUB_CFG_T *ele_sub; // 元素型数据订阅模型配置(不使用则写NULL) } SR_DEV_CFG_T;/*** brief 传感设备句柄*/ typedef VOID_T* SENSOR_HANDLE_T;应用接口 1. 创建传感器实例 /*** brief 查找传感设备* param[in] dev_name: 传感设备名称* param[out] handle: 传感设备句柄* return 操作结果*/ OPERATE_RET tdl_sensor_dev_find(CHAR_T *dev_name, SENSOR_HANDLE_T* handle);2. 启动传感器 /*** brief 启动传感设备* param[in] handle: 传感设备句柄* param[in] config: 设备配置参数* return 操作结果*/ OPERATE_RET tdl_sensor_dev_open(SENSOR_HANDLE_T handle, SR_DEV_CFG_T* config);3. 停止传感器 /*** brief 启动传感设备* param[in] handle: 传感设备句柄* return 操作结果*/ OPERATE_RET tdl_sensor_dev_close(SENSOR_HANDLE_T handle);4. 配置传感器参数 /*** brief 配置传感设备* param[in] handle: 传感设备句柄* param[in] cmd: 配置命令* param[in] param: 配置命令参数* return 操作结果*/ OPERATE_RET tdl_sensor_dev_config(SENSOR_HANDLE_T handle, UCHAR_T cmd, VOID_T *param);5. 读取传感器实时数据 /*** brief 读取传感实时数据* param[in] handle: 设备句柄* param[in] ele_num: 元素个数0表示透传型* param[inout] ele_data: 元素型数据不使用时写NULL* param[out] raw_data: 透传型数据不使用时写NULL* return 操作结果*/ OPERATE_RET tdl_sensor_dev_read(IN SENSOR_HANDLE_T handle, IN UCHAR_T ele_num,INOUT SR_ELE_DATA_T *ele_data, OUT SR_RAW_DATA_T *raw_data);Sensor Hub 对下数据与接口 数据结构 元素数据类型配置 /*** brief 元素数据类型配置*/ typedef struct {UCHAR_T id; // 元素IDSR_VAL_TP_E val_tp; // 元素值类型 } SR_ELE_CFG_T;驱动依赖资源信息 /*** brief 资源信息*/ typedef struct {UCHAR_T type; // 资源类型(I2C/SPI/...)UCHAR_T port; // 资源端口VOID_T* handle; // 资源句柄(暂时没有用到)UCHAR_T info[SR_RSRC_INFO_LEN]; // 其他资源信息 } SR_RSRC_T;驱动接口抽象 /*** brief 驱动接口抽象*/ typedef struct {OPERATE_RET (*open)(SR_RSRC_T* dev);OPERATE_RET (*close)(SR_RSRC_T* dev);OPERATE_RET (*control)(SR_RSRC_T* dev, UCHAR_T cmd, VOID_T *param);OPERATE_RET (*read_ele)(SR_RSRC_T* dev, SR_ELE_DATA_T *ele_data, UCHAR_T ele_num); OPERATE_RET (*read_raw)(SR_RSRC_T* dev, SR_RAW_DATA_T *raw_data); } SR_INTFS_T;驱动注册接口 /*** brief 注册传感设备* param[in] dev_name: 传感设备名称* param[in] intfs: 传感设备操作接口内存由具体的传感器分配* param[in] ele_num: 传感数据元素个数0表示采用透传型内存由具体的传感器分配* param[in] ele_cfg: 每个元素的数据类型配置* param[in] resource: 传感设备依赖的资源信息* return 操作结果*/ OPERATE_RET tdl_sensor_register(CHAR_T *dev_name, SR_INTFS_T *intfs, UCHAR_T ele_num, \SR_ELE_CFG_T *ele_cfg, SR_RSRC_T *resource);驱动开发流程 确定传感数据存储方式如果选择元素型则需确定有哪些 元素 及每个元素值的 数据类型确定传感驱动的 外设 类型和需要配置的内容比如 I2C、SPI …确定注册设备时需要做哪些处理有哪些 资源信息 需要暂存至 SensorHub实现 tdd_sensor_xxx_register 接口传感的通用初始化可以在注册时进行或者使用控制命令进行即由用户决定何时初始化确定传感是否有启动测量和停止测量命令实现 open 和 close 接口确定传感读数据的过程实现 read_ele 或 read_raw 接口确定除读数据外是否需要增加其他的配置命令实现 control 接口。 Sensor Hub使用流程 调用 tdd_sensor_xxx_register 注册 xxx 设备。调用 tdl_sensor_dev_find 查找 xxx 设备获得设备句柄确认 xxx 设备是否注册成功。调用 tdl_sensor_dev_config 配置 xxx 设备启动前的一些必要配置启动后也可通过调用该接口控制设备。调用 tdl_sensor_dev_open 启动 xxx 设备在需要启动时调用同时需要编写数据通知回调函数。调用 tdl_sensor_dev_read 读取 xxx 设备的实时数据有需要时。调用 tdl_sensor_dev_close 停止 xxx 设备在需要停止时调用。
http://www.dnsts.com.cn/news/156799.html

相关文章:

  • 安徽建设工程信息网企业入口进不了应用商店优化
  • 甘肃省城乡建设局网站首页长葛网站建站
  • 任县建设局网站网上免费个人网站
  • 安徽安搜做的网站怎么样wordpress页面是什么意思
  • vk网站做婚介网站建设验收单意见怎么写
  • 高端网站建设设计公司有哪些wordpress开发者文档
  • 网站开发培训学院昆明市建设局官方网站
  • 自己做彩票网站简单吗杭州建设工程网
  • 天津网站建设q479185700惠临沂 企业网站建设
  • 做外贸的如何上国外网站怎样做家普网站
  • 网站备案成功后可以改吗与女鬼做的网站
  • 深圳营销型企业网站资源网站推广
  • 好用的做图网站绵阳公司商务网站制作
  • 推荐商城网站建设好的做网站的公司有哪些
  • 常州创新优典网站建设宁波网站制作优化服务
  • 网站建设语录wordpress后台运行很慢
  • 学做网站要多少钱组织建设一百年心得体会
  • 株洲市网站建设做网站要多少钱新乡
  • 海口建设网站常州网站建设公司推荐
  • 广州网站建设乐云seo十堰微网站建设
  • 沈阳网站营销推广网站业务
  • 中国十大网站建设公司排名在家开个人工作室违法吗
  • 北京网站空间域名网站编辑工作内容怎么写
  • 网站建设开发成本东莞地产网站建设
  • 东阳海天建设集团网站wordpress纯首页
  • 与市场营销有关的网站沈阳网站制作哪家好
  • 在网站做商城平台需要哪些资质关于单位建设网站的申请
  • 最新远程网站建设服务器中学生做的网站
  • 网站开发需要会什么软件wordpress页面 文章列表
  • 网站设计网站设计网站设计营销推广策略有哪些