#ifndef __OCPP16J_ENCODE_H__
#define __OCPP16J_ENCODE_H__
#include "msystem.h"
#include "ocpp16.h"

int ocpp16_encode_AuthorizeReq(uint8_t *stream, CidString37_t msgUUID, AuthorizeReq_t *req);

int ocpp16_encode_BootNotificationReq(uint8_t *stream, CidString37_t msgUUID, BootNotificationReq_t *req);

int ocpp16_encode_DataTransferData(uint8_t *stream, const char* name, DataTransferData_t *req);

int ocpp16_encode_DataTransferReq(uint8_t *stream, CidString37_t msgUUID, DataTransferReq_t *req);

int ocpp16_encode_DiagnosticsStatusNotificationReq(uint8_t *stream, CidString37_t msgUUID, DiagnosticsStatusNotificationReq_t *req);

int ocpp16_encode_FirmwareStatusNotificationReq(uint8_t *stream, CidString37_t msgUUID, FirmwareStatusNotificationReq_t *req);

int ocpp16_encode_HeartbeatReq(uint8_t *stream, CidString37_t msgUUID, HeartbeatReq_t *req);

int ocpp16_encode_MeterValuesReq(uint8_t *stream, CidString37_t msgUUID, MeterValuesReq_t *req);

int ocpp16_encode_StartTransactionReq(uint8_t *stream, CidString37_t msgUUID, StartTransactionReq_t *req);

int ocpp16_encode_StatusNotificationReq(uint8_t *stream, CidString37_t msgUUID, StatusNotificationReq_t *req);

int ocpp16_encode_StopTransactionReq(uint8_t *stream, CidString37_t msgUUID, StopTransactionReq_t *req);

//-----------------------------------------------------------------------------------------------------

int ocpp16_encode_ErrorResult(uint8_t *stream, CidString37_t msgUUID, ErrorCode_t errorCode, const char* errorDetails);

int ocpp16_encode_CancelReservationConf(uint8_t *stream, CidString37_t msgUUID, CancelReservationConf_t *conf);

int ocpp16_encode_ChangeAvailabilityConf(uint8_t *stream, CidString37_t msgUUID, ChangeAvailabilityConf_t *conf);

int ocpp16_encode_ChangeConfigurationConf(uint8_t *stream, CidString37_t msgUUID, ChangeConfigurationConf_t *conf);

int ocpp16_encode_ClearCacheConf(uint8_t *stream, CidString37_t msgUUID, ClearCacheConf_t *conf);

int ocpp16_encode_ClearChargingProfileConf(uint8_t *stream, CidString37_t msgUUID, ClearChargingProfileConf_t *conf);

int ocpp16_encode_DataTransferConf(uint8_t *stream, CidString37_t msgUUID, DataTransferConf_t *conf);

int ocpp16_encode_GetCompositeScheduleConf(uint8_t *stream, CidString37_t msgUUID, GetCompositeScheduleConf_t *conf);

int ocpp16_encode_GetConfigurationConf(uint8_t *stream, CidString37_t msgUUID, GetConfigurationConf_t *conf);

int ocpp16_encode_GetDiagnosticsConf(uint8_t *stream, CidString37_t msgUUID, GetDiagnosticsConf_t *conf);

int ocpp16_encode_GetLocalListVersionConf(uint8_t *stream, CidString37_t msgUUID, GetLocalListVersionConf_t *conf);

int ocpp16_encode_RemoteStartTransactionConf(uint8_t *stream, CidString37_t msgUUID, RemoteStartTransactionConf_t *conf);

int ocpp16_encode_RemoteStopTransactionConf(uint8_t *stream, CidString37_t msgUUID, RemoteStopTransactionConf_t *conf);

int ocpp16_encode_ReserveNowConf(uint8_t *stream, CidString37_t msgUUID, ReserveNowConf_t *conf);

int ocpp16_encode_ResetConf(uint8_t *stream, CidString37_t msgUUID, ResetConf_t *conf);

int ocpp16_encode_SendLocalListConf(uint8_t *stream, CidString37_t msgUUID, SendLocalListConf_t *conf);

int ocpp16_encode_SetChargingProfileConf(uint8_t *stream, CidString37_t msgUUID, SetChargingProfileConf_t *conf);

int ocpp16_encode_TriggerMessageConf(uint8_t *stream, CidString37_t msgUUID, TriggerMessageConf_t *conf);

int ocpp16_encode_UnlockConnectorConf(uint8_t *stream, CidString37_t msgUUID, UnlockConnectorConf_t *conf);

int ocpp16_encode_UpdateFirmwareConf(uint8_t *stream, CidString37_t msgUUID, UpdateFirmwareConf_t *conf);

#endif//__OCPP16J_ENCODE_H__

