private void send_data(byte[] btData) { btArry = null; btArry = CoFAS_ConvertManager.BytesMerge(Encoding.UTF8.GetBytes("$GS,4,8,"), btData); str = CoFAS_ConvertManager.ByteArray2HexString(btArry, " "); Add_ListView("송신 : " + str, ""); _pCoFAS_SocketServer.m_socWorker.Send(btArry); }
//클라이언트 에서 보낸 데이터 확인 처리 private void ReceiveRequest(Socket soc, byte[] data) { try { //신호가 길어지면 잘라서 들어옴.. if (dicBuffer.ContainsKey(soc)) { byte[] temp = new byte[0]; DateTime dt; dicBufferTime.TryGetValue(soc, out dt); //5초 이내 신호만 같은 신호 if ((DateTime.Now) - dt < new TimeSpan(0, 0, 5)) { dicBuffer.TryGetValue(soc, out temp); data = CoFAS_ConvertManager.BytesMerge(temp, data); } dicBufferTime.Remove(soc); dicBuffer.Remove(soc); } //마지막에 [0x2C] == [','] 가 없으면 신호는 더들어 온다. ////if (data[data.Length - 1] != bytEnd[0]) ////{ //// dicBuffer.Add(soc, data); //// dicBufferTime.Add(soc, DateTime.Now); //// return; ////} //string strMesage = ""; //string strTime = CoFAS_ConvertManager.Date2String(DateTime.Now, CoFAS_ConvertManager.enDateType.DateTime).Replace("-", "").Replace(" ", "").Replace(":", ""); //string[] strHex = BitConverter.ToString(data, 12, 30).Split('-'); string[] strHex = BitConverter.ToString(data, 12, 20).Split('-'); //string[] strHex = BitConverter.ToString(data, 12, 70).Split('-'); string strHex1 = CoFAS_ConvertManager.Hex2Double(strHex[0] + strHex[1] + strHex[2] + strHex[3] + strHex[4] + strHex[5] + strHex[6] + strHex[7]).ToString(); //strMesage = "1001:" + strTime + ":3001:4001:" + strHex1 + ":,"; //InsertQueueData(strMesage); //string strHex2 = CoFAS_ConvertManager.Hex2Integer(strHex[8] + strHex[9] + strHex[10] + strHex[11]).ToString(); //strMesage = "1002:" + strTime + ":3002:4002:" + strHex2 + ":,"; //InsertQueueData(strMesage); //string strHex3 = CoFAS_ConvertManager.Hex2Float(strHex[12] + strHex[13] + strHex[14] + strHex[15]).ToString(); //strMesage = "1003:" + strTime + ":3003:4003:" + strHex3 + ":,"; //InsertQueueData(strMesage); //string strHex4 = CoFAS_ConvertManager.Hex2Float(strHex[16] + strHex[17] + strHex[18] + strHex[19]).ToString(); //strMesage = "1004:" + strTime + ":3004:4004:" + strHex4 + ":,"; //InsertQueueData(strMesage); //string strHex5 = CoFAS_ConvertManager.Hex2Float(strHex[20] + strHex[21] + strHex[22] + strHex[23]).ToString(); //strMesage = "1005:" + strTime + ":3005:4005:" + strHex5 + ":,"; //InsertQueueData(strMesage); //string strHex6 = CoFAS_ConvertManager.Hex2Float(strHex[24] + strHex[25] + strHex[26] + strHex[27]).ToString(); //strMesage = "1006:" + strTime + ":3006:4006:" + strHex6 + ":,"; //InsertQueueData(strMesage); string strMsg = ""; strMsg += string.Format("환산 측정 부피 : {0} m3", strHex1); //strMsg += string.Format(" | 측정 부피 : {0} m3", strHex2); //strMsg += string.Format(" | 측정 압력 : {0} bar", strHex3); //strMsg += string.Format(" | 측정 온도 : {0}", strHex4); //strMsg += string.Format(" | 측정 유량 : {0}", strHex5); //strMsg += string.Format(" | 환산 측정 유량 : {0}", strHex6); Add_ListView("수신 : " + strMsg, ""); string str = Encoding.UTF8.GetString(data, 0, data.Length - 1); str = CoFAS_ConvertManager.ByteArray2HexString(data, ""); Add_ListView("수신 : " + str, ""); //string[] strRData = new string[ProcGetStringcount(str, ",")]; //strRData = str.Split(','); //for (int a = 0; a < strRData.Length; a++) //{ // InsertQueueData(strRData[a]); //} //_pCoFAS_SocketServer.m_socWorker.Send(Encoding.UTF8.GetBytes("1")); } catch (SocketException pSocketException) { //_pCoFASLog.WLog_Exception("ReceiveRequest : SocketException", pSocketException); //_pCoFAS_SocketServer.m_socWorker.Send(Encoding.UTF8.GetBytes("-1")); } catch (Exception ex) { //_pCoFASLog.WLog_Exception("ReceiveRequest", ex); // _pCoFAS_SocketServer.m_socWorker.Send(Encoding.UTF8.GetBytes("-1")); } finally { //soc.Shutdown(SocketShutdown.Both); //if (soc.Connected) soc.Disconnect(false); } }