public AstmStart GetCloseConnectionRequest() { AstmStart msg = GetNewRequest((byte)SessionVariables.GetNextSessionNumber(), (byte)AstmCommandType.CLOSE_CONNECTION); ((MedtronicMessage2)msg.Message2).Message = new ConnectionRequest(SessionDevice.Device.HMACbyte); return(msg); }
public AstmStart GetChannelRequest(byte radioChannel) { AstmStart msg = GetNewRequest((byte)SessionVariables.GetNextSessionNumber(), (byte)AstmCommandType.SEND_MESSAGE); ((MedtronicMessage2)msg.Message2).Message = new RadioChannelRequest(radioChannel, SessionCommunicationParameters.LinkMac, SessionCommunicationParameters.PumpMac); return(msg); }
public AstmStart GetOpenConnectionRequest() { AstmStart msg = GetNewRequest(AstmCommandType.OPEN_CONNECTION); ((MedtronicMessage2)msg.Message2).Message = new ConnectionRequest(SessionDevice.Device.HMACbyte); return(msg); }
private AstmStart GetNewRequest(byte sessionNumber, byte commandType) { AstmStart astm = new AstmStart(new byte[] { 0x51, 0x03 }); astm.Message2 = new MedtronicMessage2(sessionNumber, commandType); return(astm); }
protected async Task StartCommunication(AstmStart request, IReportPattern responsePattern, CancellationToken cancelToken) { _communicationBlock = new CommunicationBlock(); _communicationBlock.Request = request; _communicationBlock.ExpectedResponses.Add(responsePattern); await StartCommunication(cancelToken); }
public AstmStart GetMissingSegments(UInt16 startPacket, UInt16 packetCount) { AstmStart msg = GetPumpEnvelope(AstmSendMessageType.MULTIPACKET_RESEND_PACKETS); ((PumpEnvelope)((MedtronicMessage2)msg.Message2).Message).Message.Message = new MissingSegmentRequest(startPacket, packetCount); return(msg); }
private AstmStart GetPumpEnvelope(byte prefix, AstmSendMessageType messageType, byte[] message) { AstmStart msg = GetNewRequest((byte)SessionVariables.GetNextSessionNumber(), (byte)AstmCommandType.SEND_MESSAGE); PumpEnvelope penv = new PumpEnvelope(this.SessionCommunicationParameters.PumpMac, (byte)SessionVariables.GetNextSequenceNumber()); penv.Message = new PumpMessage(prefix, messageType, message); ((MedtronicMessage2)msg.Message2).Message = penv; return(msg); }
protected async Task StartCommunicationStandardResponse(AstmStart request, CancellationToken cancelToken) { _communicationBlock = new CommunicationBlock(); _communicationBlock.Request = request; _communicationBlock.ExpectedResponses.Add(new SendMessageResponsePattern()); _communicationBlock.ExpectedResponses.Add(new RecieveMessageResponsePattern()); await StartCommunication(cancelToken); }
public AstmStart GetMultiPacket(byte[] bytes) { AstmStart msg = GetPumpEnvelope(AstmSendMessageType.ACK_MULTIPACKET_COMMAND); PumpGeneral request = new PumpGeneral(); request.Unknown1 = bytes;//; ((PumpEnvelope)((MedtronicMessage2)msg.Message2).Message).Message.Message = request; return(msg); }
public AstmStart GetReadHistory(HistoryDataTypeEnum historyDataType, int expectedSize) { if (this.PumpTime != null && this.PumpTime.OffSet.Length == 4) { int lastRtc = GetLastRtc(historyDataType); AstmStart msg = GetPumpEnvelope(AstmSendMessageType.READ_HISTORY_REQUEST); ((PumpEnvelope)((MedtronicMessage2)msg.Message2).Message).Message.Message = new ReadHistoryRequest(lastRtc, historyDataType); return(msg); } return(null); }
public AstmStart GetReadHistoryInfo(HistoryDataTypeEnum historyDataType) { try { if (this.PumpTime != null && this.PumpTime.OffSet.Length == 4) { int lastRtc = GetLastRtc(historyDataType); Logger.LogInformation($"Getting history for {historyDataType.ToString()} from {this.PumpTime.GetDateTime(BitConverter.GetBytes(lastRtc)).ToString()}"); AstmStart msg = GetPumpEnvelope(AstmSendMessageType.READ_HISTORY_INFO_REQUEST); ((PumpEnvelope)((MedtronicMessage2)msg.Message2).Message).Message.Message = new ReadHistoryInfoRequest(lastRtc, historyDataType); return(msg); } } catch (Exception) { throw; } return(null); }
protected async Task StartCommunication(AstmStart request, CancellationToken cancelToken) { _communicationBlock = new CommunicationBlock(); _communicationBlock.Request = request; await StartCommunication(cancelToken); }