Ejemplo n.º 1
0
        public AstmStart GetCloseConnectionRequest()
        {
            AstmStart msg = GetNewRequest((byte)SessionVariables.GetNextSessionNumber(), (byte)AstmCommandType.CLOSE_CONNECTION);

            ((MedtronicMessage2)msg.Message2).Message = new ConnectionRequest(SessionDevice.Device.HMACbyte);
            return(msg);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        public AstmStart GetOpenConnectionRequest()
        {
            AstmStart msg = GetNewRequest(AstmCommandType.OPEN_CONNECTION);

            ((MedtronicMessage2)msg.Message2).Message = new ConnectionRequest(SessionDevice.Device.HMACbyte);
            return(msg);
        }
Ejemplo n.º 4
0
        private AstmStart GetNewRequest(byte sessionNumber, byte commandType)
        {
            AstmStart astm = new AstmStart(new byte[] { 0x51, 0x03 });

            astm.Message2 = new MedtronicMessage2(sessionNumber, commandType);
            return(astm);
        }
Ejemplo n.º 5
0
 protected async Task StartCommunication(AstmStart request, IReportPattern responsePattern, CancellationToken cancelToken)
 {
     _communicationBlock         = new CommunicationBlock();
     _communicationBlock.Request = request;
     _communicationBlock.ExpectedResponses.Add(responsePattern);
     await StartCommunication(cancelToken);
 }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
 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);
 }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
 protected async Task StartCommunication(AstmStart request, CancellationToken cancelToken)
 {
     _communicationBlock         = new CommunicationBlock();
     _communicationBlock.Request = request;
     await StartCommunication(cancelToken);
 }