# GWTcpLamp.STD **Repository Path**: ganweicloud/gwtcplamp.std ## Basic Information - **Project Name**: GWTcpLamp.STD - **Description**: 智能灯控器通讯协议,采用TCP实现,使用前请认真阅读仓库中的开源声明。 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-07-15 - **Last Updated**: 2024-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用说明 本仓库为采用TCP实现的智能灯控器通讯协议示例代码。关于智能灯控器通讯协议详细内容请参照本仓库docs目录下的《20180807-智能照明控制系统控制器与集中器通讯协议V1.0》文件。协议插件的版本为6.0版本,请在6.0及以上版本的IoT平台中运行。 ## 代码结构 1. 仓库代码中包含两个项目GWTcpLamp.STD以及GWTcpLamp.STD.Tests,其中GWTcpLamp.STD项目为协议插件,而GWTcpLamp.STD.Tests为单元测试。如下图所示: ![](media/b9b1fe3a1328920a6d69007936223da4.png) 2. GWTcpLamp.STD项目中核心的类为CEquip类,该类为每个协议插件必须编写的类且类名均应保持为CEquip,该类主要重写父类CEquipBase中的五个方法init()、GetData()、GetYC()、GetYX()以及SetParm(),该类的详细介绍以及相关表结构请参考[开发者文档-第四章开发指南-协议插件开发](https://www.ganweicloud.com/docs/intro/3%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97/3.2%E5%8D%8F%E8%AE%AE%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91/)。如下图所示: ![](media/bf72b139201c646bea0cd4fff784fbee.png) 二、单元测试使用说明 1、在没有测试环境对协议插件进行测试的情况下,可以采用单元测试对协议插件的关键功能进行测试。本例中的CmdTest类中有三个测试方法,在任一测试方法中右击在弹出的快捷菜单中可以选择“调式测试”进行调试或者“运行测试”直接运行。 ![](media/9cb500e162d4a85f27fe9022e2cb828b.png) 2、可以通过Assert.IsTrue()方法验证返回的数据是否符合预期,如下图所示: ![](media/1feb4fd3e6803a7eec0baac9a9ac7086.png) 若不符合预期会抛出异常,异常信息如下所示 ![](media/cf86dbc53460ab196eaed90366cbbd73.png) ## 物模型说明 设备信息 | 字段 | 描述 | 示例 | | ---------- | -------------------- | ---- | | equip_addr | 控制地址,范围为1-18 | 1 | | | | | 遥测信息 | 字段 | 描述 | 示例 | | ----------------- | ------------------------------------------------------------ | ----- | | main_instruction | 数据标识,十六进制:参考协议文档中的附录A | CF01 | | minor_instruction | 数据解析参数,多个参数之间用逗号隔开;索引,长度,类型(i-整型,f-浮点型); | 0,4,i | | | | | 遥信信息 | 字段 | 描述 | 示例 | | ----------------- | ----------------------------------------- | ---- | | main_instruction | 数据标识,十六进制:参考协议文档中的附录A | CF01 | | minor_instruction | 数据取位,数据索引.位数 | 0.7 | | | | | 设置信息 | 字段 | 描述 | 示例 | | ----------------- | ------------------------------------------------------------ | ------------ | | main_instruction | 数据标识,十六进制:参考协议文档中的附录A | CF125 | | minor_instruction | 值类型,可选: light,其他 | light | | Value | 输入的值,如果操作参数为light,value表示调光值(十进制),否则为具体的发送字节(十六进制),字节之间用空格隔开 | 100或者FF FF |