Example #1
0
        private byte[] CreateSegmentRequestCmd(ushort missingOffset)
        {
            var segmentRequestAction = new COMMAND_CLASS_TRANSPORT_SERVICE_V2.COMMAND_SEGMENT_REQUEST();

            segmentRequestAction.properties2.sessionId       = _reassemblingData.SegmentsContainer.SessionId;
            segmentRequestAction.properties2.datagramOffset1 = (byte)((missingOffset) >> 8);
            segmentRequestAction.datagramOffset2             = (byte)missingOffset;
            return(segmentRequestAction);
        }
Example #2
0
        protected override void CreateInstance()
        {
            var firstSegmentCmd = CreateFirstSegmentCmd(_data);

            _firstSegmentSendOperation = new SendDataOperation(NodeId, firstSegmentCmd, TxOptions)
            {
                SubstituteSettings = new SubstituteSettings(SubstituteFlags.DenySecurity, 0)
            };

            _nextSegmentSendOperation = new SendDataOperation(NodeId, null, TxOptions)
            {
                SubstituteSettings = new SubstituteSettings(SubstituteFlags.DenySecurity, 0)
            };

            var completeCmd = new COMMAND_CLASS_TRANSPORT_SERVICE_V2.COMMAND_SEGMENT_COMPLETE();

            completeCmd.properties2.sessionId = _sessionId;
            byte[] completeCmdData = completeCmd;
            _segmentCompleteExpect = new ExpectDataOperation(0,
                                                             NodeId,
                                                             new ByteIndex[] { completeCmdData[0], completeCmdData[1], completeCmdData[2] },
                                                             SEGMENT_COMPLETE_TIMEOUT
                                                             )
            {
                SubstituteSettings = new SubstituteSettings(SubstituteFlags.DenySecurity, 0), Name = "ExpectData-SegmentComplete"
            };

            var requestCmd = new COMMAND_CLASS_TRANSPORT_SERVICE_V2.COMMAND_SEGMENT_REQUEST();

            _segmentRequestResponse = new ResponseDataOperation(new ResponseDataDelegate(OnRequestSegment),
                                                                _transportServiceManagerInfo.TxOptions,
                                                                NodeId,
                                                                ((byte[])requestCmd)[0],
                                                                ((byte[])requestCmd)[1]
                                                                )
            {
                SubstituteSettings = new SubstituteSettings(SubstituteFlags.DenySecurity, 0)
            };

            var waitCmd = new COMMAND_CLASS_TRANSPORT_SERVICE_V2.COMMAND_SEGMENT_WAIT();

            _waitSegmentResponse = new ResponseDataOperation(new ResponseDataDelegate(OnWaitSegment),
                                                             _transportServiceManagerInfo.TxOptions,
                                                             NodeId,
                                                             ((byte[])waitCmd)[0],
                                                             ((byte[])waitCmd)[1]
                                                             )
            {
                SubstituteSettings = new SubstituteSettings(SubstituteFlags.DenySecurity, 0)
            };
        }