private void SendMessageAndEnqueue(int father, int child, string messgae) { messgae = FormPackage(father, child, messgae); mySerialPort.Write(messgae); var tmpHandle = new GetEchoForm(0, messgae); _queueEchoControl.Enqueue(tmpHandle); if (!timer_Send2GetEcho.Enabled) timer_Send2GetEcho.Start(); }
private void DequeueAndSendport() { if (tmpSendHandle.Flag == 1 && _queueEchoControl.Count > 0) { var send_message = (GetEchoForm) _queueEchoControl.Dequeue(); tmpSendHandle = send_message; } if (tmpSendHandle.Flag == 0) { mySerialPort.Write(tmpSendHandle.Messgae); label28.Text = @"重试:" + retryCount + @" 次," + @"发送队列:" + _queueEchoControl.Count; retryCount++; } }
private void button_DIY_Modify_Click(object sender, EventArgs e) { //===================================== //数据头和封包 var NeedSend = ""; var head = "#"; var end = "$"; //===================================== try { var combinedString = SendCustomParaAll(); NeedSend = head + combinedString + end; mySerialPort.Write(NeedSend); var tmpHandle = new GetEchoForm(0, NeedSend); _queueEchoControl.Enqueue(tmpHandle); timer_Send2GetEcho.Start(); } catch (Exception ee) { MessageBox.Show(ee.Message); } }