public void Send(SecsMessageBase msg) { msg.DeviceId = m_DeviceId; bool isPrimary = msg.NeedReply && ((msg.Function & 0x01) == 0x01); if (isPrimary) { //get new transaction id msg.TransactionId = GetNextTransactionId(); //register T3 lock (m_Locker) { if (m_SecsTransaction.ContainsKey(msg.TransactionId)) { m_SecsTransaction.Remove(msg.TransactionId); } m_SecsTransaction.Add(msg.TransactionId, msg); } } //TraceSmlLog(msg, DirectionType.Sent); OnSending(msg, isPrimary); byte[] data = m_Parser.GetBytes(msg); ProtectedSend(data); //OnSent(msg); TraceSmlLog(msg, DirectionType.Sent); //000783 Change Position, Send without Error then Log Show }
public void Send(SecsMessageBase msg, SecondarySecsMessageEventHandler callback) { msg.DeviceId = m_DeviceId; bool isPrimary = msg.NeedReply && ((msg.Function & 0x01) == 0x01); if (isPrimary) { //get new transaction id msg.TransactionId = GetNextTransactionId(); //register T3 lock (m_Locker) { if (m_SecsTransaction.ContainsKey(msg.TransactionId)) { m_SecsTransaction.Remove(msg.TransactionId); } m_SecsTransaction.Add(msg.TransactionId, msg); } if (callback != null) { if (c_CustomSecondaryMessageCallback.ContainsKey(msg.TransactionId)) { c_CustomSecondaryMessageCallback.Remove(msg.TransactionId); } c_CustomSecondaryMessageCallback.Add(msg.TransactionId, callback); } } //TraceSmlLog(msg, DirectionType.Sent); OnSending(msg, isPrimary); byte[] data = m_Parser.GetBytes(msg); ProtectedSend(data); //OnSent(msg); TraceSmlLog(msg, DirectionType.Sent); }