Esempio n. 1
0
        static void _radio_OnDataReceived(byte[] data)
        {
            count++;
            Debug.Print("Received: " + new string(Encoding.UTF8.GetChars(data)));

            Thread.Sleep(50);
            globalSPIDevice.Config = oledSpiConfig;
            oled.DisplayString("Received: " + new string(Encoding.UTF8.GetChars(data)));
            Thread.Sleep(50);
            globalSPIDevice.Config = nrf24L01PConfig;
            Thread.Sleep(100);
            _radio.SendTo(new byte[] { 0, 0, 1 }, Encoding.UTF8.GetBytes("DDD" + count.ToString()));
        }
Esempio n. 2
0
        private static void SendFirmware(string filePath)
        {
            var startTime     = DateTime.Now;
            var packetCounter = 0;
            var sendCompleted = false;

            Debug.Print("Uploading data...");

            using (var file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
            {
                var buffer = new byte[2 + SrecLineLength];

                for (var i = 0; i < ApplicationSize; i += SrecLineLength)
                {
                    buffer[0] = (byte)(packetCounter >> 8);
                    buffer[1] = (byte)packetCounter;

                    var length = file.Read(buffer, 2, SrecLineLength);
                    if (length <= 0)
                    {
                        Debug.Print("Unexpected end of file!");
                        return;
                    }

                    if (IsLineEmpty(buffer, 2))
                    {
                        buffer[0]     = 0xFF;
                        buffer[1]     = 0xFF;
                        sendCompleted = true;
                    }

                    if (!_radio.SendTo(TargetAddress, buffer, 1000))
                    {
                        Debug.Print("Failed to send packet nr " + packetCounter);
                        return;
                    }

                    ToggleLed();
                    packetCounter++;

                    if (packetCounter % 100 == 0)
                    {
                        Debug.Print("Packets sent: " + packetCounter);
                    }

                    Thread.Sleep(10);

                    if (sendCompleted)
                    {
                        break;
                    }
                }
            }

            Debug.Print("Upload of " + packetCounter + " packets took " + DateTime.Now.Subtract(startTime));
        }
        private void HumidityAndTemperatureTimerProc(object state)
        {
            led.Write(true);

            double humidity    = sensor.Humidity();
            double temperature = sensor.Temperature();

            Debug.Print("H:" + humidity.ToString("F1") + " T:" + temperature.ToString("F1"));
            string values = "T " + temperature.ToString("F1") + ",H " + humidity.ToString("F0");

            // Stuff the 2 byte header ( payload type & deviceIdentifierLength ) + deviceIdentifier into payload
            byte[] payload = new byte[1 + deviceIdentifier.Length + values.Length];
            payload[0] = (byte)((1 << 4) | deviceIdentifier.Length);
            Array.Copy(deviceIdentifier, 0, payload, 1, deviceIdentifier.Length);

            Encoding.UTF8.GetBytes(values, 0, values.Length, payload, deviceIdentifier.Length + 1);

            radio.SendTo(nRF24BaseStationAddress, payload);
        }
Esempio n. 4
0
 private void TimerFire(object state)
 {
     _radio.SendTo(new byte[] { 0xF0, 0xF0, 0xF0, 0xF0, 0xE1 }, Encoding.UTF8.GetBytes("Hello"));
     Debug.Print("Sent: Hello");
 }