/// <summary> /// 转台数据解析 /// </summary> /// <param name="receiveData"></param> /// <param name="serialPortID"></param> private static void TurntableSerialData(byte[] receiveData, Guid serialPortID) { if (Protocol_Dictionary.ContainsKey(serialPortID) && COMType_Dictionary.ContainsKey(serialPortID)) { COMType mCOMType = COMType_Dictionary[serialPortID]; ProtocolAnalysis m_Analysis = Protocol_Dictionary[serialPortID]; switch (mCOMType.strCOMType) { case (int)ControlProtocolType.GS209_RY: /** 209sRY*/ { m_Analysis.Analysis209s(serialPortID, receiveData); } break; case (int)ControlProtocolType.GS209_SR: /** 209sSR*/ { m_Analysis.AnalysisSR(serialPortID, receiveData); } break; case (int)ControlProtocolType.GS209_PT100: /** 209sPT100*/ { m_Analysis.Analysis209s_PT100(serialPortID, receiveData); } break; case (int)ControlProtocolType.GS368_BJ: /** 368s*/ { m_Analysis.Analysis368s_BJ(serialPortID, receiveData); } break; case (int)ControlProtocolType.GS508_Ali: /** 508s*/ { if (receiveData[0] == 0xA1 || receiveData[0] == 0xA2) { if (receiveData[0] == 0xA2 && receiveData[3] == 0x50 && receiveData[4] == 0x41) { } else { m_Analysis.Analysis508Ali(serialPortID, receiveData); } } } break; case (int)ControlProtocolType.GS11s: /** 11s*/ { } break; case (int)ControlProtocolType.CIVIL_GPL: /** 高普乐*/ { m_Analysis.AnalysisPelco_D_GPL(serialPortID, receiveData); } break; case (int)ControlProtocolType.GS5308_OP3: /** OP3*/ { } break; case (int)ControlProtocolType.GS211_OT11: /** OT11*/ { } break; case (int)ControlProtocolType.CIVIL_PelcoD: /** PelcoD*/ { m_Analysis.AnalysisPelco_D(serialPortID, receiveData); } break; case (int)ControlProtocolType.CIVIL_PelcoP: /** PelcoP*/ { } break; } } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> static void serialPort_DataReceivedEventHandler(object sender, SerialDataReceivedEventArgs e) { foreach (SerialCOMList SerialCOMList_Obj in DeviceType_Dictionary.Values) { try { if (SerialPort_Dictionary[SerialCOMList_Obj.DeviceID].BytesToRead != 0) { ProtocolAnalysis m_Analysis = Protocol_Dictionary[SerialCOMList_Obj.DeviceID]; COMType mCOMType = COMType_Dictionary[SerialCOMList_Obj.DeviceID]; int byteLen = SerialPort_Dictionary[SerialCOMList_Obj.DeviceID].BytesToRead; byte[] receiveData = new byte[byteLen]; SerialPort_Dictionary[SerialCOMList_Obj.DeviceID].Read(receiveData, 0, receiveData.Length); switch (mCOMType.strCOMType) { case (int)ControlProtocolType.GS209_RY: /** 209sRY*/ { m_Analysis.Analysis209s(SerialCOMList_Obj.DeviceID, receiveData); } break; case (int)ControlProtocolType.GS209_SR: /** 209sSR*/ { m_Analysis.AnalysisSR(SerialCOMList_Obj.DeviceID, receiveData); } break; case (int)ControlProtocolType.GS209_PT100: /** 209sPT100*/ { m_Analysis.Analysis209s_PT100(SerialCOMList_Obj.DeviceID, receiveData); } break; case (int)ControlProtocolType.GS368_BJ: /** 368s*/ { m_Analysis.Analysis368s_BJ(SerialCOMList_Obj.DeviceID, receiveData); } break; case (int)ControlProtocolType.GS508_Ali: /** 508s*/ { if (receiveData[0] == 0xA1 || receiveData[0] == 0xA2) { if (receiveData[0] == 0xA2 && receiveData[3] == 0x50 && receiveData[4] == 0x41) { } else { m_Analysis.Analysis508Ali(SerialCOMList_Obj.DeviceID, receiveData); } } } break; case (int)ControlProtocolType.GS11s: /** 11s*/ { } break; case (int)ControlProtocolType.CIVIL_GPL: /** 高普乐*/ { m_Analysis.AnalysisPelco_D_GPL(SerialCOMList_Obj.DeviceID, receiveData); } break; case (int)ControlProtocolType.GS5308_OP3: /** OP3*/ { } break; case (int)ControlProtocolType.GS211_OT11: /** OT11*/ { } break; case (int)ControlProtocolType.CIVIL_PelcoD: /** PelcoD*/ { m_Analysis.AnalysisPelco_D(SerialCOMList_Obj.DeviceID, receiveData); } break; case (int)ControlProtocolType.CIVIL_PelcoP: /** PelcoP*/ { } break; //case (int)ControlProtocolType.UPS_3onedata: // { } // break; } } } catch { } } }