Example #1
0
        private void startScanBtn_Click(object sender, EventArgs e)
        {
            foundDevicesListView.Items.Clear();
            ushort responseTime = 0;

            try
            {
                responseTime = Convert.ToUInt16(responseTimeTb.Text);
            }
            catch (Exception eee)
            {
                MessageBox.Show("Yanıt süresinin değerini kontrol ediniz..");
                return;
            }
            RadioMessageType messageType = RadioMessageType.DISCOVER_NEIGHBOUR_REQUEST;
            RadioServiceType serviceType = RadioServiceType.BROADCAST_SERVICE;

            byte[]   messagePayload = new byte[10];
            DateTime dateTime       = DateTime.Now;

            if (syncClocksCb.Checked)
            {
                messagePayload[0] = 0x01; // sync clock
            }
            else
            {
                messagePayload[0] = 0x00; // dont sync clock
            }
            messagePayload[1] = 12;       // DeviceType -> GATEWAY
            messagePayload[2] = (byte)(responseTime >> 8);
            messagePayload[3] = (byte)(responseTime & 0xFF);
            messagePayload[4] = (byte)dateTime.Hour; /* Cihaz Saati */ //kaanbak : burada gateway'in saatini de kontrol etmemiz gerekiyor..
            messagePayload[5] = (byte)dateTime.Minute;
            messagePayload[6] = (byte)dateTime.Second;
            messagePayload[7] = (byte)dateTime.Day;
            messagePayload[8] = (byte)dateTime.Month;
            messagePayload[9] = (byte)(dateTime.Year - 2000);

            LoRaManager.Instance.SendLoRaPackageToRemoteDevice(255, messageType, serviceType, messagePayload, 10, responseTime, 0);
            try
            {
                ProgressBarTimerTickCount        = (ushort)(responseTime / progressBarTimer.Interval);
                CurrentProgressBarTimerTickCount = ProgressBarTimerTickCount;
                scanningProgresBar.Maximum       = responseTime;
                scanningProgresBar.Minimum       = 0;
                scanningProgresBar.Value         = 0;
                progressBarTimer.Start();
                startScanBtn.Enabled = false;
                label2.Text          = "Tarama Devam ediyor..";
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message);
            }
        }
 public void SendLoRaPackageToRemoteDevice(byte destinationIdParam, RadioMessageType messageTypeParam, RadioServiceType serviceTypeParam, byte[] dataParam, UInt16 lengthParam, ushort timeoutParam, byte retryCountParam)
 {
     byte[] packageData = new byte[lengthParam + 7];
     packageData[0] = (byte)(destinationIdParam);
     packageData[1] = (byte)messageTypeParam;
     packageData[2] = (byte)serviceTypeParam;
     packageData[3] = (byte)(timeoutParam >> 8);
     packageData[4] = (byte)(timeoutParam & 0xFF);
     packageData[5] = retryCountParam;
     packageData[6] = (byte)lengthParam;
     Array.Copy(dataParam, 0, packageData, 7, lengthParam);
     EthernetManager.Instance.SendRemoteDeviceCmd(Ethernet_MessageIDs_t.INCOMING_CMD_LORA_SEND_PACKAGE_REQUEST, (ushort)(lengthParam + 7), packageData);
 }