device 平台

yangliu c5ff2b296d feat: 修改设备订阅相关 4 miesięcy temu
device-service-application c5ff2b296d feat: 修改设备订阅相关 4 miesięcy temu
device-service-client-starter c5df9e9460 feat: 新增设备订阅相关 4 miesięcy temu
device-service-common c5ff2b296d feat: 修改设备订阅相关 4 miesięcy temu
device-service-domain c5ff2b296d feat: 修改设备订阅相关 4 miesięcy temu
device-service-infrastructure c5ff2b296d feat: 修改设备订阅相关 4 miesięcy temu
device-service-server c5ff2b296d feat: 修改设备订阅相关 4 miesięcy temu
.gitignore 93131749fd feat: 更换git仓库 4 miesięcy temu
Dockerfile 93131749fd feat: 更换git仓库 4 miesięcy temu
Java类与Python文件映射关系.md c5df9e9460 feat: 新增设备订阅相关 4 miesięcy temu
Jenkinsfile 93131749fd feat: 更换git仓库 4 miesięcy temu
OPC单元测试验证结果.md c5df9e9460 feat: 新增设备订阅相关 4 miesięcy temu
OPC消息处理功能实现说明.md c5df9e9460 feat: 新增设备订阅相关 4 miesięcy temu
README.md c5df9e9460 feat: 新增设备订阅相关 4 miesięcy temu
pom.xml a8a414df10 feat: 新增设备订阅相关 4 miesięcy temu
消息发送逻辑修正总结.md c5ff2b296d feat: 修改设备订阅相关 4 miesięcy temu

README.md

