summaryrefslogtreecommitdiff
path: root/source/LcmInterface.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/LcmInterface.h')
-rw-r--r--source/LcmInterface.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/LcmInterface.h b/source/LcmInterface.h
index 9525f02..021559e 100644
--- a/source/LcmInterface.h
+++ b/source/LcmInterface.h
@@ -24,6 +24,7 @@ typedef ErrorCode_e(*CommunicationSetFamily_t)(Communication_t *Communication_p,
typedef ErrorCode_e(*CommunicationSend_t)(Communication_t *Communication_p, void *InputData_p);
typedef ErrorCode_e(*CommunicationSetProtocolTimeouts_t)(Communication_t *Communication_p, void *TimeoutData_p);
typedef ErrorCode_e(*CommunicationGetProtocolTimeouts_t)(Communication_t *Communication_p, void *TimeoutData_p);
+typedef char*(*CommunicationGetVersion_t)(Communication_t *Communication_p);
typedef ErrorCode_e(*CommunicationCancelReceiver_t)(Communication_t *Communication_p, uint8 PacketsBeforeTransferStop);
typedef ErrorCode_e(*R15CommandSend_t)(Communication_t *Communication_p, CommandData_t *CmdData_p);
@@ -36,6 +37,7 @@ typedef TL_BulkSessionState_t (*R15BulkGetStatusSession_t)(const Communication_t
typedef uint32(*R15BulkDestroyVector_t)(const Communication_t *const Communication_p, TL_BulkVectorList_t *BulkVector_p, boolean ReqReleaseBuffer);
typedef uint32(*R15BulkOpenSession_t)(const Communication_t *const Communication_p, const uint16 SessionId, const TL_SessionMode_t Mode, uint32 Length);
typedef void (*R15BulkSetCallbacks_t)(Communication_t *Communication_p, void *BulkCommandCallback_p, void *BulkDataCallback_p, void *BulkDataEndOfDump_p);
+typedef void (*R15BulkBuffersRelease_t)(Communication_t *Communication_p, void *BulkBuffersRelease_p);
typedef ErrorCode_e(*A2CommandSend_t)(Communication_t *Communication_p, A2_CommandData_t *CmdData_p);
typedef void (*A2SpeedflashStart_t)(Communication_t *Communication_p);
@@ -50,6 +52,7 @@ typedef struct {
CommunicationSend_t Send_Fn;
CommunicationSetProtocolTimeouts_t SetProtocolTimeouts_Fn;
CommunicationGetProtocolTimeouts_t GetProtocolTimeouts_Fn;
+ CommunicationGetVersion_t GetVersion_Fn;
CommunicationCancelReceiver_t CancelReceiver_Fn;
} CommunicationInterface_t;
@@ -66,6 +69,7 @@ typedef struct {
R15BulkDestroyVector_t DestroyVector_Fn;
R15BulkOpenSession_t OpenSession_Fn;
R15BulkSetCallbacks_t SetCallbacks_Fn;
+ R15BulkBuffersRelease_t SetBuffersRelease_Fn;
} R15BulkInterface_t;
typedef struct {
@@ -75,6 +79,13 @@ typedef struct {
A2SpeedflashWriteBlock_t SpeedflashWriteBlock_Fn;
} A2CommandInterface_t;
+
+typedef enum {
+ UNKNOWN_LCM = 0,
+ LDR_LCM = 1,
+ PC_LCM = 2
+} LCM_t;
+
class LcmInterface
{
public:
@@ -87,6 +98,7 @@ public:
ErrorCode_e CommunicationSetFamily(Family_t family, Do_CEH_Call_t CEHCallback);
ErrorCode_e CommunicationSetProtocolTimeouts(void *TimeoutData_p);
ErrorCode_e CommunicationGetProtocolTimeouts(void *TimeoutData_p);
+ ErrorCode_e CommunicationCheckVersion(char *LCMVersion_p, LCM_t LCM_type);
ErrorCode_e CommunicationShutdown();
ErrorCode_e CommunicationCancelReceiver(uint8 PacketsBeforeReceiverStop);
@@ -94,6 +106,7 @@ public:
ErrorCode_e CommandResetSessionCounters();
void BulkSetCallbacks(void *BulkCommandCallback_p, void *BulkDataCallback_p, void *BulkDataEndOfDump_p);
+ void BulkBuffersRelease(void *BulkBufferRelease_p);
uint32 BulkOpenSession(const uint16 SessionId, const TL_SessionMode_t Mode, uint32 Length);
TL_BulkVectorList_t *BulkCreateVector(const uint32 BulkVector, uint32 Length, const uint32 BuffSize, TL_BulkVectorList_t *CreatedBulkVector_p);
ErrorCode_e BulkStartSession(TL_BulkVectorList_t *BulkVector_p, const uint64 Offset);