summaryrefslogtreecommitdiffstats
path: root/src/plugins/canbus/tinycan
diff options
context:
space:
mode:
authorDenis Shienkov <denis.shienkov@gmail.com>2015-09-06 13:06:31 +0300
committerDenis Shienkov <denis.shienkov@gmail.com>2015-09-07 17:03:05 +0000
commit8ac3bbbbad1a806d4e64a73bc5f5d49937e67868 (patch)
tree2643f2b6030e09b26ef32c240a1d116ba2a7f2b4 /src/plugins/canbus/tinycan
parent7cb0710a4b3ac452e9aab37f12490e23afa37f90 (diff)
Update the symbols header for the TinyCan plugin
We need to update the header, according to the latest API version (v 401): http://www.mhs-elektronik.de/index.php?module=download&action=list Change-Id: I7a75d17d345e570819667865f260aa0938ed6fd0 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Diffstat (limited to 'src/plugins/canbus/tinycan')
-rw-r--r--src/plugins/canbus/tinycan/tinycan_symbols_p.h50
-rw-r--r--src/plugins/canbus/tinycan/tinycanbackend.cpp4
2 files changed, 35 insertions, 19 deletions
diff --git a/src/plugins/canbus/tinycan/tinycan_symbols_p.h b/src/plugins/canbus/tinycan/tinycan_symbols_p.h
index 02b6e23..5ad149c 100644
--- a/src/plugins/canbus/tinycan/tinycan_symbols_p.h
+++ b/src/plugins/canbus/tinycan/tinycan_symbols_p.h
@@ -71,6 +71,8 @@ extern "C"
#define DRV_CALLBACK_TYPE
#endif
+#define INDEX_INVALID 0xFFFFFFFF
+
#define INDEX_FIFO_PUFFER_MASK 0x0000FFFF
#define INDEX_SOFT_FLAG 0x02000000
#define INDEX_RXD_TXT_FLAG 0x01000000
@@ -86,24 +88,29 @@ extern "C"
#define MsgRTR Flags.Flag.RTR
#define MsgEFF Flags.Flag.EFF
#define MsgTxD Flags.Flag.TxD
+#define MsgErr Flags.Flag.Error
+#define MsgSource Flags.Flag.Source
#define MsgData Data.Bytes
struct TCanFlagsBits
{
- unsigned Len:4; // Dlc
- unsigned TxD:1; // TxD -> 1 = Tx CAN Message, 0 = Rx CAN Message
- unsigned Res:1; // Reserved
- unsigned RTR:1; // remote transmit request bit
- unsigned EFF:1; // extended frame bit
- unsigned Res2:8;
+ unsigned Len:4; // DLC -> data length 0 - 8 byte
+ unsigned TxD:1; // TxD -> 1 = Tx CAN Message, 0 = Rx CAN Message
+ unsigned Error:1; // Error -> 1 = bus CAN error message
+ unsigned RTR:1; // Remote Transmission Request bit -> If message RTR marks
+ unsigned EFF:1; // Extended Frame Format bit -> 1 = 29 Bit Id's, 0 = 11 Bit Id's
+ unsigned Source:8; // Source of the message (Device)
};
+#pragma pack(push, 1)
union TCanFlags
{
struct TCanFlagsBits Flag;
quint32 Long;
};
+#pragma pack(pop)
+#pragma pack(push, 1)
union TCanData
{
char Chars[8];
@@ -111,13 +118,17 @@ union TCanData
quint16 Words[4];
quint32 Longs[2];
};
+#pragma pack(pop)
+#pragma pack(push, 1)
struct TTime
{
quint32 Sec;
quint32 USec;
};
+#pragma pack(pop)
+#pragma pack(push, 1)
struct TCanMsg
{
quint32 Id;
@@ -125,9 +136,11 @@ struct TCanMsg
union TCanData Data;
struct TTime Time;
};
+#pragma pack(pop)
// CAN Message Filter Type
#define FilFlags Flags.Long
+#define FilRTR Flags.Flag.RTR
#define FilEFF Flags.Flag.EFF
#define FilMode Flags.Flag.Mode
#define FilIdMode Flags.Flag.IdMode
@@ -136,33 +149,33 @@ struct TCanMsg
struct TMsgFilterFlagsBits
{
// 1. byte
- unsigned Len:4; // dlc
- unsigned Res:2; // reserved
- unsigned RTR:1; // remote transmit request bit
- unsigned EFF:1; // extended frame bit
+ unsigned Len:4; // DLC
+ unsigned Res:2; // Reserved
+ unsigned RTR:1; // Remote Transmit Request bit
+ unsigned EFF:1; // Extended Frame Format bit
// 2. byte
- unsigned IdMode:2; // 0 = Mask & Code
- // 1 = start & stop
- // 2 = single id
+ unsigned IdMode:2; // 0 = Mask & Code; 1 = Start & Sstop; 2 = Single Id
unsigned DLCCheck:1;
unsigned DataCheck:1;
unsigned Res1:4;
// 3. byte
unsigned Res2:8;
// 4. byte
- unsigned Type:4; // 0 = single buffer
+ unsigned Type:4; // 0 = Single buffer
unsigned Res3:2;
- unsigned Mode:1; // 0 = Delete message
- // 1 = Don't delete message
- unsigned Enable:1;
+ unsigned Mode:1; // 0 = Delete message; 1 = Don't delete message
+ unsigned Enable:1; // 0 = Close filter; 1 = Release filter
};
+#pragma pack(push, 1)
union TMsgFilterFlags
{
struct TMsgFilterFlagsBits Flag;
quint32 Long;
};
+#pragma pack(pop)
+#pragma pack(push, 1)
struct TMsgFilter
{
quint32 Maske;
@@ -170,6 +183,7 @@ struct TMsgFilter
union TMsgFilterFlags Flags;
union TCanData Data;
};
+#pragma pack(pop)
// CAN speed
#define CAN_10K_BIT 10 // 10 kBit/s
@@ -241,12 +255,14 @@ struct TMsgFilter
#define EVENT_DISABLE_RX_MESSAGES 0x0800
#define EVENT_DISABLE_ALL 0xFF00
+#pragma pack(push, 1)
struct TDeviceStatus
{
quint32 DrvStatus;
quint8 CanStatus;
quint8 FifoStatus;
};
+#pragma pack(pop)
typedef void (DRV_CALLBACK_TYPE *CanPnPEventCallback)(
quint32 index,
diff --git a/src/plugins/canbus/tinycan/tinycanbackend.cpp b/src/plugins/canbus/tinycan/tinycanbackend.cpp
index e22d35b..e882a5e 100644
--- a/src/plugins/canbus/tinycan/tinycanbackend.cpp
+++ b/src/plugins/canbus/tinycan/tinycanbackend.cpp
@@ -112,7 +112,7 @@ static void DRV_CALLBACK_TYPE canRxEventCallback(quint32 index, TCanMsg *frame,
TinyCanBackendPrivate::TinyCanBackendPrivate(TinyCanBackend *q)
: q_ptr(q)
, isOpen(false)
- , channelIndex(-1)
+ , channelIndex(INDEX_INVALID)
{
startupDriver();
@@ -255,7 +255,7 @@ static int channelIndexFromName(const QString &interfaceName)
else if (interfaceName == QStringLiteral("channelb"))
return INDEX_CAN_KANAL_B;
else
- return -1;
+ return INDEX_INVALID;
}
void TinyCanBackendPrivate::setupChannel(const QString &interfaceName)