Domain Layer - Communication Services
controller.domain.services.communication.message_domain_service
MessageDomainService
MessageDomainService(message_encoder: MessageEncoder, message_decoder: MessageDecoder)
消息领域服务。
负责消息的编码和解码,作为 MessageEncoder 和 MessageDecoder 的门面。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
message_encoder |
MessageEncoder
|
消息编码器。 |
message_decoder |
MessageDecoder
|
消息解码器。 |
初始化消息领域服务。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
message_encoder
|
MessageEncoder
|
注入的消息编码器。 |
必需 |
message_decoder
|
MessageDecoder
|
注入的消息解码器。 |
必需 |
源代码位于: src/controller/controller/domain/services/communication/message_domain_service.py
14 15 16 17 18 19 20 21 22 | |
encode_message
encode_message(**message: Any) -> str
编码消息。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
**message
|
Any
|
消息字段键值对。 |
{}
|
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
str |
str
|
编码后的十六进制消息字符串。 |
源代码位于: src/controller/controller/domain/services/communication/message_domain_service.py
24 25 26 27 28 29 30 31 32 33 34 | |
decode_message
decode_message(message: str) -> Any
解码消息。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
message
|
str
|
十六进制消息字符串。 |
必需 |
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
Any |
Any
|
解码后的消息对象 (MessageIn)。 |
源代码位于: src/controller/controller/domain/services/communication/message_domain_service.py
36 37 38 39 40 41 42 43 44 45 | |
controller.domain.services.communication.serial_domain_service
串口领域服务 - Domain层 提供串口连接、读写操作的核心业务逻辑 可被其他Domain服务复用
SerialReaderThread
SerialReaderThread(serial_reader)
Bases: QThread
串口读取线程
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
14 15 16 | |
run
run()
运行读取循环
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
18 19 20 21 | |
SerialWriterThread
SerialWriterThread(serial_writer)
Bases: QThread
串口写入线程
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
27 28 29 | |
run
run()
运行写入循环
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
31 32 33 34 | |
SerialDomainService
SerialDomainService()
Bases: QObject
串口领域服务 - 管理串口连接的核心业务逻辑
初始化串口领域服务
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
44 45 46 47 48 49 50 51 52 53 54 55 | |
scan_available_ports
scan_available_ports() -> List[str]
扫描可用端口列表
返回
List[str]: 可用端口名称列表
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
57 58 59 60 61 62 63 64 65 66 67 | |
get_port_info
get_port_info(port_name: str) -> Optional[Dict[str, str]]
获取指定端口信息
参数
port_name: 端口名称
返回
Optional[Dict[str, str]]: 端口信息字典,失败时返回None
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
69 70 71 72 73 74 75 76 77 78 79 80 81 82 | |
get_current_port
get_current_port() -> Optional[str]
获取当前连接的端口名称
返回
Optional[str]: 端口名称,未连接时返回None
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
84 85 86 87 88 89 90 91 | |
is_connected
is_connected() -> bool
检查串口是否已连接
返回
bool: 是否已连接
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
93 94 95 96 97 98 99 100 | |
connect_port
connect_port(port: str, config: Dict[str, Any]) -> bool
连接串口
参数
port: 串口名称 config: 串口配置参数
返回
bool: 连接是否成功
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | |
disconnect_port
disconnect_port() -> bool
断开串口连接
返回
bool: 断开是否成功
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | |
send_data
send_data(data: str) -> bool
发送数据
参数
data: 要发送的数据
返回
bool: 是否成功添加到发送队列
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 | |
cleanup
cleanup() -> None
清理资源
源代码位于: src/controller/controller/domain/services/communication/serial_domain_service.py
242 243 244 245 246 247 | |