Пример #1
0
        private static void SendToVialon()
        {
            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);

            Console.WriteLine(params_string);
        }
Пример #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;
        }