mirror of
https://github.com/suaveolent/hoymiles-wifi.git
synced 2024-09-19 19:00:17 +00:00
removed real_data_hms request since it is covered by real_data_new
This commit is contained in:
parent
87b709439b
commit
322ab070fc
@ -1,7 +1,9 @@
|
||||
"""Init file for hoymiles_wifi package."""
|
||||
|
||||
import logging
|
||||
import os
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
LOGLEVEL = os.environ.get("LOGLEVEL", "INFO").upper()
|
||||
logging.basicConfig(level=LOGLEVEL)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
@ -29,7 +29,6 @@ from hoymiles_wifi.protobuf import (
|
||||
InfomationData_pb2,
|
||||
NetworkInfo_pb2,
|
||||
RealData_pb2,
|
||||
RealDataHMS_pb2,
|
||||
RealDataNew_pb2,
|
||||
)
|
||||
|
||||
@ -71,14 +70,6 @@ async def async_get_real_data_new(
|
||||
return await dtu.async_get_real_data_new()
|
||||
|
||||
|
||||
async def async_get_real_data_hms(
|
||||
dtu: DTU,
|
||||
) -> RealDataHMS_pb2.RealDataHMSResDTO | None:
|
||||
"""Get real data from the inverter asynchronously."""
|
||||
|
||||
return await dtu.async_get_real_data_hms()
|
||||
|
||||
|
||||
async def async_get_real_data(dtu: DTU) -> RealData_pb2.RealDataResDTO | None:
|
||||
"""Get real data from the inverter asynchronously."""
|
||||
|
||||
@ -300,7 +291,7 @@ def print_invalid_command(command: str) -> None:
|
||||
async def main() -> None:
|
||||
"""Execute the main function for the hoymiles_wifi package."""
|
||||
|
||||
parser = argparse.ArgumentParser(description="Hoymiles HMS Monitoring")
|
||||
parser = argparse.ArgumentParser(description="Hoymiles DTU Monitoring")
|
||||
parser.add_argument(
|
||||
"--host", type=str, required=True, help="IP address or hostname of the DTU"
|
||||
)
|
||||
@ -315,7 +306,6 @@ async def main() -> None:
|
||||
type=str,
|
||||
choices=[
|
||||
"get-real-data-new",
|
||||
"get-real-data-hms",
|
||||
"get-real-data",
|
||||
"get-config",
|
||||
"network-info",
|
||||
@ -342,7 +332,6 @@ async def main() -> None:
|
||||
# Execute the specified command using a switch case
|
||||
switch = {
|
||||
"get-real-data-new": async_get_real_data_new,
|
||||
"get-real-data-hms": async_get_real_data_hms,
|
||||
"get-real-data": async_get_real_data,
|
||||
"get-config": async_get_config,
|
||||
"network-info": async_network_info,
|
||||
|
@ -114,3 +114,4 @@ DTU_FIRMWARE_URL_00_01_11 = (
|
||||
)
|
||||
|
||||
MAX_POWER_LIMIT = 100
|
||||
OFFSET = 28800
|
||||
|
@ -32,6 +32,7 @@ from hoymiles_wifi.const import (
|
||||
DEV_DTU,
|
||||
DTU_FIRMWARE_URL_00_01_11,
|
||||
DTU_PORT,
|
||||
OFFSET,
|
||||
)
|
||||
from hoymiles_wifi.protobuf import (
|
||||
AppGetHistPower_pb2,
|
||||
@ -88,15 +89,6 @@ class DTU:
|
||||
self.state = new_state
|
||||
logger.debug(f"DTU is {new_state}")
|
||||
|
||||
async def async_get_real_data_hms(self) -> RealDataHMS_pb2.HMSStateResponse | None:
|
||||
"""Get real data HMS."""
|
||||
|
||||
request = RealDataHMS_pb2.HMSRealDataResDTO()
|
||||
command = CMD_REAL_DATA_RES_DTO
|
||||
return await self.async_send_request(
|
||||
command, request, RealDataHMS_pb2.HMSStateResponse
|
||||
)
|
||||
|
||||
async def async_get_real_data(self) -> RealData_pb2.RealDataResDTO | None:
|
||||
"""Get real data."""
|
||||
|
||||
@ -113,7 +105,7 @@ class DTU:
|
||||
request.time_ymd_hms = (
|
||||
datetime.now().strftime("%Y-%m-%d %H:%M:%S").encode("utf-8")
|
||||
)
|
||||
request.offset = 28800
|
||||
request.offset = OFFSET
|
||||
request.time = int(time.time())
|
||||
command = CMD_REAL_RES_DTO
|
||||
return await self.async_send_request(
|
||||
@ -124,7 +116,7 @@ class DTU:
|
||||
"""Get config."""
|
||||
|
||||
request = GetConfig_pb2.GetConfigResDTO()
|
||||
request.offset = 28800
|
||||
request.offset = OFFSET
|
||||
request.time = int(time.time()) - 60
|
||||
command = CMD_GET_CONFIG
|
||||
return await self.async_send_request(
|
||||
@ -137,7 +129,7 @@ class DTU:
|
||||
"""Get network info."""
|
||||
|
||||
request = NetworkInfo_pb2.NetworkInfoResDTO()
|
||||
request.offset = 28800
|
||||
request.offset = OFFSET
|
||||
request.time = int(time.time())
|
||||
command = CMD_NETWORK_INFO_RES
|
||||
return await self.async_send_request(
|
||||
@ -152,7 +144,7 @@ class DTU:
|
||||
request.time_ymd_hms = (
|
||||
datetime.now().strftime("%Y-%m-%d %H:%M:%S").encode("utf-8")
|
||||
)
|
||||
request.offset = 28800
|
||||
request.offset = OFFSET
|
||||
request.time = int(time.time())
|
||||
command = CMD_APP_INFO_DATA_RES_DTO
|
||||
return await self.async_send_request(
|
||||
@ -165,7 +157,7 @@ class DTU:
|
||||
"""Get historical power."""
|
||||
|
||||
request = AppGetHistPower_pb2.AppGetHistPowerResDTO()
|
||||
request.offset = 28800
|
||||
request.offset = OFFSET
|
||||
request.requested_time = int(time.time())
|
||||
command = CMD_APP_GET_HIST_POWER_RES
|
||||
return await self.async_send_request(
|
||||
@ -212,7 +204,7 @@ class DTU:
|
||||
request = initialize_set_config(get_config_req)
|
||||
|
||||
request.time = int(time.time())
|
||||
request.offset = 28800
|
||||
request.offset = OFFSET
|
||||
request.app_page = 1
|
||||
request.netmode_select = NetmodeSelect.WIFI
|
||||
request.wifi_ssid = ssid.encode("utf-8")
|
||||
@ -290,7 +282,7 @@ class DTU:
|
||||
request.time_ymd_hms = (
|
||||
datetime.now().strftime("%Y-%m-%d %H:%M:%S").encode("utf-8")
|
||||
)
|
||||
request.offset = 28800
|
||||
request.offset = OFFSET
|
||||
request.time = int(time.time())
|
||||
command = CMD_APP_INFO_DATA_RES_DTO
|
||||
return await self.async_send_request(
|
||||
@ -304,7 +296,7 @@ class DTU:
|
||||
request.time_ymd_hms = (
|
||||
datetime.now().strftime("%Y-%m-%d %H:%M:%S").encode("utf-8")
|
||||
)
|
||||
request.offset = 28800
|
||||
request.offset = OFFSET
|
||||
request.time = int(time.time())
|
||||
|
||||
command = CMD_HB_RES_DTO
|
||||
@ -364,6 +356,8 @@ class DTU:
|
||||
|
||||
crc16_target, read_length = struct.unpack(">HH", buf[6:10])
|
||||
|
||||
logger.debug(f"Read length: {read_length}")
|
||||
|
||||
if len(buf) != read_length:
|
||||
raise ValueError("Buffer is incomplete")
|
||||
|
||||
|
@ -67,7 +67,7 @@ class DTUType(Enum):
|
||||
DTU_LITE = "DTU-Lite"
|
||||
DTU_PRO = "DTU-PRO"
|
||||
DTU_PRO_S = "DTU-PRO-S"
|
||||
DTU_HMS_W = "DTU-HMS-W"
|
||||
DTUBI = "DTUBI"
|
||||
DTU_W100_LITE_S = "DTU-W100/DTU-Lite-S"
|
||||
DTU_W_LITE = "DTU-WLite"
|
||||
|
||||
@ -94,25 +94,25 @@ type_mapping = {
|
||||
0x10D6: DTUType.DTU_LITE,
|
||||
0x10D7: DTUType.DTU_LITE,
|
||||
0x4131: DTUType.DTU_LITE,
|
||||
0x1124: DTUType.DTU_HMS_W,
|
||||
0x1125: DTUType.DTU_HMS_W,
|
||||
0x1403: DTUType.DTU_HMS_W,
|
||||
0x1144: DTUType.DTU_HMS_W,
|
||||
0x1143: DTUType.DTU_HMS_W,
|
||||
0x1145: DTUType.DTU_HMS_W,
|
||||
0x1412: DTUType.DTU_HMS_W,
|
||||
0x1164: DTUType.DTU_HMS_W,
|
||||
0x1165: DTUType.DTU_HMS_W,
|
||||
0x1166: DTUType.DTU_HMS_W,
|
||||
0x1167: DTUType.DTU_HMS_W,
|
||||
0x1222: DTUType.DTU_HMS_W,
|
||||
0x1422: DTUType.DTU_HMS_W,
|
||||
0x1423: DTUType.DTU_HMS_W,
|
||||
0x1361: DTUType.DTU_HMS_W,
|
||||
0x1362: DTUType.DTU_HMS_W,
|
||||
0x1381: DTUType.DTU_HMS_W,
|
||||
0x1382: DTUType.DTU_HMS_W,
|
||||
0x4143: DTUType.DTU_HMS_W,
|
||||
0x1124: DTUType.DTUBI,
|
||||
0x1125: DTUType.DTUBI,
|
||||
0x1403: DTUType.DTUBI,
|
||||
0x1144: DTUType.DTUBI,
|
||||
0x1143: DTUType.DTUBI,
|
||||
0x1145: DTUType.DTUBI,
|
||||
0x1412: DTUType.DTUBI,
|
||||
0x1164: DTUType.DTUBI,
|
||||
0x1165: DTUType.DTUBI,
|
||||
0x1166: DTUType.DTUBI,
|
||||
0x1167: DTUType.DTUBI,
|
||||
0x1222: DTUType.DTUBI,
|
||||
0x1422: DTUType.DTUBI,
|
||||
0x1423: DTUType.DTUBI,
|
||||
0x1361: DTUType.DTUBI,
|
||||
0x1362: DTUType.DTUBI,
|
||||
0x1381: DTUType.DTUBI,
|
||||
0x1382: DTUType.DTUBI,
|
||||
0x4143: DTUType.DTUBI,
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,46 +0,0 @@
|
||||
syntax = "proto3";
|
||||
|
||||
message HMSRealDataResDTO {
|
||||
string ymd_hms = 1; // YmdHms
|
||||
int32 cp = 2; // PackageNow
|
||||
int32 err_code = 3; // ErrCode
|
||||
int32 offset = 4; // Offset
|
||||
int32 time = 5; // Time
|
||||
}
|
||||
|
||||
message InverterState {
|
||||
int64 inv_id = 1;
|
||||
int32 port_id = 2;
|
||||
int32 grid_voltage = 3; // [V], factor 0.1
|
||||
int32 grid_freq = 4; // [Hz], factor 0.1
|
||||
int32 pv_current_power = 5; // [W], factor 0.1
|
||||
int32 unknown1 = 7;
|
||||
int32 unknown2 = 8; // power limit? [%], factor 0.1
|
||||
int32 temperature = 9; // [C], factor 0.1
|
||||
int32 unknown3 = 10;
|
||||
int32 unknown4 = 12;
|
||||
int32 bit_field = 20; // a guess
|
||||
}
|
||||
|
||||
message PortState {
|
||||
int64 pv_sn = 1; // serial number
|
||||
int32 pv_port = 2; // id of the port
|
||||
int32 pv_vol = 3; // [V], factor 0.1
|
||||
int32 pv_cur = 4; // [A], factor 0.1
|
||||
int32 pv_power = 5; // [W], factor 0.1
|
||||
int32 pv_energy_total = 6; // [Wh]
|
||||
int32 pv_daily_yield = 7; // [Wh]
|
||||
int32 bitfield = 8; // bitfield is a guess
|
||||
}
|
||||
|
||||
message HMSStateResponse {
|
||||
string dtu_sn = 1; // serial
|
||||
int32 time = 2; // epoch
|
||||
int32 device_nub = 3;
|
||||
int32 pv_nub = 4; // repeats cp field from request
|
||||
int32 package_nub = 5;
|
||||
repeated InverterState inverter_state = 9;
|
||||
repeated PortState port_state = 11;
|
||||
int32 pv_current_power = 12; // [W], factor 0.1
|
||||
int32 pv_daily_yield = 13; // [Wh]
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: RealDataHMS.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
from google.protobuf.internal import builder as _builder
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11RealDataHMS.proto\"`\n\x11HMSRealDataResDTO\x12\x0f\n\x07ymd_hms\x18\x01 \x01(\t\x12\n\n\x02\x63p\x18\x02 \x01(\x05\x12\x10\n\x08\x65rr_code\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x12\x0c\n\x04time\x18\x05 \x01(\x05\"\xe3\x01\n\rInverterState\x12\x0e\n\x06inv_id\x18\x01 \x01(\x03\x12\x0f\n\x07port_id\x18\x02 \x01(\x05\x12\x14\n\x0cgrid_voltage\x18\x03 \x01(\x05\x12\x11\n\tgrid_freq\x18\x04 \x01(\x05\x12\x18\n\x10pv_current_power\x18\x05 \x01(\x05\x12\x10\n\x08unknown1\x18\x07 \x01(\x05\x12\x10\n\x08unknown2\x18\x08 \x01(\x05\x12\x13\n\x0btemperature\x18\t \x01(\x05\x12\x10\n\x08unknown3\x18\n \x01(\x05\x12\x10\n\x08unknown4\x18\x0c \x01(\x05\x12\x11\n\tbit_field\x18\x14 \x01(\x05\"\xa0\x01\n\tPortState\x12\r\n\x05pv_sn\x18\x01 \x01(\x03\x12\x0f\n\x07pv_port\x18\x02 \x01(\x05\x12\x0e\n\x06pv_vol\x18\x03 \x01(\x05\x12\x0e\n\x06pv_cur\x18\x04 \x01(\x05\x12\x10\n\x08pv_power\x18\x05 \x01(\x05\x12\x17\n\x0fpv_energy_total\x18\x06 \x01(\x05\x12\x16\n\x0epv_daily_yield\x18\x07 \x01(\x05\x12\x10\n\x08\x62itfield\x18\x08 \x01(\x05\"\xe3\x01\n\x10HMSStateResponse\x12\x0e\n\x06\x64tu_sn\x18\x01 \x01(\t\x12\x0c\n\x04time\x18\x02 \x01(\x05\x12\x12\n\ndevice_nub\x18\x03 \x01(\x05\x12\x0e\n\x06pv_nub\x18\x04 \x01(\x05\x12\x13\n\x0bpackage_nub\x18\x05 \x01(\x05\x12&\n\x0einverter_state\x18\t \x03(\x0b\x32\x0e.InverterState\x12\x1e\n\nport_state\x18\x0b \x03(\x0b\x32\n.PortState\x12\x18\n\x10pv_current_power\x18\x0c \x01(\x05\x12\x16\n\x0epv_daily_yield\x18\r \x01(\x05\x62\x06proto3')
|
||||
|
||||
_globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'RealDataHMS_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
DESCRIPTOR._options = None
|
||||
_globals['_HMSREALDATARESDTO']._serialized_start=21
|
||||
_globals['_HMSREALDATARESDTO']._serialized_end=117
|
||||
_globals['_INVERTERSTATE']._serialized_start=120
|
||||
_globals['_INVERTERSTATE']._serialized_end=347
|
||||
_globals['_PORTSTATE']._serialized_start=350
|
||||
_globals['_PORTSTATE']._serialized_end=510
|
||||
_globals['_HMSSTATERESPONSE']._serialized_start=513
|
||||
_globals['_HMSSTATERESPONSE']._serialized_end=740
|
||||
# @@protoc_insertion_point(module_scope)
|
@ -1,123 +1,123 @@
|
||||
syntax = "proto3";
|
||||
|
||||
message MeterMO {
|
||||
int32 device_type = 1; // Device type identifier
|
||||
int64 serial_number = 2; // Serial number of the meter
|
||||
int32 phase_total_power = 3; // Total power across all phases (Watts)
|
||||
int32 phase_A_power = 4; // Power in phase A (Watts)
|
||||
int32 phase_B_power = 5; // Power in phase B (Watts)
|
||||
int32 phase_C_power = 6; // Power in phase C (Watts)
|
||||
int32 power_factor_total = 7; // Total power factor
|
||||
int32 energy_total_power = 8; // Total energy generated (Watt-hours)
|
||||
int32 energy_phase_A = 9; // Energy generated in phase A (Watt-hours)
|
||||
int32 energy_phase_B = 10; // Energy generated in phase B (Watt-hours)
|
||||
int32 energy_phase_C = 11; // Energy generated in phase C (Watt-hours)
|
||||
int32 energy_total_consumed = 12; // Total energy consumed (Watt-hours)
|
||||
int32 energy_phase_A_consumed = 13; // Energy consumed in phase A (Watt-hours)
|
||||
int32 energy_phase_B_consumed = 14; // Energy consumed in phase B (Watt-hours)
|
||||
int32 energy_phase_C_consumed = 15; // Energy consumed in phase C (Watt-hours)
|
||||
int32 fault_code = 16; // Fault code indicator
|
||||
int32 voltage_phase_A = 17; // Voltage in phase A (Volts)
|
||||
int32 voltage_phase_B = 18; // Voltage in phase B (Volts)
|
||||
int32 voltage_phase_C = 19; // Voltage in phase C (Volts)
|
||||
int32 current_phase_A = 20; // Current in phase A (Amperes)
|
||||
int32 current_phase_B = 21; // Current in phase B (Amperes)
|
||||
int32 current_phase_C = 22; // Current in phase C (Amperes)
|
||||
int32 power_factor_phase_A = 23; // Power factor in phase A
|
||||
int32 power_factor_phase_B = 24; // Power factor in phase B
|
||||
int32 power_factor_phase_C = 25; // Power factor in phase C
|
||||
int32 device_type = 1; // Device type identifier
|
||||
int64 serial_number = 2; // Serial number of the meter
|
||||
int32 phase_total_power = 3; // Total power across all phases (Watts)
|
||||
int32 phase_A_power = 4; // Power in phase A (Watts)
|
||||
int32 phase_B_power = 5; // Power in phase B (Watts)
|
||||
int32 phase_C_power = 6; // Power in phase C (Watts)
|
||||
int32 power_factor_total = 7; // Total power factor
|
||||
int32 energy_total_power = 8; // Total energy generated (Watt-hours)
|
||||
int32 energy_phase_A = 9; // Energy generated in phase A (Watt-hours)
|
||||
int32 energy_phase_B = 10; // Energy generated in phase B (Watt-hours)
|
||||
int32 energy_phase_C = 11; // Energy generated in phase C (Watt-hours)
|
||||
int32 energy_total_consumed = 12; // Total energy consumed (Watt-hours)
|
||||
int32 energy_phase_A_consumed = 13; // Energy consumed in phase A (Watt-hours)
|
||||
int32 energy_phase_B_consumed = 14; // Energy consumed in phase B (Watt-hours)
|
||||
int32 energy_phase_C_consumed = 15; // Energy consumed in phase C (Watt-hours)
|
||||
int32 fault_code = 16; // Fault code indicator
|
||||
int32 voltage_phase_A = 17; // Voltage in phase A (Volts)
|
||||
int32 voltage_phase_B = 18; // Voltage in phase B (Volts)
|
||||
int32 voltage_phase_C = 19; // Voltage in phase C (Volts)
|
||||
int32 current_phase_A = 20; // Current in phase A (Amperes)
|
||||
int32 current_phase_B = 21; // Current in phase B (Amperes)
|
||||
int32 current_phase_C = 22; // Current in phase C (Amperes)
|
||||
int32 power_factor_phase_A = 23; // Power factor in phase A
|
||||
int32 power_factor_phase_B = 24; // Power factor in phase B
|
||||
int32 power_factor_phase_C = 25; // Power factor in phase C
|
||||
}
|
||||
|
||||
message RpMO {
|
||||
int64 serial_number = 1; // Serial number of the device
|
||||
int32 signature = 2; // Signature value
|
||||
int32 channel = 3; // Channel number
|
||||
int32 pv_number = 4; // Photovoltaic (PV) number
|
||||
int32 link_status = 5; // Link status indicator
|
||||
int64 serial_number = 1; // Serial number of the device
|
||||
int32 signature = 2; // Signature value
|
||||
int32 channel = 3; // Channel number
|
||||
int32 pv_number = 4; // Photovoltaic (PV) number
|
||||
int32 link_status = 5; // Link status indicator
|
||||
}
|
||||
|
||||
message RSDMO {
|
||||
int64 serial_number = 1; // Serial number of the device
|
||||
int32 firmware_version = 2; // Firmware version
|
||||
int32 voltage = 3; // Voltage value
|
||||
int32 power = 4; // Power value
|
||||
int32 temperature = 5; // Temperature value
|
||||
int32 warning_number = 6; // Warning number
|
||||
int32 crc_checksum = 7; // CRC checksum
|
||||
int32 link_status = 8; // Link status indicator
|
||||
int64 serial_number = 1; // Serial number of the device
|
||||
int32 firmware_version = 2; // Firmware version
|
||||
int32 voltage = 3; // Voltage value
|
||||
int32 power = 4; // Power value
|
||||
int32 temperature = 5; // Temperature value
|
||||
int32 warning_number = 6; // Warning number
|
||||
int32 crc_checksum = 7; // CRC checksum
|
||||
int32 link_status = 8; // Link status indicator
|
||||
}
|
||||
|
||||
message SGSMO {
|
||||
int64 serial_number = 1; // Serial number of the device
|
||||
int32 firmware_version = 2; // Firmware version
|
||||
int32 voltage = 3; // Grid voltage (Volts)
|
||||
int32 frequency = 4; // Grid frequency (Hertz)
|
||||
int32 active_power = 5; // Active power (Watts)
|
||||
int32 reactive_power = 6; // Reactive power (VAR)
|
||||
int32 current = 7; // Current (Amperes)
|
||||
int32 power_factor = 8; // Power factor
|
||||
int32 temperature = 9; // Temperature value
|
||||
int32 warning_number = 10; // Warning number
|
||||
int32 crc_checksum = 11; // CRC checksum
|
||||
int32 link_status = 12; // Link status indicator
|
||||
int32 power_limit = 13; // Power limit (Watts)
|
||||
int32 modulation_index_signal = 20; // Modulation index signal
|
||||
int64 serial_number = 1; // Serial number of the device
|
||||
int32 firmware_version = 2; // Firmware version
|
||||
int32 voltage = 3; // Grid voltage (Volts)
|
||||
int32 frequency = 4; // Grid frequency (Hertz)
|
||||
int32 active_power = 5; // Active power (Watts)
|
||||
int32 reactive_power = 6; // Reactive power (VAR)
|
||||
int32 current = 7; // Current (Amperes)
|
||||
int32 power_factor = 8; // Power factor
|
||||
int32 temperature = 9; // Temperature value
|
||||
int32 warning_number = 10; // Warning number
|
||||
int32 crc_checksum = 11; // CRC checksum
|
||||
int32 link_status = 12; // Link status indicator
|
||||
int32 power_limit = 13; // Power limit (Watts)
|
||||
int32 modulation_index_signal = 20; // Modulation index signal
|
||||
}
|
||||
|
||||
message TGSMO {
|
||||
int64 serial_number = 1; // Serial number of the device
|
||||
int32 firmware_version = 2; // Firmware version
|
||||
int32 voltage_phase_A = 3; // Voltage in phase A (Volts)
|
||||
int32 voltage_phase_B = 4; // Voltage in phase B (Volts)
|
||||
int32 voltage_phase_C = 5; // Voltage in phase C (Volts)
|
||||
int32 voltage_line_AB = 6; // Voltage between lines A and B (Volts)
|
||||
int32 voltage_line_BC = 7; // Voltage between lines B and C (Volts)
|
||||
int32 voltage_line_CA = 8; // Voltage between lines C and A (Volts)
|
||||
int32 frequency = 9; // Frequency (Hertz)
|
||||
int32 active_power = 10; // Active power (Watts)
|
||||
int32 reactive_power = 11; // Reactive power (VAR)
|
||||
int32 current_phase_A = 12; // Current in phase A (Amperes)
|
||||
int32 current_phase_B = 13; // Current in phase B (Amperes)
|
||||
int32 current_phase_C = 14; // Current in phase C (Amperes)
|
||||
int32 power_factor = 15; // Power factor
|
||||
int32 temperature = 16; // Temperature value
|
||||
int32 warning_number = 17; // Warning number
|
||||
int32 crc_checksum = 18; // CRC checksum
|
||||
int32 link_status = 19; // Link status indicator
|
||||
int32 modulation_index_signal = 20; // Modulation index signal
|
||||
int64 serial_number = 1; // Serial number of the device
|
||||
int32 firmware_version = 2; // Firmware version
|
||||
int32 voltage_phase_A = 3; // Voltage in phase A (Volts)
|
||||
int32 voltage_phase_B = 4; // Voltage in phase B (Volts)
|
||||
int32 voltage_phase_C = 5; // Voltage in phase C (Volts)
|
||||
int32 voltage_line_AB = 6; // Voltage between lines A and B (Volts)
|
||||
int32 voltage_line_BC = 7; // Voltage between lines B and C (Volts)
|
||||
int32 voltage_line_CA = 8; // Voltage between lines C and A (Volts)
|
||||
int32 frequency = 9; // Frequency (Hertz)
|
||||
int32 active_power = 10; // Active power (Watts)
|
||||
int32 reactive_power = 11; // Reactive power (VAR)
|
||||
int32 current_phase_A = 12; // Current in phase A (Amperes)
|
||||
int32 current_phase_B = 13; // Current in phase B (Amperes)
|
||||
int32 current_phase_C = 14; // Current in phase C (Amperes)
|
||||
int32 power_factor = 15; // Power factor
|
||||
int32 temperature = 16; // Temperature value
|
||||
int32 warning_number = 17; // Warning number
|
||||
int32 crc_checksum = 18; // CRC checksum
|
||||
int32 link_status = 19; // Link status indicator
|
||||
int32 modulation_index_signal = 20; // Modulation index signal
|
||||
}
|
||||
|
||||
message PvMO {
|
||||
int64 serial_number = 1; // Serial number of the device
|
||||
int32 port_number = 2; // Port number
|
||||
int32 voltage = 3; // Voltage (Volts)
|
||||
int32 current = 4; // Current (Amperes)
|
||||
int32 power = 5; // Power (Watts)
|
||||
int32 energy_total = 6; // Total energy generated (Watt-hours)
|
||||
int32 energy_daily = 7; // Daily energy generated (Watt-hours)
|
||||
int32 error_code = 8; // Error code indicator
|
||||
int64 serial_number = 1; // Serial number of the device
|
||||
int32 port_number = 2; // Port number
|
||||
int32 voltage = 3; // Voltage (Volts)
|
||||
int32 current = 4; // Current (Amperes)
|
||||
int32 power = 5; // Power (Watts)
|
||||
int32 energy_total = 6; // Total energy generated (Watt-hours)
|
||||
int32 energy_daily = 7; // Daily energy generated (Watt-hours)
|
||||
int32 error_code = 8; // Error code indicator
|
||||
}
|
||||
|
||||
message RealDataNewReqDTO {
|
||||
string device_serial_number = 1; // Serial number of the device
|
||||
int32 timestamp = 2; // Timestamp of the data
|
||||
int32 active_power = 3; // Active power (Watts)
|
||||
int32 cumulative_power = 4; // Cumulative power (Watt-hours)
|
||||
int32 firmware_version = 5; // Firmware version
|
||||
repeated MeterMO meter_data = 6; // Meter data array
|
||||
repeated RpMO rp_data = 7; // RpMO data array
|
||||
repeated RSDMO rsd_data = 8; // RSDMO data array
|
||||
repeated SGSMO sgs_data = 9; // SGSMO data array
|
||||
repeated TGSMO tgs_data = 10; // TGSMO data array
|
||||
repeated PvMO pv_data = 11; // PvMO data array
|
||||
uint64 dtu_power = 12; // Power of the DTU (Watts)
|
||||
uint64 dtu_daily_energy = 13; // Daily energy of the DTU (Watt-hours)
|
||||
string device_serial_number = 1; // Serial number of the device
|
||||
int32 timestamp = 2; // Timestamp of the data
|
||||
int32 active_power = 3; // Active power (Watts)
|
||||
int32 cp = 4; // Control parameter?
|
||||
int32 firmware_version = 5; // Firmware version
|
||||
repeated MeterMO meter_data = 6; // Meter data array
|
||||
repeated RpMO rp_data = 7; // RpMO data array
|
||||
repeated RSDMO rsd_data = 8; // RSDMO data array
|
||||
repeated SGSMO sgs_data = 9; // SGSMO data array
|
||||
repeated TGSMO tgs_data = 10; // TGSMO data array
|
||||
repeated PvMO pv_data = 11; // PvMO data array
|
||||
uint64 dtu_power = 12; // Power of the DTU (Watts)
|
||||
uint64 dtu_daily_energy = 13; // Daily energy of the DTU (Watt-hours)
|
||||
}
|
||||
|
||||
message RealDataNewResDTO {
|
||||
string time_ymd_hms = 1; // Timestamp in the format YMD_HMS
|
||||
int32 cumulative_power = 2; // Cumulative power (Watt-hours)
|
||||
int32 error_code = 3; // Error code indicator
|
||||
int32 offset = 4; // Offset value
|
||||
int32 time = 5; // Timestamp value
|
||||
string time_ymd_hms = 1; // Timestamp in the format YMD_HMS
|
||||
int32 cp = 2; // Control parameter?
|
||||
int32 error_code = 3; // Error code indicator
|
||||
int32 offset = 4; // Offset value
|
||||
int32 time = 5; // Timestamp value
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11RealDataNew.proto\"\x9b\x05\n\x07MeterMO\x12\x13\n\x0b\x64\x65vice_type\x18\x01 \x01(\x05\x12\x15\n\rserial_number\x18\x02 \x01(\x03\x12\x19\n\x11phase_total_power\x18\x03 \x01(\x05\x12\x15\n\rphase_A_power\x18\x04 \x01(\x05\x12\x15\n\rphase_B_power\x18\x05 \x01(\x05\x12\x15\n\rphase_C_power\x18\x06 \x01(\x05\x12\x1a\n\x12power_factor_total\x18\x07 \x01(\x05\x12\x1a\n\x12\x65nergy_total_power\x18\x08 \x01(\x05\x12\x16\n\x0e\x65nergy_phase_A\x18\t \x01(\x05\x12\x16\n\x0e\x65nergy_phase_B\x18\n \x01(\x05\x12\x16\n\x0e\x65nergy_phase_C\x18\x0b \x01(\x05\x12\x1d\n\x15\x65nergy_total_consumed\x18\x0c \x01(\x05\x12\x1f\n\x17\x65nergy_phase_A_consumed\x18\r \x01(\x05\x12\x1f\n\x17\x65nergy_phase_B_consumed\x18\x0e \x01(\x05\x12\x1f\n\x17\x65nergy_phase_C_consumed\x18\x0f \x01(\x05\x12\x12\n\nfault_code\x18\x10 \x01(\x05\x12\x17\n\x0fvoltage_phase_A\x18\x11 \x01(\x05\x12\x17\n\x0fvoltage_phase_B\x18\x12 \x01(\x05\x12\x17\n\x0fvoltage_phase_C\x18\x13 \x01(\x05\x12\x17\n\x0f\x63urrent_phase_A\x18\x14 \x01(\x05\x12\x17\n\x0f\x63urrent_phase_B\x18\x15 \x01(\x05\x12\x17\n\x0f\x63urrent_phase_C\x18\x16 \x01(\x05\x12\x1c\n\x14power_factor_phase_A\x18\x17 \x01(\x05\x12\x1c\n\x14power_factor_phase_B\x18\x18 \x01(\x05\x12\x1c\n\x14power_factor_phase_C\x18\x19 \x01(\x05\"i\n\x04RpMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x11\n\tsignature\x18\x02 \x01(\x05\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\x05\x12\x11\n\tpv_number\x18\x04 \x01(\x05\x12\x13\n\x0blink_status\x18\x05 \x01(\x05\"\xb0\x01\n\x05RSDMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\x05\x12\x0f\n\x07voltage\x18\x03 \x01(\x05\x12\r\n\x05power\x18\x04 \x01(\x05\x12\x13\n\x0btemperature\x18\x05 \x01(\x05\x12\x16\n\x0ewarning_number\x18\x06 \x01(\x05\x12\x14\n\x0c\x63rc_checksum\x18\x07 \x01(\x05\x12\x13\n\x0blink_status\x18\x08 \x01(\x05\"\xbf\x02\n\x05SGSMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\x05\x12\x0f\n\x07voltage\x18\x03 \x01(\x05\x12\x11\n\tfrequency\x18\x04 \x01(\x05\x12\x14\n\x0c\x61\x63tive_power\x18\x05 \x01(\x05\x12\x16\n\x0ereactive_power\x18\x06 \x01(\x05\x12\x0f\n\x07\x63urrent\x18\x07 \x01(\x05\x12\x14\n\x0cpower_factor\x18\x08 \x01(\x05\x12\x13\n\x0btemperature\x18\t \x01(\x05\x12\x16\n\x0ewarning_number\x18\n \x01(\x05\x12\x14\n\x0c\x63rc_checksum\x18\x0b \x01(\x05\x12\x13\n\x0blink_status\x18\x0c \x01(\x05\x12\x13\n\x0bpower_limit\x18\r \x01(\x05\x12\x1f\n\x17modulation_index_signal\x18\x14 \x01(\x05\"\xe9\x03\n\x05TGSMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\x05\x12\x17\n\x0fvoltage_phase_A\x18\x03 \x01(\x05\x12\x17\n\x0fvoltage_phase_B\x18\x04 \x01(\x05\x12\x17\n\x0fvoltage_phase_C\x18\x05 \x01(\x05\x12\x17\n\x0fvoltage_line_AB\x18\x06 \x01(\x05\x12\x17\n\x0fvoltage_line_BC\x18\x07 \x01(\x05\x12\x17\n\x0fvoltage_line_CA\x18\x08 \x01(\x05\x12\x11\n\tfrequency\x18\t \x01(\x05\x12\x14\n\x0c\x61\x63tive_power\x18\n \x01(\x05\x12\x16\n\x0ereactive_power\x18\x0b \x01(\x05\x12\x17\n\x0f\x63urrent_phase_A\x18\x0c \x01(\x05\x12\x17\n\x0f\x63urrent_phase_B\x18\r \x01(\x05\x12\x17\n\x0f\x63urrent_phase_C\x18\x0e \x01(\x05\x12\x14\n\x0cpower_factor\x18\x0f \x01(\x05\x12\x13\n\x0btemperature\x18\x10 \x01(\x05\x12\x16\n\x0ewarning_number\x18\x11 \x01(\x05\x12\x14\n\x0c\x63rc_checksum\x18\x12 \x01(\x05\x12\x13\n\x0blink_status\x18\x13 \x01(\x05\x12\x1f\n\x17modulation_index_signal\x18\x14 \x01(\x05\"\xa3\x01\n\x04PvMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x13\n\x0bport_number\x18\x02 \x01(\x05\x12\x0f\n\x07voltage\x18\x03 \x01(\x05\x12\x0f\n\x07\x63urrent\x18\x04 \x01(\x05\x12\r\n\x05power\x18\x05 \x01(\x05\x12\x14\n\x0c\x65nergy_total\x18\x06 \x01(\x05\x12\x14\n\x0c\x65nergy_daily\x18\x07 \x01(\x05\x12\x12\n\nerror_code\x18\x08 \x01(\x05\"\xd7\x02\n\x11RealDataNewReqDTO\x12\x1c\n\x14\x64\x65vice_serial_number\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x05\x12\x14\n\x0c\x61\x63tive_power\x18\x03 \x01(\x05\x12\x18\n\x10\x63umulative_power\x18\x04 \x01(\x05\x12\x18\n\x10\x66irmware_version\x18\x05 \x01(\x05\x12\x1c\n\nmeter_data\x18\x06 \x03(\x0b\x32\x08.MeterMO\x12\x16\n\x07rp_data\x18\x07 \x03(\x0b\x32\x05.RpMO\x12\x18\n\x08rsd_data\x18\x08 \x03(\x0b\x32\x06.RSDMO\x12\x18\n\x08sgs_data\x18\t \x03(\x0b\x32\x06.SGSMO\x12\x18\n\x08tgs_data\x18\n \x03(\x0b\x32\x06.TGSMO\x12\x16\n\x07pv_data\x18\x0b \x03(\x0b\x32\x05.PvMO\x12\x11\n\tdtu_power\x18\x0c \x01(\x04\x12\x18\n\x10\x64tu_daily_energy\x18\r \x01(\x04\"u\n\x11RealDataNewResDTO\x12\x14\n\x0ctime_ymd_hms\x18\x01 \x01(\t\x12\x18\n\x10\x63umulative_power\x18\x02 \x01(\x05\x12\x12\n\nerror_code\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x12\x0c\n\x04time\x18\x05 \x01(\x05\x62\x06proto3')
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11RealDataNew.proto\"\x9b\x05\n\x07MeterMO\x12\x13\n\x0b\x64\x65vice_type\x18\x01 \x01(\x05\x12\x15\n\rserial_number\x18\x02 \x01(\x03\x12\x19\n\x11phase_total_power\x18\x03 \x01(\x05\x12\x15\n\rphase_A_power\x18\x04 \x01(\x05\x12\x15\n\rphase_B_power\x18\x05 \x01(\x05\x12\x15\n\rphase_C_power\x18\x06 \x01(\x05\x12\x1a\n\x12power_factor_total\x18\x07 \x01(\x05\x12\x1a\n\x12\x65nergy_total_power\x18\x08 \x01(\x05\x12\x16\n\x0e\x65nergy_phase_A\x18\t \x01(\x05\x12\x16\n\x0e\x65nergy_phase_B\x18\n \x01(\x05\x12\x16\n\x0e\x65nergy_phase_C\x18\x0b \x01(\x05\x12\x1d\n\x15\x65nergy_total_consumed\x18\x0c \x01(\x05\x12\x1f\n\x17\x65nergy_phase_A_consumed\x18\r \x01(\x05\x12\x1f\n\x17\x65nergy_phase_B_consumed\x18\x0e \x01(\x05\x12\x1f\n\x17\x65nergy_phase_C_consumed\x18\x0f \x01(\x05\x12\x12\n\nfault_code\x18\x10 \x01(\x05\x12\x17\n\x0fvoltage_phase_A\x18\x11 \x01(\x05\x12\x17\n\x0fvoltage_phase_B\x18\x12 \x01(\x05\x12\x17\n\x0fvoltage_phase_C\x18\x13 \x01(\x05\x12\x17\n\x0f\x63urrent_phase_A\x18\x14 \x01(\x05\x12\x17\n\x0f\x63urrent_phase_B\x18\x15 \x01(\x05\x12\x17\n\x0f\x63urrent_phase_C\x18\x16 \x01(\x05\x12\x1c\n\x14power_factor_phase_A\x18\x17 \x01(\x05\x12\x1c\n\x14power_factor_phase_B\x18\x18 \x01(\x05\x12\x1c\n\x14power_factor_phase_C\x18\x19 \x01(\x05\"i\n\x04RpMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x11\n\tsignature\x18\x02 \x01(\x05\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\x05\x12\x11\n\tpv_number\x18\x04 \x01(\x05\x12\x13\n\x0blink_status\x18\x05 \x01(\x05\"\xb0\x01\n\x05RSDMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\x05\x12\x0f\n\x07voltage\x18\x03 \x01(\x05\x12\r\n\x05power\x18\x04 \x01(\x05\x12\x13\n\x0btemperature\x18\x05 \x01(\x05\x12\x16\n\x0ewarning_number\x18\x06 \x01(\x05\x12\x14\n\x0c\x63rc_checksum\x18\x07 \x01(\x05\x12\x13\n\x0blink_status\x18\x08 \x01(\x05\"\xbf\x02\n\x05SGSMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\x05\x12\x0f\n\x07voltage\x18\x03 \x01(\x05\x12\x11\n\tfrequency\x18\x04 \x01(\x05\x12\x14\n\x0c\x61\x63tive_power\x18\x05 \x01(\x05\x12\x16\n\x0ereactive_power\x18\x06 \x01(\x05\x12\x0f\n\x07\x63urrent\x18\x07 \x01(\x05\x12\x14\n\x0cpower_factor\x18\x08 \x01(\x05\x12\x13\n\x0btemperature\x18\t \x01(\x05\x12\x16\n\x0ewarning_number\x18\n \x01(\x05\x12\x14\n\x0c\x63rc_checksum\x18\x0b \x01(\x05\x12\x13\n\x0blink_status\x18\x0c \x01(\x05\x12\x13\n\x0bpower_limit\x18\r \x01(\x05\x12\x1f\n\x17modulation_index_signal\x18\x14 \x01(\x05\"\xe9\x03\n\x05TGSMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\x05\x12\x17\n\x0fvoltage_phase_A\x18\x03 \x01(\x05\x12\x17\n\x0fvoltage_phase_B\x18\x04 \x01(\x05\x12\x17\n\x0fvoltage_phase_C\x18\x05 \x01(\x05\x12\x17\n\x0fvoltage_line_AB\x18\x06 \x01(\x05\x12\x17\n\x0fvoltage_line_BC\x18\x07 \x01(\x05\x12\x17\n\x0fvoltage_line_CA\x18\x08 \x01(\x05\x12\x11\n\tfrequency\x18\t \x01(\x05\x12\x14\n\x0c\x61\x63tive_power\x18\n \x01(\x05\x12\x16\n\x0ereactive_power\x18\x0b \x01(\x05\x12\x17\n\x0f\x63urrent_phase_A\x18\x0c \x01(\x05\x12\x17\n\x0f\x63urrent_phase_B\x18\r \x01(\x05\x12\x17\n\x0f\x63urrent_phase_C\x18\x0e \x01(\x05\x12\x14\n\x0cpower_factor\x18\x0f \x01(\x05\x12\x13\n\x0btemperature\x18\x10 \x01(\x05\x12\x16\n\x0ewarning_number\x18\x11 \x01(\x05\x12\x14\n\x0c\x63rc_checksum\x18\x12 \x01(\x05\x12\x13\n\x0blink_status\x18\x13 \x01(\x05\x12\x1f\n\x17modulation_index_signal\x18\x14 \x01(\x05\"\xa3\x01\n\x04PvMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x13\n\x0bport_number\x18\x02 \x01(\x05\x12\x0f\n\x07voltage\x18\x03 \x01(\x05\x12\x0f\n\x07\x63urrent\x18\x04 \x01(\x05\x12\r\n\x05power\x18\x05 \x01(\x05\x12\x14\n\x0c\x65nergy_total\x18\x06 \x01(\x05\x12\x14\n\x0c\x65nergy_daily\x18\x07 \x01(\x05\x12\x12\n\nerror_code\x18\x08 \x01(\x05\"\xc9\x02\n\x11RealDataNewReqDTO\x12\x1c\n\x14\x64\x65vice_serial_number\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x05\x12\x14\n\x0c\x61\x63tive_power\x18\x03 \x01(\x05\x12\n\n\x02\x63p\x18\x04 \x01(\x05\x12\x18\n\x10\x66irmware_version\x18\x05 \x01(\x05\x12\x1c\n\nmeter_data\x18\x06 \x03(\x0b\x32\x08.MeterMO\x12\x16\n\x07rp_data\x18\x07 \x03(\x0b\x32\x05.RpMO\x12\x18\n\x08rsd_data\x18\x08 \x03(\x0b\x32\x06.RSDMO\x12\x18\n\x08sgs_data\x18\t \x03(\x0b\x32\x06.SGSMO\x12\x18\n\x08tgs_data\x18\n \x03(\x0b\x32\x06.TGSMO\x12\x16\n\x07pv_data\x18\x0b \x03(\x0b\x32\x05.PvMO\x12\x11\n\tdtu_power\x18\x0c \x01(\x04\x12\x18\n\x10\x64tu_daily_energy\x18\r \x01(\x04\"g\n\x11RealDataNewResDTO\x12\x14\n\x0ctime_ymd_hms\x18\x01 \x01(\t\x12\n\n\x02\x63p\x18\x02 \x01(\x05\x12\x12\n\nerror_code\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x12\x0c\n\x04time\x18\x05 \x01(\x05\x62\x06proto3')
|
||||
|
||||
_globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
@ -34,7 +34,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
_globals['_PVMO']._serialized_start=1792
|
||||
_globals['_PVMO']._serialized_end=1955
|
||||
_globals['_REALDATANEWREQDTO']._serialized_start=1958
|
||||
_globals['_REALDATANEWREQDTO']._serialized_end=2301
|
||||
_globals['_REALDATANEWRESDTO']._serialized_start=2303
|
||||
_globals['_REALDATANEWRESDTO']._serialized_end=2420
|
||||
_globals['_REALDATANEWREQDTO']._serialized_end=2287
|
||||
_globals['_REALDATANEWRESDTO']._serialized_start=2289
|
||||
_globals['_REALDATANEWRESDTO']._serialized_end=2392
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
for file in $(ls *.proto)
|
||||
do
|
||||
protoc --pyi_out=. $file
|
||||
#protoc --pyi_out=. $file
|
||||
protoc --python_out=. $file
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user