IEVController.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*******************************************************************************
  2. * The MIT License (MIT)
  3. *
  4. * Copyright 2017 Dr.-Ing. Marc Mültin (V2G Clarity)
  5. *
  6. * Permission is hereby granted, free of charge, to any person obtaining a copy
  7. * of this software and associated documentation files (the "Software"), to deal
  8. * in the Software without restriction, including without limitation the rights
  9. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  10. * copies of the Software, and to permit persons to whom the Software is
  11. * furnished to do so, subject to the following conditions:
  12. *
  13. * The above copyright notice and this permission notice shall be included in
  14. * all copies or substantial portions of the Software.
  15. *
  16. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  17. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  19. * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  20. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  21. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  22. * THE SOFTWARE.
  23. *******************************************************************************/
  24. package com.v2gclarity.risev2g.evcc.evController;
  25. import com.v2gclarity.risev2g.shared.enumerations.CPStates;
  26. import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingProfileType;
  27. import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType;
  28. import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionListType;
  29. import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType;
  30. public interface IEVController {
  31. /**
  32. * Returns the user-chosen payment method, either external identification means (EIM) such as an
  33. * RFID card or via Plug-and-Charge (PnC)
  34. * @return The payment option Contract or ExternalPayment
  35. */
  36. public PaymentOptionType getPaymentOption(PaymentOptionListType paymentOptionsOffered);
  37. /**
  38. * Returns the EnergyTransferMode chosen by the driver
  39. * @return The chosen EnergyTransferMode
  40. */
  41. public EnergyTransferModeType getRequestedEnergyTransferMode();
  42. /**
  43. * Returns the specific charging profile for the current charging session
  44. * (i.e. maximum amount of power drawn over time)
  45. * @return The charging profile with a list of profile entries
  46. */
  47. public ChargingProfileType getChargingProfile();
  48. /**
  49. * Returns the unique identifier within a charging session for a SAScheduleTuple element
  50. * contained in the list of SASchedules delivered by the EVSE. An SAScheduleTupleID remains a
  51. * unique identifier for one schedule throughout a charging session.
  52. * @return The unique ID given as a short value
  53. */
  54. public short getChosenSAScheduleTupleID();
  55. /**
  56. * Signals a CP state according to IEC 61851-1 (State A, B, C or D)
  57. * @param state
  58. * @return True, if the state signaling was successful, false otherwise
  59. */
  60. public boolean setCPState(CPStates state);
  61. /**
  62. * Returns the current CP state according IEC 61851-1 (State A, B, C or D)
  63. * @return The respective CP state
  64. */
  65. public CPStates getCPState();
  66. /**
  67. * Provides information on whether the charging loop should be active to charge the EV's battery, or not
  68. *
  69. * @return True, if charging process should be continued, false otherwise
  70. */
  71. public boolean isChargingLoopActive();
  72. }