# LightCtrl **Repository Path**: hansen/LightCtrl ## Basic Information - **Project Name**: LightCtrl - **Description**: Netty+protobuf+dubbo 树莓派灯控解决方案 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2017-04-10 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Netty protobuf Dubbo 实例 ## 开发环境环境 idea maven jdk1.7 Netty4 proto3 ## 工程说明 >该项目是基于maven工程,idea中如何启动maven项目请参照[idea+maven](http://www.open-open.com/lib/view/open1388650391891.html) ## 项目介绍 该项目的硬件实现为树莓派控制继电器,本工程充当了Netty服务端的一个中转站,为了获得较高的性能传输协议定义为protobuf ### 协议内容 | 字段名称 |是否必须 | 注释 | | ------------- |:-------------:| -----:| | version | 是 | 版本号 | | cid | 是 | 客户端id | | Type | 是 | 协议类型(枚举) | | Cmd | 是 | 控制指令(枚举)| | cidid | 否 | 操作id | | data | 是 | 指令发送具体内容 | | result_code | 否 | 返回编码 | | result_message | 否 | 返回消息 | | result_data | 否 | 返回数据 | >协议详细内容请参照 [java/proto/HardWare.proto](http://git.oschina.net/alpz5566/LightCtrl/blob/master/src/main/java/proto/HardWare.proto?dir=0&filepath=src%2Fmain%2Fjava%2Fproto%2FHardWare.proto&oid=ba16ffad50e8a45ac745107377e11a23fe548af9&sha=4ee92767b3aa3eff0ee9fce59d38b54e506279b1) 文件 ### 核心代码 >[LightServerInitHandler](http://git.oschina.net/alpz5566/LightCtrl/blob/master/src/main/java/com/youngball/netty/LightServerInitHandler.java?dir=0&filepath=src%2Fmain%2Fjava%2Fcom%2Fyoungball%2Fnetty%2FLightServerInitHandler.java&oid=548ddf1941a92e47719dbb4ef9b4927725b5ce2c&sha=3d768379231ae1dd8960715dc14ac688bfd73766) [LightCtrlServiceImpl](http://git.oschina.net/alpz5566/LightCtrl/blob/master/src/main/java/com/youngball/service/impl/LightCtrlServiceImpl.java?dir=0&filepath=src%2Fmain%2Fjava%2Fcom%2Fyoungball%2Fservice%2Fimpl%2FLightCtrlServiceImpl.java&oid=1bddabaea1fa6e59efdf2a1568f24d768f3473f5&sha=3d768379231ae1dd8960715dc14ac688bfd73766) >该工程在spring加载中已经开启tcp端口5555,不需要单独开启 [实现](http://git.oschina.net/alpz5566/LightCtrl/tree/master/src/main/java/com/youngball/thread?dir=1&filepath=src%2Fmain%2Fjava%2Fcom%2Fyoungball%2Fthread&oid=bd48c22bbed1f01082d64c22f0b4dbe933547c07&sha=3d768379231ae1dd8960715dc14ac688bfd73766) ### 文件说明 >由于本工程只提供一个netty服务,由zookeeper将dubbo接口暴露出去,没有在工程里面写web代码,因此我将自己写的webdemo实例放在WEB-INF里面供参考,建议将/WEB-INF/socketNetty文件单独抽出来配置nginx做前后端分离 #### 树莓派中python代码 [RPi.GPIO实现](http://git.oschina.net/alpz5566/LightCtrl/blob/master/src/main/webapp/WEB-INF/executePython.py?dir=0&filepath=src%2Fmain%2Fwebapp%2FWEB-INF%2FexecutePython.py&oid=190d0b90f4d290ae68cbe0d20f0a359a039ff506&sha=592027a7c025f4868e68302d4e13da54d681ab93)