# TΘTYceQ gR (Device Access Service) ## yv{N TΘTYceQ gR(DAS)/fN*NWNJava Spring Boot_SvirTQYceQs^S Ǒ(uWqR(DDD)gg ;N(uN{tTYtYvceQ0pencYtT}TN NSI{R0 gRǏMQTTOSNYۏLO /ecY{vU_0O;m0r Nb0̍PNNYtI{R0 ## yvgg ,gyvWNWqR(DDD)gg R:NN NQB\ - **^(uB\** (device-service-application): OSTcW[a N[b(u7bvyr[(uO - **WB\** (device-service-domain): S+TNR;TĉRv8h_B\ - **W@xeB\** (device-service-infrastructure): cOb/g[s Ypenc^0moRI{ - **lQqQB** (device-service-common): S+TqQNv(uNx ### ggOVsQ|V mermaid graph TD; subgraph "^(uB\ Application" A["device-service-application"] A1["DeviceCommandServiceImpl"] A2["DeviceEventService"] A --S+T--> A1 A --S+T--> A2 end subgraph "WB\ Domain" B["device-service-domain"] B1["[SO Entity"] B11["Device"] B2["zS Port"] B21["DeviceCommandService"] B22["DeviceEventPort"] B3["QsQcS Gateway"] B31["DeviceGateway"] B32["MqttGateway"] B4["NN Event"] B41["MqttHandler"] B --S+T--> B1 B --S+T--> B2 B --S+T--> B3 B --S+T--> B4 B1 --S+T--> B11 B2 --S+T--> B21 B2 --S+T--> B22 B3 --S+T--> B31 B3 --S+T--> B32 B4 --S+T--> B41 end subgraph "W@xeB\ Infrastructure" C["device-service-infrastructure"] C1["QsQ[s Gateway Impl"] C11["DeviceGatewayImpl"] C12["MqttGatewayImpl"] C2["MQTTYt Subscriber"] C21["DeviceMessageSubscriber"] C22["DasMessageSubscriber"] C23["OpcMessageSubscriber"] C24["AppMessageSubscriber"] C3["penc Repository"] C31["DevInfoService"] C --S+T--> C1 C --S+T--> C2 C --S+T--> C3 C1 --S+T--> C11 C1 --S+T--> C12 C2 --S+T--> C21 C2 --S+T--> C22 C2 --S+T--> C23 C2 --S+T--> C24 C3 --S+T--> C31 end subgraph "lQqQB\ Common" D["device-service-common"] D1["8^ϑ Constants"] D11["MqttTopics"] D2["penc O[a DTO"] D3["_8^Yt Exception"] D31["BizException"] D4["Bl[a Request"] D --S+T--> D1 D --S+T--> D2 D --S+T--> D3 D --S+T--> D4 D1 --S+T--> D11 D3 --S+T--> D31 end subgraph "PythonHr,g" P["das"] P1["mqtt_recv.py"] P2["mqtt_send.py"] P3["dev_mng.py"] P --S+T--> P1 P --S+T--> P2 P --S+T--> P3 end %% OVsQ| A --> B C --> B C --> D A --> D B --> D %% [ssQ| A1 -.[s.-> B21 A2 -.[s.-> B22 C11 -.[s.-> B31 C12 -.[s.-> B32 %% (usQ| C21 -.(u.-> A2 C22 -.(u.-> A2 C23 -.(u.-> A1 C24 -.(u.-> A1 A1 -.(u.-> B41 A1 -.(u.-> B31 C11 -.(u.-> C31 %% SsQ| P1 -.S.-> C21 P1 -.S.-> C22 P1 -.S.-> C23 P1 -.S.-> C24 P2 -.S.-> B41 P3 -.S.-> C11 ### 8h_~Nf - **Y[SO (Device)**: WB\v8h[SO h:yYvrTL:N - **zScS**: DeviceCommandServiceTDeviceEventPort[INN|~NY萤NNvQY~ - **QsQcS**: DeviceGatewayTMqttGateway[INN|~Npenc^TmoRNNve - **MQTTYthV**: #Yt N T{|WvMQTTmoYmo0DASmo0OPCmoTAppmo - **QsQ[s**: [sNWB\[INvQsQcS #wQSOvpencTmoS ### OVsQ| cgqDDDvSR TB\KNvOVsQ|:N - ^(uB\OVWB\TlQqQB\ - W@xeB\OV^(uB\0WB\TlQqQB\ - WB\OVlQqQB\ - W@xeB\vMQTTYthV(u^(uB\ gR - ^(uB\ gR(uWB\QsQTNNYt - WB\QsQ[s1uW@xeB\cO ُyOVsQ|nxONWB\O:N8h_NR; NOVY萞[s u_NOVPnSR0 ### MQTTmoYtAm z 1. W@xeB\vMQTTYthVc6eMQTTmo 2. YthV(u^(uB\ gRelYtNR; 3. ^(uB\ gROSW[aTQsQ 4. WB\QsQǏW@xeB\[s{|penc^bvQNDn ُyMQN_sOV OggfRnpfTS~b0 ### NPythonHr,gvSsQ| - PythonHr,gvmqtt_recv.py[^JavaHr,gvMQTTYthV - PythonHr,gvmqtt_send.py[^JavaHr,gvMqttHandler - PythonHr,gvdev_mng.py[^JavaHr,gvDeviceGatewayImpl ## yvvU~g hfln-device-service/ %%% device-service-application/ # ^(u gR!jWW %%% device-service-client-starter/ # [7bz/TRhV!jWW %%% device-service-common/ # lQqQ!jWW %%% device-service-domain/ # W!jWW %%% device-service-infrastructure/ # W@xe!jWW %%% device-service-server/ # gR/TR!jWW %%% das/ # SPythonHrDASNxS %%% .gitignore # Git_eueN %%% Dockerfile # Dockerg^eN %%% Jenkinsfile # Jenkins CI/CDMn %%% pom.xml # MavenyvMn %%% README.md # yvfech ## MQTTO ### MQTTMn MQTT gRhVMnOoMONapplication.ymleN-N yaml mqtt: server: uri: tcp://8.130.28.21:1883 client: id: device-service- username: admin password: public connect: timeout: 30 keep: alive: interval: 60 clean: session: true ### MQTT;N |~O(uN N;N<h_ - Y NLmo: /dev/{deviceId}/{messageType} - ^(u NLmo: /app/{messageType} ;Nmo{|WSb - Y{vU: /dev/{deviceId}/report_device_info - YO;m: /dev/{deviceId}/keepalive - Yr Nb: /dev/{deviceId}/report_status - Y̍PNN Nb: /dev/{deviceId}/report_fall - YSpenT^: /dev/{deviceId}/set_param_response - ^(u~[Y: /app/bind_device - ^(u~Y: /app/unbind_device - ^(unYSpe: /app/set_device_param - ^(unx̍PNN: /app/fall_event/ack ## moYt |~O(u@MqttSubscriberlhmoYtel ǏMqttSubscriberProcessorꁨRkbcv^lQmoYthV0 ;NvmoYthVSb - DeviceMessageSubscriber: YtY NLmo - AppMessageSubscriber: Yt^(u NLmo ## KmՋ ### USCQKmՋ |~S+TN NUSCQKmՋ - DeviceMessageSubscriberTest: KmՋYmoYthV - AppMessageSubscriberTest: KmՋ^(umoYthV - MqttSubscriberProcessorTest: KmՋMQTTYthV8h_{| ### ƖbKmՋ |~S+TN NƖbKmՋ - MqttConnectionTest: KmՋNMQTT gRhVvW,gޏc - MqttConnectionWithAuthTest: KmՋ&^vMQTTޏc - MqttSubscriberIntegrationTest: KmՋMQTTmoYtAm z ### ЏLKmՋ O(uMavenЏLKmՋ bash # ЏL@b gKmՋ mvn test # ЏLyr[KmՋ mvn test -Dtest="com.hfln.device.infrastructure.mqtt.MqttConnectionTest" mvn test -Dtest="com.hfln.device.infrastructure.mqtt.MqttSubscriberIntegrationTest" ## r |~SbS:NSgbLJAReN SǏN N}TNg^ bash mvn clean package ЏL gR bash java -jar device-service-server/target/device-service-server-1.0.0-SNAPSHOT.jar