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; } }
/// <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 = "开始检测"; }
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; }
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"); } }
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; } }