/// <summary> /// /// </summary> /// <returns></returns> public static string GetDataFromScale() { if (device != null) { device.Close(); } device = new UART(); device.Open( MyGlobal.MySetting.SerialPortName, MyGlobal.MySetting.SerialBaudRate, MyGlobal.MySetting.SerialDataBits, myConverter.FromStringToSerialParity(MyGlobal.MySetting.SerialParity), myConverter.FromStringToSerialStopBits(MyGlobal.MySetting.SerialStopBits) ); if (device == null) { return(null); } if (device.IsConnected() == false) { return(null); } //clear serial receive buffer string data = null; device.Read(); //wait time int wait_time; bool r = int.TryParse(MyGlobal.MySetting.WaitTime, out wait_time); wait_time = r ? wait_time : 100; Thread.Sleep(wait_time); //read newest data data = device.Read(); if (data == null) { return(null); } //process data string value = null; if (data.Contains("\r\n")) { string[] buffer = data.Split(new string[] { "\r\n" }, StringSplitOptions.None); value = buffer[buffer.Length - 2].Trim(); } device.Close(); return(value); }
public static bool Output(LampStatus lampstatus) { try { if (thrlamp != null) { if (thrlamp.IsAlive == true) { thrlamp.Abort(); device.Write("0"); Thread.Sleep(100); device.Close(); } } if (device != null) { device.Close(); } device = new UART(); device.Open( MyGlobal.MySetting.LampPortName, MyGlobal.MySetting.LampBaudRate, MyGlobal.MySetting.LampDataBits, myConverter.FromStringToSerialParity(MyGlobal.MySetting.LampParity), myConverter.FromStringToSerialStopBits(MyGlobal.MySetting.LampStopBits) ); if (device == null) { return(false); } if (device.IsConnected() == false) { return(false); } int _ref = (int)lampstatus; switch (_ref) { case -1: { MyGlobal.OutputLamp = "0"; // off all lamp break; } case 0: { MyGlobal.OutputLamp = "p"; //on led green break; } case 1: { MyGlobal.OutputLamp = "f"; //on led red break; } case 2: { MyGlobal.OutputLamp = "w"; //on led yellow break; } default: { MyGlobal.OutputLamp = "0"; break; } } thrlamp = new Thread(new ThreadStart(() => { if (MyGlobal.OutputLamp == "0") { device.Write("0"); Thread.Sleep(100); device.Close(); } else { device.Write(MyGlobal.OutputLamp); int delay = MyGlobal.OutputLamp == "p" ? 500 : 3000; Thread.Sleep(delay); device.Write("0"); Thread.Sleep(100); device.Close(); } })); thrlamp.IsBackground = true; thrlamp.Start(); return(true); } catch { return(false); } }
////ST, GS,+ 0.0 g ////ST, GS,+ 106.9 g ////US, GS,+ 1.2 g /// <summary> /// Return null if device is not connect /// </summary> /// <returns></returns> public static string GetWeight() { if (device != null) { device.Close(); } device = new UART(); device.Open( MyGlobal.MySetting.SerialPortName, MyGlobal.MySetting.SerialBaudRate, MyGlobal.MySetting.SerialDataBits, myConverter.FromStringToSerialParity(MyGlobal.MySetting.SerialParity), myConverter.FromStringToSerialStopBits(MyGlobal.MySetting.SerialStopBits) ); if (device == null) { return(null); } if (device.IsConnected() == false) { return(null); } int count = 0; REP: count++; //clear serial receive buffer string data = null; device.Read(); int wait_time; bool r = int.TryParse(MyGlobal.MySetting.WaitTime, out wait_time); wait_time = r ? wait_time : 100; Thread.Sleep(wait_time); //get data newest data = device.Read(); //process data string value = null; string sign = ""; if (data.Contains("\r\n")) { string[] buffer = data.Split(new string[] { "\r\n" }, StringSplitOptions.None); value = buffer[buffer.Length - 2].Trim(); try { buffer = value.Split(','); value = buffer[2].Replace("g", "").Replace("-", "").Replace("+", "").Trim(); sign = buffer[2].Contains("-") ? "-" : ""; value = sign + value; } catch { if (count < 3) { goto REP; } } } device.Close(); if (count >= 3) { return(null); } else { return(value); } }