private void sendToPrintPort(ObjPrinterSerialRawDataBuf _obj) { // 출력 if (null != _obj && 0 < _obj.m_order_input_raw_data_len) { m_print_port.Write(_obj.m_order_input_raw_data_buf, 0, _obj.m_order_input_raw_data_len); // send data printListenPortReceivedData(String.Format(">> recv data send to print port: {0} byte", _obj.m_order_input_raw_data_len)); // log } }
private void onDataReceivedListenPort(object sender, SerialDataReceivedEventArgs e) { this.Invoke(new MethodInvoker(delegate { printListenPortReceivedData("-------------------- recv start"); })); System.Array.Clear(m_listen_port_read_buf, 0, m_listen_port_read_buf.Length); m_listen_port_read_len = 0; int onetime_read_len = 0; while (m_listen_port.BytesToRead > 0) { onetime_read_len = ((m_listen_port_read_len + m_listen_port.BytesToRead) < m_listen_port_read_buf.Length ? m_listen_port.BytesToRead : (m_listen_port_read_buf.Length - m_listen_port_read_len)); m_listen_port.Read(m_listen_port_read_buf, m_listen_port_read_len, onetime_read_len); m_listen_port_read_len += onetime_read_len; } //String read_msg_0 = System.Text.Encoding.ASCII.GetString(m_listen_port_read_buf); //String read_msg_1 = System.Text.Encoding.UTF8.GetString(m_listen_port_read_buf); //String read_msg_2 = System.Text.Encoding.Unicode.GetString(m_listen_port_read_buf); //String read_msg_3 = System.Text.Encoding.UTF32.GetString(m_listen_port_read_buf); String read_msg = System.Text.Encoding.Default.GetString(m_listen_port_read_buf); // 운영체제에 맞는 코드 페이지 TsLog.writeLog(read_msg); // log this.Invoke(new MethodInvoker(delegate { printListenPortReceivedData(" >> read: " + m_listen_port_read_len.ToString()); })); this.Invoke(new MethodInvoker(delegate { printListenPortReceivedData("-------------------- recv end--"); })); //String read_data = m_listen_port.ReadExisting(); //this.Invoke(new MethodInvoker(delegate { printListenPortReceivedData(read_data); })); if (0 < m_listen_port_read_len) { // request save ObjPrinterSerialRawDataBuf input_raw_data = new ObjPrinterSerialRawDataBuf(); input_raw_data.setObj("test_input_type", m_listen_port_read_buf, 0, m_listen_port_read_len, "test_output_type"); input_raw_data.requestSendRowData(); // push to list lock (m_recv_raw_data_list_lock) { m_recv_raw_data_list.Add(input_raw_data); } // button enable this.Invoke(new MethodInvoker(delegate { setFormControlEnable(true); })); } }