Beispiel #1
0
        private static void SendToVialon(ref MessagesCommunicator _mmc)
        {
            if (zateya)
            {
                //if (black_box.Count() > 2)
                //zateya = false;
                string  params_string = String.Empty;
                int     dl_len        = dut_list.Count;
                Dutyara counter;
                for (int iterator = 0; iterator < dl_len; iterator++)
                {
                    counter        = dut_list[iterator];
                    params_string += ViaDataFormater.GenerateString(counter, iterator);
                }
                params_string = params_string.Remove(params_string.Length - 1);
                var dts = DateTime.Now.ToUniversalTime().ToString("ddMMyy;HHmmss");
                //MessageBox.Show(params_string);
                //SendDutData(params_string, _mmc);
                //Thread.Sleep(1000);
                //SendDutData(params_string, _mmc);
                //Thread.Sleep(1000);
                //SendDutData(params_string, _mmc);
                //Thread.Sleep(1000);
                bool conn = false;

                if (_mmc != null)
                {
                    conn = _mmc.IsConnected;
                }
                if (conn)
                {
                    //timer_stopper.Enabled = false;
                    //var gg = timer_stopper.Interval;

                    black_box.Add(params_string + "zuzuzu" + dts);
                    if (!File.Exists(path))
                    {
                        File.Create(path);
                    }

//#if !DEBUG
                    //LinuxLog(params_string + "zuzuzu" + dts.Insert(2, ".").Insert(5, ".").Insert(11, ":").Insert(14, ":"));
//#endif
//#if DEBUG
                    WindowsLog(params_string + "zuzuzu" + dts.Insert(2, ".").Insert(5, ".").Insert(11, ":").Insert(14, ":"));;
//#endif



                    if (black_box.Count > 0)
                    {
                        //int ts = timer_stopper.Interval / 1000;
                        //timer_stopper.Stop();

                        //int step = 1;

                        //if (black_box.Count > ts + ts*20/100)
                        //{
                        //    step*=2;
                        //    if (black_box.Count > 2*(ts + ts * 20 / 100))
                        //    {
                        //        step *= 2;
                        //        if (black_box.Count > 4 * (ts + ts * 20 / 100))
                        //        {
                        //            step *= 2;
                        //            if (black_box.Count > 8 * (ts + ts * 20 / 100))
                        //            {
                        //                step *= 2;
                        //            }
                        //        }
                        //    }
                        //}
                        //for (int iterator = 0; iterator < black_box.Count; iterator += step)
                        //{
                        //    Console.WriteLine(black_box[iterator]);
                        //    SendDutData(black_box[iterator], _mmc);
                        //    Thread.Sleep(1000); // A nado?
                        //}
                        foreach (var item in black_box)
                        {
                            Console.WriteLine(item);
                            SendDutData(item, _mmc);
                            Thread.Sleep(1000); // A nado?
                        }
                        black_box.Clear();
                        //timer_stopper.Start();
                    }
                }
                else
                {
                    var tt = dts.Insert(2, ".").Insert(5, ".").Insert(11, ":").Insert(14, ":");

                    black_box.Add(params_string + "zuzuzu" + dts);
                    if (!File.Exists(path))
                    {
                        File.Create(path);
                    }
//#if !DEBUG
                    //LinuxLog(params_string + "zuzuzu" + dts.Insert(2, ".").Insert(5, ".").Insert(11, ":").Insert(14, ":"));
//#endif
//#if DEBUG
                    WindowsLog(params_string + "zuzuzu" + dts.Insert(2, ".").Insert(5, ".").Insert(11, ":").Insert(14, ":"));;
//#endif

                    Console.WriteLine("Add");
                }
            }
        }
Beispiel #2
0
        // Проверка полученных данных от ДУТа
        // в случае, если данные дошли в целосности - отправляет их получателю
        // в случае если данные пришли в повреждённом виде - отправляем получателю соответствующий код ошибки
        private static void CheckData(string input_text)
        {
            string[] dut_data_arr = input_text.Split('=');
            int      arr_len      = dut_data_arr.Length;

            if (arr_len != 5)
            {
                message_status = MSG_DROP;
            }
            else
            {
                // Проверяем является ли айдишник числом
                string dut_id = dut_data_arr[0].Substring(0, dut_data_arr[0].Length - 2);
                // dut_id = dut_id.Substring(1, dut_id.Length-2);
                float i  = 0;
                var   bb = float.TryParse(dut_id, out i);
                if (!bb)
                {
                    message_status = MSG_DROP; return;
                }
                if (dut_data_arr[1][0] != '+' && dut_data_arr[1][0] != '-')
                {
                    message_status = MSG_DROP; return;
                }
                bb = float.TryParse(dut_data_arr[2].Replace(".", ","), out i);
                if (!bb)
                {
                    message_status = MSG_DROP; return;
                }
                bb = float.TryParse(dut_data_arr[3].Replace(".", ","), out i);
                if (!bb)
                {
                    message_status = MSG_DROP; return;
                }
                // Если айдишник отличается от запрашиваемого - данные считаются битыми, т.к. пришли от другого ДУТа
                var idish = dut_list[dut_selected].Id.ToString();
                if (dut_id != idish)
                {
                    message_status = MSG_DROP; Console.WriteLine("Err!"); return;
                    // Альтернативный способ решения:
                    //message_status = null; return;


                    //int irr = 0;
                    //while (irr <= 25)
                    //{
                    //Console.WriteLine("Err!");
                    //    irr++;
                    //}
                }
                // ХЗ что хз зачем, но вдроуг пригодится
                //bb = float.TryParse(dut_data_arr[4].Replace(".", ","), out i);
                //if (!bb)
                //{
                //    message_status = MSG_DROP; return;
                //}

                message_status = MSG_SUCCESS;
                dut_list[dut_selected].msg_cont.id    = dut_id;
                dut_list[dut_selected].msg_cont.fuel  = ViaDataFormater.CorrectoinNull(dut_data_arr[2], dut_list[dut_selected].Corrector);
                dut_list[dut_selected].msg_cont.water = ViaDataFormater.CorrectoinNull(dut_data_arr[3], dut_list[dut_selected].Corrector);
                dut_list[dut_selected].msg_cont.temp  = dut_data_arr[1];
            }
            return;
        }