コード例 #1
0
 public void AddXBee(RemoteXBee xbee)
 {
     RemoteXBee[] xbees = new RemoteXBee[knownDevices.Length + 1];
     Array.Copy(knownDevices, xbees, knownDevices.Length);
     xbees[knownDevices.Length] = xbee;
     knownDevices = xbees;
     xbee.coordinator = coordinator;
 }
コード例 #2
0
        private bool HandleNetworkDiscoveryResponse(NetworkDiscoveryResponseFrame frame)
        {
            if (frame.ATCommandData == null)
            {
                return true;
            }

            RemoteXBee xbee = new RemoteXBee(frame.SourceAddress, frame.SerialNumber, frame.NodeIdentifier);
            AddXBee(xbee);
            return false;
        }
コード例 #3
0
 void OnRemoteXBeeUpdate(RemoteXBee xbee, Widget[] updateData)
 {
     if (upstreamMQTT != null)
     {
         foreach (Widget widget in updateData)
         {
             if (widget.Type == WidgetType.TemperatureSensor)
             {
                 CLEvent e = new CLEvent((int)CLEventType.TemperatureReading, widget.Value, xbee.SerialNumber);
                 upstreamMQTT.PostEvent(e);
             }
             if (widget.Type == WidgetType.AmbientLightSensor)
             {
                 CLEvent e = new CLEvent((int)CLEventType.AmbientLightReading, widget.Value, xbee.SerialNumber);
                 upstreamMQTT.PostEvent(e);
             }
             if (widget.Type == WidgetType.Switch)
             {
                 CLEvent e = new CLEvent((int)CLEventType.SwitchStateChange, widget.Value/*widget.Value > 0 ? "on" : "off"*/, xbee.SerialNumber);
                 upstreamMQTT.PostEvent(e);
             }
         }
     }
 }
コード例 #4
0
 private void AddXBee(RemoteXBee xbee)
 {
     RemoteXBee[] xbees = new RemoteXBee[knownDevices.Length + 1];
     Array.Copy(knownDevices, xbees, knownDevices.Length);
     xbees[knownDevices.Length] = xbee;
     knownDevices = xbees;
     xbee.Coordinator = coordinator;
     onRemoteDeviceFound(xbee);
 }
コード例 #5
0
 public RemoteDeviceFoundEventArgs(RemoteXBee device)
 {
     this.device = device;
 }
コード例 #6
0
        void ReceivedRemoteFrameHandler(object sender, Frame frame)
        {
            if (!(frame is DigitalAnalogSampleFrame)) { return; }
            DigitalAnalogSampleFrame sampleFrame = frame as DigitalAnalogSampleFrame;

            RemoteXBee sourceXBee = null;
            foreach (RemoteXBee xbee in knownDevices)
            {
                if (Frame.isEqualAddress(xbee.SourceAddress64Bit, sampleFrame.SourceAddress64Bit))
                {
                    sourceXBee = xbee;
                }
            }

            if (sourceXBee == null)
            {
                sourceXBee = new RemoteXBee(sampleFrame.SourceAddress16Bit, sampleFrame.SourceAddress64Bit, null);
                AddXBee(sourceXBee);
            }
        }
コード例 #7
0
 private void onRemoteDeviceFound(RemoteXBee xbee)
 {
     RemoteDeviceFoundEventHandler handler = RemoteDeviceFound;
     if (handler != null)
     {
         handler(new RemoteDeviceFoundEventArgs(xbee));
     }
 }