added PreCharge simulation

This commit is contained in:
uhi22 2022-12-10 17:08:51 +01:00
parent 9b4b825326
commit cdbd639c94
2 changed files with 14 additions and 1 deletions

View file

@ -118,6 +118,7 @@ class fsmPev():
# We just use the initial request message from the Ioniq. It contains one entry: DIN.
self.addToTrace("Sending the initial SupportedApplicationProtocolReq")
self.Tcp.transmit(addV2GTPHeader(exiHexToByteArray(exiHexDemoSupportedApplicationProtocolRequestIoniq)))
self.hardwareInterface.resetSimulation()
self.enterState(stateWaitForSupportedApplicationProtocolResponse)
def stateFunctionWaitForSupportedApplicationProtocolResponse(self):
@ -313,6 +314,7 @@ class fsmPev():
self.enterState(stateSequenceTimeout)
def stateFunctionWaitForPreChargeResponse(self):
self.hardwareInterface.simulatePreCharge()
if (self.DelayCycles>0):
self.DelayCycles-=1
return
@ -325,6 +327,9 @@ class fsmPev():
if (strConverterResult.find("PreChargeRes")>0):
# todo: check the request content, and fill response parameters
self.addToTrace("PreCharge aknowledge received.")
s = "U_Inlet " + str(self.hardwareInterface.getInletVoltage()) + "V, "
s= s + "U_Accu " + str(self.hardwareInterface.getAccuVoltage()) + "V"
self.addToTrace(s)
if (abs(self.hardwareInterface.getInletVoltage()-self.hardwareInterface.getAccuVoltage()) < PARAM_U_DELTA_MAX_FOR_END_OF_PRECHARGE):
self.addToTrace("Difference between accu voltage and inlet voltage is small. Sending PowerDeliveryReq.")
self.hardwareInterface.setPowerRelayOn()

View file

@ -52,7 +52,7 @@ class hardwareInterface():
def getInletVoltage(self):
#todo: get real measured voltage from the inlet
self.inletVoltage = 230
self.inletVoltage = self.simulatedInletVoltage
return self.inletVoltage
def getAccuVoltage(self):
@ -88,6 +88,14 @@ class hardwareInterface():
self.inletVoltage = 0.0 # volts
self.findSerialPort()
def resetSimulation(self):
self.simulatedInletVoltage = 0.0 # volts
self.simulatedSoc = 20.0 # percent
def simulatePreCharge(self):
if (self.simulatedInletVoltage<230):
self.simulatedInletVoltage = self.simulatedInletVoltage + 1.0 # simulate increasing voltage during PreCharge
def close(self):
if (self.isInterfaceOk):
self.ser.close()