* move forward_at_cmd_resp into InfosG3P class - the variable is shared between the two connections of an inverter. One is for the TSUN cloud and the other for the device. * use inverter class to share values between the two protocol instances of a proxy - move forward_at_cmd_resp into class InverterG3P - store inverter ptr in Solarman_V5 instances - add inverter ptr to all constructurs of protocols - adapt doku and unit tests- - add integration tests for AT+ commands which check the forwarding from and to the TSUN cloud * adapt and improve the unit tests - fix node_id declaration, which always has a / at the end. See config grammar for this rule - set global var test to default after test run
25 lines
933 B
Python
25 lines
933 B
Python
from asyncio import StreamReader, StreamWriter
|
|
|
|
from inverter_base import InverterBase
|
|
from gen3plus.solarman_v5 import SolarmanV5
|
|
from gen3plus.solarman_emu import SolarmanEmu
|
|
|
|
|
|
class InverterG3P(InverterBase):
|
|
def __init__(self, reader: StreamReader, writer: StreamWriter,
|
|
client_mode: bool = False):
|
|
# shared value between both inverter connections
|
|
self.forward_at_cmd_resp = False
|
|
'''Flag if response for the last at command must be send to the cloud.
|
|
|
|
False: send result only to the MQTT broker, cause the AT+ command
|
|
came from there
|
|
True: send response packet to the cloud, cause the AT+ command
|
|
came from the cloud'''
|
|
|
|
remote_prot = None
|
|
if client_mode:
|
|
remote_prot = SolarmanEmu
|
|
super().__init__(reader, writer, 'solarman',
|
|
SolarmanV5, client_mode, remote_prot)
|