src.service.clientsvc package

Submodules

src.service.clientsvc.client_service module

DLT645 客户端服务模块。

本模块实现了 DLT645 协议的客户端业务服务功能,包括: - 电能数据读取 - 需量数据读取 - 变量数据读取 - 事件记录读取 - 参变量读写 - 通讯地址读写 - 密码管理

class src.service.clientsvc.client_service.MeterClientService(client)[源代码]

基类:object

电表客户端服务类。

用于与 DLT645 电表设备进行通信,提供数据读写等业务功能。

变量:
  • address -- 设备地址(6字节)。

  • password_manager -- 密码管理器。

  • operation_code -- 操作码(4字节)。

  • client -- 通信客户端(TCP 或 RTU)。

初始化电表客户端服务。

参数:

client (Union[TcpClient, RtuClient]) -- 通信客户端实例(TcpClient 或 RtuClient)。

classmethod new_tcp_client(ip, port, timeout=30.0)[源代码]

创建TCP客户端

返回类型:

Optional[MeterClientService]

classmethod new_rtu_client(port, baudrate, databits, stopbits, parity, timeout)[源代码]

创建RTU客户端

返回类型:

Optional[MeterClientService]

classmethod new_meter_client_service(client)[源代码]

创建新的MeterService实例

返回类型:

Optional[MeterClientService]

get_time(t)[源代码]

从字节数据获取时间

返回类型:

datetime

set_address(address)[源代码]

设置设备地址

返回类型:

bool

set_password(password)[源代码]

设置设备密码, 修改数据的命令会带上密码发送出去

返回类型:

bool

change_password(old_password, new_password)[源代码]

修改设备密码

返回类型:

bool

read_00(di)[源代码]

读取电能

返回类型:

Optional[DataItem]

read_01(di)[源代码]

读取最大需量及发生时间

返回类型:

Optional[DataItem]

read_02(di)[源代码]

读取变量

返回类型:

Optional[DataItem]

read_03(di)[源代码]

读取事件记录

返回类型:

Optional[DataItem]

read_04(di)[源代码]

读取参变量

返回类型:

Optional[DataItem]

write_04(di, value, password)[源代码]

写参变量

返回类型:

Optional[DataItem]

read_address()[源代码]

读取通讯地址

返回类型:

Optional[DataItem]

write_address(new_address)[源代码]

写通讯地址

返回类型:

Optional[DataItem]

send_and_handle_request(frame_bytes)[源代码]

发送请求并处理响应(带超时控制)

返回类型:

Optional[DataItem]

Args:

frame_bytes: 要发送的帧数据

Returns:

DataItem: 成功时返回数据项 None: 超时或失败时返回

handle_response(frame)[源代码]

处理响应帧,包括异常帧检测

返回类型:

Optional[DataItem]

enable_message_capture(queue_size=100)[源代码]

启用报文捕获功能。

参数:

queue_size (int) -- 报文队列大小,默认100

返回类型:

None

disable_message_capture()[源代码]

禁用报文捕获功能。

返回类型:

None

get_captured_messages(count=0)[源代码]

获取捕获的报文列表。

参数:

count (int) -- 要获取的数量,0表示全部

返回:

报文列表

返回类型:

List[MessageRecord]

get_captured_tx_messages(count=0)[源代码]

获取捕获的发送报文列表。

参数:

count (int) -- 要获取的数量,0表示全部

返回:

发送报文列表

返回类型:

List[MessageRecord]

get_captured_rx_messages(count=0)[源代码]

获取捕获的接收报文列表。

参数:

count (int) -- 要获取的数量,0表示全部

返回:

接收报文列表

返回类型:

List[MessageRecord]

get_captured_pairs(count=0)[源代码]

获取捕获的TX/RX配对列表。

参数:

count (int) -- 要获取的数量,0表示全部

返回:

配对列表

返回类型:

List[MessagePair]

clear_captured_messages()[源代码]

清空所有捕获的报文。

返回类型:

None

get_message_capture_stats()[源代码]

获取报文捕获统计信息。

返回:

统计信息字典

返回类型:

dict

src.service.clientsvc.log module

Module contents