Beispiel #1
0
        public IActionResult Delete([FromBody] error_type type)
        {
            string  myurl  = url + "api/v1/configuration/andon/error_type?id=" + type.id.ToString();
            string  result = DeleteUrl(myurl);
            JObject jo     = (JObject)JsonConvert.DeserializeObject(result);

            switch (Convert.ToInt32(jo["code"]))
            {
            case 200:
                Json("Success");
                break;

            case 400:
                break;

            case 410:
                break;

            case 411:
                break;

            default:
                break;
            }
            return(Json("Success"));
        }
Beispiel #2
0
        public IActionResult Add([FromBody] error_type type)
        {
            string msg      = "";
            string myurl1   = url + "api/v1/configuration/andon/error_type";
            var    typeList = CommonHelper <error_type> .Get(myurl1, HttpContext);

            var list = typeList.Any(p => p.name_cn == type.name_cn || p.name_en == type.name_en || p.name_tw == type.name_tw);

            if (list == false)//没有重复的
            {
                string  myurl    = url + "api/v1/configuration/andon/error_type";
                var     postData = JsonConvert.SerializeObject(type);
                string  result   = PostUrl(myurl, postData);
                JObject jo       = (JObject)JsonConvert.DeserializeObject(result);
                switch (Convert.ToInt32(jo["code"]))
                {
                case 200:
                    msg = "Success";
                    break;

                case 400:
                    msg = "fail";
                    break;
                }
            }
            else
            {
                msg = "fail";
            }

            return(Json(msg));
        }
Beispiel #3
0
        public error_type testCon()
        {
            byte[]     mes = { address, 0 };
            error_type err = SendCmd(mes).err;

            return(err);
        }
Beispiel #4
0
 public void testCRC()
 {
     err = error_type.CRCErr;
     if (buff.Length < 4)
     {
         err = error_type.CRCErr;
         return;
     }
     byte[] newarr = buff;
     Array.Resize(ref newarr, newarr.Length - 2);
     byte[] trueCRC = Modbus.Utility.ModbusUtility.CalculateCrc(newarr);
     if ((trueCRC[1] == buff.Last()) && (trueCRC[0] == buff[(buff.Length - 2)]))
     {
         err = error_type.none;
     }
 }
        public int Update(error_type obj)
        {
            int count = ECDS.Update(obj);

            return(count);
        }
        public int Insert(error_type obj)
        {
            int count = ECDS.InsertType(obj);

            return(count);
        }
        public error_type SelectSingle(string code_no = null, int id = 0)
        {
            error_type obj = ECDS.GetType(id, code_no);

            return(obj);
        }
Beispiel #8
0
        public error_type RefreshData()
        {
            InitRs();
            //try
            //{
            //    if (rs_port.IsOpen == false)
            //    if (rs_port.IsOpen == true)
            //        rs_port.Close();

            //    rs_port.Open();
            //}
            //catch
            //{
            //    return -1;
            //}
            //return 0;
            DateTime_lastTime_connection = DateTime.Now;
            ReloadDataArgs args = new ReloadDataArgs();

            args.addr = address;

            if (testCon() == 0)
            {
                //Console.WriteLine("Тест связи успешен");


                if (OpenChannel(Convert.ToByte(level), password[level - 1]) == 0)
                {
                    //Console.WriteLine("Доступ разрешен");
                    byte[] btbuf = GiveSerialNumber();
                    //Console.WriteLine("Серийный номер");
                    if (btbuf == null)
                    {
                        args.error = error_type.NoConnect;
                        OnThresholdReached(args);
                        error_meter = error_type.NoConnect;
                        return(error_type.NoConnect);
                    }
                    args.error  = error_type.none;
                    error_meter = error_type.none;
                    try
                    {
                        int buf = 0;

                        for (int z = 0; z < 4; z++)
                        {
                            buf += (int)((double)btbuf[3 - z] * System.Math.Pow(10, 2 * z));
                        }
                        if (buf != serial_number)
                        {
                            args.error  = error_type.WrongId;
                            error_meter = error_type.WrongId;
                            OnThresholdReached(args);
                            return(error_type.WrongId);
                        }

                        int[] int1 = CallAdditionalParameters(Mercury230.BWIR_param.voltage, 1, Mercury230.AdditionalParameters_query.h16);
                        Console.Write("Вольтаж:");
                        //voltage = new float[3];
                        //int i = -1;


                        for (int i = 0; i <= 2; i++)
                        {
                            Phases[i].voltage.Value = Convert.ToSingle(int1[i]) / 100;
                            Console.Write(" {0}-{1} ", i, Phases[i].voltage.Value);
                        }
                        Console.WriteLine();

                        int1 = CallAdditionalParameters(Mercury230.BWIR_param.current, 1, Mercury230.AdditionalParameters_query.h16);
                        Console.Write("Амперы:");
                        //current = new float[3];
                        //i = -1;

                        for (int i = 0; i <= 2; i++)
                        {
                            Phases[i].current.Value = Convert.ToSingle(int1[i]) / 1000; //правка от 07.09.2016  показания тока делим не на 100 а на 1000
                            Console.Write(" {0}-{1} ", i, Phases[i].current.Value);
                        }
                        Console.WriteLine();

                        int1      = CallAdditionalParameters(Mercury230.BWIR_param.frequency, 0);
                        frequency = Convert.ToSingle(int1[0]) / 100;
                        Console.WriteLine("Частота:{0}", frequency);


                        int1 = CallAdditionalParameters(Mercury230.BWIR_param.power_factor, 0, Mercury230.AdditionalParameters_query.h16);
                        //power_factor = new float[int1.Length];
                        //Console.WriteLine("Масссив размером: {0}", int1.Count());
                        Console.Write("Коэфф мощности:");
                        for (int i = 1; i <= 3; i++)
                        {
                            // Ответ происходит по виду Сумма - 1ф -2ф -3ф . Потому сдвигаем на один индекс
                            // чтобы получить - 1ф -2ф -3ф
                            Phases[i - 1].power_factor.Value = Convert.ToSingle(int1[i]) / 1000;
                            Console.Write(" {0}-{1} ", i, Phases[i - 1].power_factor.Value);
                        }

                        CommonPower.Value = 0;
                        for (int i = 0; i < 3; i++)
                        {
                            CommonPower.Value += Phases[i].power.Value;
                        }

                        CommonActivePower.Value = 0;
                        for (int i = 0; i < 3; i++)
                        {
                            CommonActivePower.Value += Phases[i].power.Value * Phases[i].power_factor.Value;
                        }

                        Console.WriteLine();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Ошибка при ответе:{0}", e.Message);
                        args.error  = error_type.AnswError;
                        error_meter = error_type.AnswError;
                        return(error_meter);
                    }

                    //DataTime_last_contact = DateTime.Now;

                    OnThresholdReached(args);
                    error_meter = error_type.none;
                    return(error_type.none);
                }
                // Console.WriteLine("{0} : отказ", address);
                args.error  = error_type.NoAnsw;
                error_meter = error_type.NoAnsw;
                OnThresholdReached(args);
                return(error_type.NoAnsw);
            }
            // Console.WriteLine("Ошибка");
            args.error  = error_type.NoConnect;
            error_meter = error_type.NoConnect;
            OnThresholdReached(args);
            return(error_type.NoConnect);
        }