Official support library for using mbed as a programmable coprocessor in the Innomatix DAP-III+ telematics platform

Revision:
0:b9e1003fbee7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/InnomatixCanAPI/inc/InnomatixCanAPI.h	Fri Apr 15 18:35:31 2016 +0000
@@ -0,0 +1,136 @@
+/*******************************************************************
+ *
+ *  File: InnomatixCanAPI.h
+ *
+ *  Description: Simple CAN API for Innomatix Coprocessor applications 
+ *
+ *  Copyright 2015 Innomatix, LLC., All Rights Reserved
+ *
+ *  THIS DOCUMENT AND ITS CONTENTS ARE INTELLECTUAL PROPERTY
+ *  OF INNOMATIX, LLC.  ANY DUPLICATION IN PART OR WHOLE
+ *  WITHOUT PRIOR WRITTEN CONSENT IS STRICTLY PROHIBITED.
+ *
+ *******************************************************************/
+
+#ifndef _INNOMATIX_CAN_API_H
+#define _INNOMATIX_CAN_API_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/*************************************************/
+
+typedef enum
+{
+    canSuccess,				// 0
+    canInvalidChannel,		// 1
+    canInvalidSpeed,		// 2
+    canInvalidIdentifier,	// 3
+    canInvalidLength,		// 4
+    canNoData,				// 5
+    canNotInitialized,		// 6
+    canGeneralError			// N
+}CanResults_e;
+
+typedef enum
+{
+    canChDAP3,	        // CAN 3 interface on the DAP connector or wiring harness
+    canChDAP4	        // CAN 4 interface on the DAP connector or wiring harness
+}CanChannel_e;
+static const char *CanChannelName[] = {"CanChDAP3", "CanChDAP4"};
+
+
+typedef enum
+{
+    canFormatStandard,     //	A standard, 11-bit identifier
+    canFormatExtended,     //	An extended, 29-bit identifier
+}CanFormat_e;
+
+typedef struct
+{
+    int TxMessageCount;
+    int RxMessageCount;
+
+	// Increments when the internal message receive buffer is full and another message is received
+    int OverflowCount;		
+}StatisticsStruct_t, *StatisticsStruct_p;
+  
+  
+typedef struct
+{
+    int Id;
+    int DataLen;
+	int Timestamp;
+    CanFormat_e Format;
+    unsigned char Data[ 8 ];
+}CanMessage_t, *CanMessage_p;  
+
+/**
+ * This function initializes the API and the designated CAN interface.  
+ * Return Values:
+ * 	    Success � the API was initialized and the channel is ready to use.
+ * 	    InvalidChannel � the specified channel is not supported
+ * 	    InvalidSpeed � the specified network speed is not supported
+ * 	    GeneralError � an unknown or unspecified error has occurred
+ *************************************************************************/ 
+CanResults_e CanInit( CanChannel_e Channel, int Speed ); 
+
+
+/**
+ * This function disables the designated CAN interface. 
+ *************************************************************************/ 
+void CanClose( CanChannel_e Channel );
+
+
+/**
+ * Allow the client to send a message on the CAN bus.  
+ * Return Values:
+ * 	    Success � the message was sent
+ * 	    InvalidChannel � the specified channel is not supported
+ * 	    InvalidIdentifier � the provided message id is not a valid for the specified format 
+ * 	    InvalidLength � more than 8 bytes of data were indicated
+ *  	GeneralError � an unknown or unspecified error has occurred
+ *************************************************************************/ 
+CanResults_e CanSend( CanChannel_e Channel, unsigned long Id, CanFormat_e Format, const unsigned char *Data, char DLen );
+
+
+/**
+ * Allow the client to get a message from the CAN bus.  
+ * Return Values:
+ * 	    Success � a message was retrieved, the parameters hold the message values.
+ * 	    InvalidChannel � the specified channel is not supported
+ * 	    NoData � no message is available on the requested channel
+ * 	    GeneralError � an unknown or unspecified error has occurred
+ *************************************************************************/ 
+CanResults_e CanReceive( CanChannel_e Channel, unsigned long *Timestamp, unsigned long *Id, CanFormat_e *Format, unsigned char *Data, char *DLen );
+
+
+/**
+ * Allow the client to retrieve statistics about the CAN interface.
+ * 
+ * Return Values:
+ * 	    Success � statistics were retrieved
+ * 	    InvalidChannel � the specified channel is not supported
+ *  	GeneralError � an unknown or unspecified error has occurred
+ *************************************************************************/ 
+CanResults_e CanStatistics( CanChannel_e Channel, StatisticsStruct_t *Stats );
+
+
+/**
+ * Flush the Rx buffer - all messages are discarded, Rx and Overflow stats are cleared
+ * 
+ * Return Values:
+ * 	    Success � statistics were retrieved
+ * 	    InvalidChannel � the specified channel is not supported
+ *  	GeneralError � an unknown or unspecified error has occurred
+ *************************************************************************/ 
+CanResults_e CanFlush( CanChannel_e Channel );
+
+
+/*************************************************/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _INNOMATIX_CAN_API_H */