예제 #1
0
 protected async Task StartCommunication(AstmStart request, IReportPattern responsePattern, CancellationToken cancelToken)
 {
     _communicationBlock         = new CommunicationBlock();
     _communicationBlock.Request = request;
     _communicationBlock.ExpectedResponses.Add(responsePattern);
     await StartCommunication(cancelToken);
 }
예제 #2
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);
        }
예제 #3
0
        public Message()
        {
            type = new MessageType();

            controlBlock               = new ControlBlock();
            controlBlock.Command       = new ControlCommand();
            communicationBlock         = new CommunicationBlock();
            communicationBlock.clock   = new VectorClockImpl(-1);
            communicationBlock.payload = new CommunicationPayload();
        }
예제 #4
0
        private async Task StartCommunication(CancellationToken cancelToken)
        {
            try
            {
                await _communicationBlock.StartCommunication(Device, Session, cancelToken);
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                _communicationBlock = null;

                //throw;
            }
        }
예제 #5
0
 protected async Task StartCommunication(CommunicationBlock communicationBlock, CancellationToken cancelToken)
 {
     _communicationBlock = communicationBlock;
     await StartCommunication(cancelToken);
 }
예제 #6
0
 protected async Task StartCommunication(AstmStart request, CancellationToken cancelToken)
 {
     _communicationBlock         = new CommunicationBlock();
     _communicationBlock.Request = request;
     await StartCommunication(cancelToken);
 }
예제 #7
0
 public CommunicationBlock(CommunicationBlock input)
 {
     clock   = new VectorClockImpl(input.clock);
     payload = new CommunicationPayload(input.payload);
 }
예제 #8
0
 public Message(Message msg)
 {
     type               = msg.type;
     controlBlock       = new Message.ControlBlock(msg.controlBlock);
     communicationBlock = new Message.CommunicationBlock(msg.communicationBlock);
 }