コード例 #1
0
        public void Execute(XBeeFrame frame)
        {
            if (frame.FrameId != 0)
            {
                if (frameId == byte.MaxValue)
                {
                    frameId = byte.MinValue;
                }

                frame.FrameId = ++frameId;
            }

            var packet = new XBeePacket(frame);

            packet.Assemble();
            connection.Write(packet.Data);
        }
コード例 #2
0
        public XBeeFrame ExecuteQuery(XBeeFrame frame, int timeout)
        {
            if (frame.FrameId == 0)
            {
                throw new XBeeFrameException("FrameId cannot be zero on a synchronous request.");
            }

            lastFrame     = null;
            frameReceived = false;

            lock (this) {
                Execute(frame);
            }

            while (!frameReceived && timeout > 0)
            {
                Thread.Sleep(10);
                timeout -= 10;
            }

            return(lastFrame);
        }
コード例 #3
0
 public XBeeFrame ExecuteQuery(XBeeFrame frame)
 {
     return(ExecuteQuery(frame, 3000));
 }
コード例 #4
0
 public T ExecuteQuery <T>(XBeeFrame frame, int timeout) where T : XBeeFrame
 {
     return((T)ExecuteQuery(frame, timeout));
 }
コード例 #5
0
 public T ExecuteQuery <T>(XBeeFrame frame) where T : XBeeFrame
 {
     return((T)ExecuteQuery(frame));
 }
コード例 #6
0
 public void FrameReceivedEvent(object sender, FrameReceivedArgs args)
 {
     frameReceived = true;
     lastFrame     = args.Response;
     logger.Debug(args.Response);
 }
コード例 #7
0
 public XBeePacket(XBeeFrame frame)
 {
     frameData = frame.ToByteArray();
 }
コード例 #8
0
 public XBeePacket(XBeeFrame frame)
 {
     frameData = frame.ToByteArray();
 }