This makes the instantiation much cleaner, and also makes the
responsibility of the controller more clear.
Now we pass the communication session to the controller right
after instantiation inside the ImplementationFactory
This way implementation classes for EV/SE side controllers could be
replaced without touching the mainline code. I believe this will
simplify forking and extending the project.
- The necessary change from State C to State B during a renegotiation in DC charging is now correctly implemented
- Added the EV setting "voltage.accuracy" to allow for a percentage of deviation from the target current in PreCharge
Additionally, the MessageHandler was instantiated each time a new communication session was initiated by the EVCC.
Now, MessageHandler is initialized only once at startup of RISE V2G, saving a few seconds processing time on a slow embedded controller.
Credit goes to Advantics for pointing this out! Thanks. :)
Further changes: minor editorial edits and an additional logging message in the ConnectionHandler stating the length of the V2GTP payload as stated by the V2GTP header (helps for debugging purposes)
- Changed package name from org.v2gclarity.risev2g to com.v2gclarity.risev2g
- Changed pom.xml and bin.xml files for creating deployable .jar files with Maven
- Added RISE-V2G-Parent project folder for Maven to facilitate an easy build process that has now be reworked in this version
- Removed some unused imports
- Bugfix in MessageHandler's getJaxbElement when creating the JAXBElement for SalesTariff. Corrected the namespace to create the QName object from MsgBody to MsgDataTypes
- Removed the libs folder in RISE-V2G-SHARED as it is not needed with Maven
- Added copyNewCertsAndKeys.bat and generateCertificates.bat to RISE-V2G-Certificates in order to port the already existing Unix shell scripts to Windows systems
- Corrected an error in V2GCommunicationSessionHandlerEVCC.java which ensures that the SDP procedure continues to work correctly even if there is a false SDP response coming from the SECC
- Changed the signature of the method generateDigest() (in SecurityUtils.java) to have more logging information about the ID of the element for which the digest is generated
- Made sure that the PreCharge timeout and CableCheck timeout are triggered exactly (there was a possible delay of 2s)
- Changed logging level of TCP server and client from debug to info
- Added debugging logging functionality with new EVCC and SECC property HexAndBase64RepresentationOfMessages which will log the hexadecimal and Base64 encoding of each message being sent
- Small change in log4j2.xml files enabling highlighting of logging level (you need to have ANSI Console installed in Eclipse IDE for this change to take effect)
- Shifted the process of reading the MO Sub-CA 2 private key from the keystore from the method getMOSubCA2PrivateKey to the constructor of DummyBackendInterface.java in order to avoid timeouts when processing the ChargeParameterDiscoveryReq on embedded devices
- Updated the EXIficient_V2G_CI_MsgDef.java (serialized version of the XSD grammar) as there was an bug before that caused an incomplete deserialization of an EXI byte stream to an XML message
- Updated log4j from 2.1 to 2.9