/// <overloads>Requests a message from the device and returns the response</overloads> /// <summary> /// Request a message from device and returns the response. /// Throws exception on timeout. /// </summary> /// <param name="channelNum">Channel to send request on</param> /// <param name="messageID">Request to send</param> /// <param name="responseWaitTime">Time to wait for device success response</param> public ANT_Response requestMessageAndResponse(byte channelNum, ANT_ReferenceLibrary.RequestMessageID messageID, UInt32 responseWaitTime) { if (!initializedUSB) throw new ObjectDisposedException("ANTDevice object has been disposed"); ANTMessageItem response = new ANTMessageItem(); if (ANT_RequestMessage(unmanagedANTFramerPtr, channelNum, (byte)messageID, ref response, responseWaitTime) == 0) throw new ANT_Exception("Timed out waiting for requested message"); ANT_Response retVal = new ANT_Response(this, channelNum, DateTime.Now, response.antMsgData.msgID, response.antMsgData.ucharBuf.Take(response.dataSize).ToArray()); return retVal; }
private static extern int ANT_RequestMessage(IntPtr FramerPtr, byte ucANTChannel, byte ucMessageID, ref ANTMessageItem ANT_MESSAGE_ITEM_response, UInt32 ulResponseTime_);
/// <overloads>Requests a message from the device</overloads> /// <summary> /// Request a message from device /// </summary> /// <param name="channelNum">Channel to send request on</param> /// <param name="messageID">Request to send</param> public void requestMessage(byte channelNum, ANT_ReferenceLibrary.RequestMessageID messageID) { if (!initializedUSB) throw new ObjectDisposedException("ANTDevice object has been disposed"); ANTMessageItem dummystruct = new ANTMessageItem(); ANT_RequestMessage(unmanagedANTFramerPtr, channelNum, (byte)messageID, ref dummystruct, 0); }
/// <overloads>Requests a message from the device and returns the response</overloads> /// <summary> /// Read User Nvm by sending Request Mesg capturing the response. /// Throws exception on timeout. /// </summary> /// <param name="address">NVM Address to read from</param> /// <param name="size">Number of bytes to read</param> /// <param name="responseWaitTime">Time to wait for device success response</param> public ANT_Response readUserNvm(UInt16 address, byte size, UInt32 responseWaitTime) { if (!initializedUSB) throw new ObjectDisposedException("ANTDevice object has been disposed"); ANTMessageItem response = new ANTMessageItem(); if (ANT_RequestUserNvmMessage(unmanagedANTFramerPtr, 0, (byte)ANT_ReferenceLibrary.RequestMessageID.USER_NVM_0x7C, ref response, address, size, responseWaitTime) == 0) throw new ANT_Exception("Timed out waiting for requested message"); ANT_Response retVal = new ANT_Response(this, 0, DateTime.Now, response.antMsgData.msgID, response.antMsgData.ucharBuf.Take(response.dataSize).ToArray()); return retVal; }