/// <summary> /// Get one CAN message from the receive queue, RKSCANOpen(...) must have /// been called before. Returns TRUE on success. /// </summary> /// <returns></returns> public virtual CanMessage RKSCANRx() { NativeCanEntryPoints.can_msg_t pMsg = new NativeCanEntryPoints.can_msg_t(); var result = Procedure <NativeCanEntryPoints.RKSCANRx>(NativeCanEntryPoints._RKSCANRx)(ref pMsg); if (!result) { throw new Exception(); } var canMessage = new CanMessage { byType = pMsg.byType, dwTimeStamp = pMsg.dwTimeStamp, byError = pMsg.uFrm.sErr.byError, dwID = pMsg.uFrm.sData.dwID, byDLC = pMsg.uFrm.sData.byDLC, abyData = new byte[] { pMsg.uFrm.sData.abyData0, pMsg.uFrm.sData.abyData1, pMsg.uFrm.sData.abyData2, pMsg.uFrm.sData.abyData3, pMsg.uFrm.sData.abyData4, pMsg.uFrm.sData.abyData5, pMsg.uFrm.sData.abyData6, pMsg.uFrm.sData.abyData7, } }; return(canMessage); }
/// <summary> /// Add one CAN message to the send queue, RKSCANOpen(...) must have /// been called before. Returns TRUE on success. /// </summary> /// <returns></returns> public virtual bool RKSCANTx(CanMessage canMessage) { NativeCanEntryPoints.can_msg_t pMsg = new NativeCanEntryPoints.can_msg_t(); pMsg.byType = canMessage.byType; pMsg.dwTimeStamp = canMessage.dwTimeStamp; pMsg.uFrm.sData.dwID = canMessage.dwID; pMsg.uFrm.sData.byDLC = canMessage.byDLC; pMsg.uFrm.sData.abyData0 = canMessage.abyData[0]; pMsg.uFrm.sData.abyData1 = canMessage.abyData[1]; pMsg.uFrm.sData.abyData2 = canMessage.abyData[2]; pMsg.uFrm.sData.abyData3 = canMessage.abyData[3]; pMsg.uFrm.sData.abyData4 = canMessage.abyData[4]; pMsg.uFrm.sData.abyData5 = canMessage.abyData[5]; pMsg.uFrm.sData.abyData6 = canMessage.abyData[6]; pMsg.uFrm.sData.abyData7 = canMessage.abyData[7]; return(Procedure <NativeCanEntryPoints.RKSCANTx>(NativeCanEntryPoints._RKSCANTx)(ref pMsg)); }