Example #1
0
        public void PostHVAC(HVAC hvac)
        {
            System.Net.Http.HttpResponseMessage response = null;
            using (var Client = new System.Net.Http.HttpClient())
            {
                try
                {
                    var JSON      = Newtonsoft.Json.JsonConvert.SerializeObject(hvac);
                    var content   = new StringContent(JSON, Encoding.UTF8, "text/json");
                    var URLWebAPI = "http://50.73.94.149/wsMaterialHouse/api/HVACs";
                    response = Client.PostAsync(URLWebAPI, content).Result;

                    //Debug.WriteLine(response.StatusCode);

                    //if (response.StatusCode != System.Net.HttpStatusCode.OK)
                    //{
                    //    throw new Exception();
                    //}
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
        /// <summary>
        /// 添加1台HVAC的参数信息
        /// </summary>
        /// <param name="objHVAC"></param>
        /// <param name="HVACId"></param>
        /// <returns></returns>
        public bool AddParams(HVAC objHVAC, int HVACId)
        {
            List <string> listStr    = new List <string>();
            StringBuilder sqlBuilder = new StringBuilder();

            sqlBuilder.Append("insert into Params(ParamName,Value,ValueUpper,ValueLower,ModubsAddr,IsDetected,Note,IsPassed,HvacId)");
            sqlBuilder.Append(" values('{0}',{1},{2},{3},'{4}','{5}','{6}','{7}',{8})");

            foreach (var item in objHVAC.Params)
            {
                string sql = string.Format(sqlBuilder.ToString(), item.ParamName, item.Value, item.ValueUpper, item.ValueLower, item.ModubsAddr, item.IsDetected, item.Note, item.IsPassed, HVACId);

                listStr.Add(sql);
            }

            try
            {
                return(SQLHelperCommon.UpdateByTran(listStr));
            }
            catch (SqlException ex)
            {
                throw new Exception("添加HVAC的参数信息时,数据库操作出现异常,原因:" + ex.Message);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #3
0
        /// <summary>
        /// 开始检测
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnStart_Click(object sender, EventArgs e)
        {
            if (Program.currentProductType == null)
            {
                MessageBox.Show("未选择产品型号,请选择型号后进行检测", "检测提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            this.btnStart.Enabled = false;
            this.btnStart.Text    = "检测中";

            //1.封装1台当前型号的HVAC
            HVAC objHVAC = new HVAC
            {
                Type       = Program.currentProductType,
                Params     = CopyListParams(listParam),
                DetectTime = DateTime.Now
            };

            //2.将页面展示的HVAC设为该HVAC
            currentDetectedHVAC = objHVAC;

            //3. 读取PLC检测的数据
            if (!ReadParams(objHVAC))
            {
                MessageBox.Show("读取检测数据错误");
                this.btnStart.Enabled = true;
                this.btnStart.Text    = "开始检测";
                return;
            }

            //3. 判断HVAC是否合格
            CheckPassed(objHVAC);

            //4.显示HVAC的 IsDetected参数
            UpdateDgvParam(GetDetectedListParam(objHVAC.Params));
            SetDgvIsPassedColor(dgvParam);

            //5.显示HVAC的 非IsDetected参数
            this.LFaceDef_Sponge.LanternBackground   = objHVAC.Params[24].Value == 1f ? Color.LimeGreen : Color.Red;
            this.LExpansion_Sponge.LanternBackground = objHVAC.Params[25].Value == 1f ? Color.LimeGreen : Color.Red;
            this.LTube_Direction.LanternBackground   = objHVAC.Params[26].Value == 1f ? Color.LimeGreen : Color.Red;
            this.LWind_Sponge.LanternBackground      = objHVAC.Params[27].Value == 1f ? Color.LimeGreen : Color.Red;


            //6.更新合格数
            if (objHVAC.IsPassed == "合格")
            {
                passNum++;
            }
            else if (objHVAC.IsPassed == "不合格")
            {
                unPassNum++;
            }
            ShowPassNum();

            this.btnStart.Enabled = true;
            this.btnStart.Text    = "开始检测";
        }
Example #4
0
        public FrmProduct(HVAC objHVAC) : this()
        {
            this.txtId.Text       = objHVAC.HvacId.ToString();
            this.txtIsPassed.Text = objHVAC.IsPassed;
            this.txtTime.Text     = objHVAC.DetectTime.ToString();
            this.txtType.Text     = objHVAC.Type.ToString();

            this.dgv1.AutoGenerateColumns = false;
            Common.DataGridViewStyle.DoubleBuffered(dgv1, true);
            this.dgv1.DataSource = objHVAC.Params;
        }
Example #5
0
        private bool ReadParams(HVAC hvac)
        {
            //1.读取保持寄存器的数据,从40000 读到 40046,寄存器数量48
            byte[] b1 = objTcpClient.ReadHoldingRegisters(0, 48, 0);
            //2.处理数据
            if (b1 != null)
            {
                //遍历modbus地址为4区的param
                foreach (Param item in hvac.Params)
                {
                    if (item.ModubsAddr[0] == '4')    //4xxxx
                    {
                        // 40002 => 002 => 4
                        int    start = int.Parse(item.ModubsAddr.Substring(2, 3)) * 2;
                        byte[] data  = new byte[4] {
                            b1[start], b1[start + 1], b1[start + 2], b1[start + 3]
                        };
                        data       = Common.DataConverter.ReverseFormatDCBA(data);
                        item.Value = BitConverter.ToSingle(data, 0);    //startIndex处的字节为高位字节
                    }
                }
            }
            else
            {
                return(false);
            }

            //3.读取输入线圈状态,从00000读到00003,共4个线圈,起始地址为0
            byte[] b2 = objTcpClient.ReadCoilStatus(0, 4, 0);
            if (b2 != null)
            {
                foreach (Param item in hvac.Params)
                {
                    if (item.ModubsAddr[0] == '0')
                    {
                        //获取该变量的相对地址,相对地址为绝对地址减去读取起始地址
                        //此处读取起始地址为0,则相对地址即为modbus绝对地址的尾数
                        int i = int.Parse(item.ModubsAddr.Substring(2, 3));

                        //将第0个字节转换成2进制形式的字符串 11011010
                        string str = Convert.ToString(b2[0], 2).PadLeft(8, '0');

                        char c = str[7 - i];

                        item.Value = (c == '1' ? 1f : 0f);
                    }
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public async void OnSaveHVAC(object sender, EventArgs e)
        {
            try

            {
                //var path = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
                //var filename = Path.Combine(path.ToString(), "myfile.txt");

                IUserDialogs Dialogs = UserDialogs.Instance;
                Dialogs.ShowLoading("Saving...");
                await Task.Delay(2000);

                Repository repository = new Repository();
                Dialogs.HideLoading();


                HVAC hvac = new HVAC();
                hvac.PropertyAsset = new PropertyAsset();



                var a = int.Parse(App.Current.Properties["PropertyId"].ToString());



                hvac.IDPropertyAsset = a;


                hvac.Brand       = brandplug.Text;
                hvac.Warranty    = warrantyplug.Text;
                hvac.Description = descripctionplug.Text;
                hvac.Comments    = commentsplug.Text;
                hvac.FFile       = fileNameplug;

                hvac.IDUSERPropertyAsset = int.Parse(App.Current.Properties["UsersId"].ToString());
                repository.PostHVAC(hvac);

                await DisplayAlert("HVAC", "The HVAC:  " + brandplug.Text + "  is saved ", "OK");

                GoToPage();
            }
            catch (Exception ex)
            {
                await DisplayAlert("HVAC", ex.Message, "OK");
            }
        }
Example #7
0
 private void CheckPassed(HVAC objHVAC)
 {
     objHVAC.IsPassed = "合格";
     foreach (var item in objHVAC.Params)
     {
         if (item.IsDetected == "1")
         {
             if (item.Value >= item.ValueLower && item.Value <= item.ValueUpper)
             {
                 item.IsPassed = "合格";
             }
             else
             {
                 item.IsPassed = "不合格";
                 if (objHVAC.IsPassed == "合格")
                 {
                     objHVAC.IsPassed = "不合格";
                 }
             }
         }
         else if (item.IsDetected == "0")
         {
             if (item.Value == 1f)
             {
                 item.IsPassed = "合格";
             }
             else
             {
                 item.IsPassed = "不合格";
                 if (objHVAC.IsPassed == "合格")
                 {
                     objHVAC.IsPassed = "不合格";
                 }
             }
         }
     }
 }
        /// <summary>
        /// 添加1台HVAC
        /// </summary>
        /// <param name="objHVAC"></param>
        /// <returns>返回该台HVAC在数据库中的Id</returns>
        public int AddHVAC(HVAC objHVAC)
        {
            string sql = "insert into HVACS(Type,IsPassed,DetectTime) values(@Type,@IsPassed,@DetectTime);select SCOPE_IDENTITY() as id";

            SqlParameter[] param = new SqlParameter[]
            {
                new SqlParameter("@Type", objHVAC.Type),
                new SqlParameter("@IsPassed", objHVAC.IsPassed),
                new SqlParameter("@DetectTime", objHVAC.DetectTime)
            };

            try
            {
                return(Convert.ToInt32(SQLHelperCommon.GetSingleResult(sql, param, false)));
            }
            catch (SqlException ex)
            {
                throw new Exception("添加HVAC时,数据库操作出现异常,原因:" + ex.Message);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }