[STAThread]
static void Main()
{
Application.Run(new Transmits());
}
private short pport(string acc_commport)
{
short commport;
switch(acc_commport)
{
case "Com1":
commport=1;
break;
case "Com2":
commport=2;
break;
default:
commport=1;
break; }
return commport;
} private void incomm()
{
try
{
axMSComm.CommPort=pport(cbb_C.SelectedItem.ToString());
if (axMSComm.PortOpen) axMSComm.PortOpen = false;
axMSComm.Settings=cbb_B.SelectedItem.ToString()+","+
(cbb_P.SelectedItem.ToString()).Substring(0,1)+","+
cbb_D.SelectedItem.ToString()+","+cbb_S.SelectedItem.ToString();
axMSComm.RThreshold = 1;
axMSComm.DTREnable = true;
axMSComm.Handshaking = MSCommLib.HandshakeConstants.comNone;
axMSComm.InputMode = MSCommLib.InputModeConstants.comInputModeText;
axMSComm.InputLen = 0;
axMSComm.NullDiscard = false;
axMSComm.OnComm += new System.EventHandler(this.axMSComm_OnComm);
try
{
axMSComm.PortOpen = true;
open=true;
}
catch
{
MessageBox.Show("串口被占用或者不存在");
open=false;
}
}
catch
{
MessageBox.Show ("出错");
}
} private void axMSComm_OnComm(object sender, System.EventArgs e)
{
if(!stop)
{
Thread T_data=new Thread(new ThreadStart(ProcessCom)); //感觉这块出错了,不知道如何改,
T_data.IsBackground=true;
T_data.Start();
}
}
private void ProcessCom()
{
if (axMSComm.InBufferCount > 0) ProcessComData((string) axMSComm.Input);
}
private void ProcessComData(string input)
{
// Send incoming data to a Rich Text Box
richtext.AppendText (input);
}
private void ProcessOutData(string output)
{ axMSComm.Output=output;
} private void cmd_open_Click(object sender, System.EventArgs e)
{
Open();
} private void Open()
{
incomm();
if(open==true)
{
cmd_close.Enabled =true;
}
else return;
} private void Transmits_Load(object sender, System.EventArgs e)
{
cbb_Initialization();
//Open();
} private void cmb_close_Click(object sender, System.EventArgs e)
{
axMSComm.PortOpen=false;
cmd_open.Enabled =true;
this.Enabled =false; }
private void cbb_Initialization()
{
cbb_B.SelectedIndex =0;
cbb_C.SelectedIndex =0;
cbb_D.SelectedIndex =0;
cbb_P.SelectedIndex =0;
cbb_S.SelectedIndex =0;
}
}
}
我去出来的数据是:
#0001 2006-02-07 10:49:46 WBC - 0 Cells/uL NIT - URO Normal PRO - 0 g/L pH 5.5 *BLD 2+ 80Cells/uL SG >1.030 BIL - 0 umol/L Vc - 0 mmol/L KET - 0 mmol/L GLU - 0 mmol/L #0003 2006-02-07 10:50:34 WBC - 0 Cells/uL NIT - URO Normal PRO - 0 g/L pH 5.5 *BLD +- 10Cells/uL SG >1.030 BIL - 0 umol/L Vc - 0 mmol/L KET - 0 mmol/L GLU - 0 mmol/L #0003 2006-02-07 10:52:36 WBC - 0 Cells/uL NIT - URO Normal PRO - 0 g/L pH 5.5 *BLD +- 10Cells/uL SG >1.030 BIL - 0 umol/L Vc - 0 mmol/L KET - 0 mmol/L GLU - 0 mmol/L
应该是:
#0050 2005-11-14
10:56:57
WBC - 0 Cells/uL
NIT -
URO Normal
PRO - 0 g/L
pH 6.0
BLD - 0 Cells/uL
SG 1.025
BIL - 0 umol/L
*Vc 1+ 1.4 mmol/L
KET - 0 mmol/L
GLU - 0 mmol/L
#0050 2005-11-14
10:56:57
WBC - 0 Cells/uL
NIT -
URO Normal
PRO - 0 g/L
pH 6.0
BLD - 0 Cells/uL
SG 1.025
BIL - 0 umol/L
*Vc 1+ 1.4 mmol/L
KET - 0 mmol/L
GLU - 0 mmol/L
就是多了换行和回车
static void Main()
{
Application.Run(new Transmits());
}
private short pport(string acc_commport)
{
short commport;
switch(acc_commport)
{
case "Com1":
commport=1;
break;
case "Com2":
commport=2;
break;
default:
commport=1;
break; }
return commport;
} private void incomm()
{
try
{
axMSComm.CommPort=pport(cbb_C.SelectedItem.ToString());
if (axMSComm.PortOpen) axMSComm.PortOpen = false;
axMSComm.Settings=cbb_B.SelectedItem.ToString()+","+
(cbb_P.SelectedItem.ToString()).Substring(0,1)+","+
cbb_D.SelectedItem.ToString()+","+cbb_S.SelectedItem.ToString();
axMSComm.RThreshold = 1;
axMSComm.DTREnable = true;
axMSComm.Handshaking = MSCommLib.HandshakeConstants.comNone;
axMSComm.InputMode = MSCommLib.InputModeConstants.comInputModeText;
axMSComm.InputLen = 0;
axMSComm.NullDiscard = false;
axMSComm.OnComm += new System.EventHandler(this.axMSComm_OnComm);
try
{
axMSComm.PortOpen = true;
open=true;
}
catch
{
MessageBox.Show("串口被占用或者不存在");
open=false;
}
}
catch
{
MessageBox.Show ("出错");
}
} private void axMSComm_OnComm(object sender, System.EventArgs e)
{
if(!stop)
{
Thread T_data=new Thread(new ThreadStart(ProcessCom)); //感觉这块出错了,不知道如何改,
T_data.IsBackground=true;
T_data.Start();
}
}
private void ProcessCom()
{
if (axMSComm.InBufferCount > 0) ProcessComData((string) axMSComm.Input);
}
private void ProcessComData(string input)
{
// Send incoming data to a Rich Text Box
richtext.AppendText (input);
}
private void ProcessOutData(string output)
{ axMSComm.Output=output;
} private void cmd_open_Click(object sender, System.EventArgs e)
{
Open();
} private void Open()
{
incomm();
if(open==true)
{
cmd_close.Enabled =true;
}
else return;
} private void Transmits_Load(object sender, System.EventArgs e)
{
cbb_Initialization();
//Open();
} private void cmb_close_Click(object sender, System.EventArgs e)
{
axMSComm.PortOpen=false;
cmd_open.Enabled =true;
this.Enabled =false; }
private void cbb_Initialization()
{
cbb_B.SelectedIndex =0;
cbb_C.SelectedIndex =0;
cbb_D.SelectedIndex =0;
cbb_P.SelectedIndex =0;
cbb_S.SelectedIndex =0;
}
}
}
我去出来的数据是:
#0001 2006-02-07 10:49:46 WBC - 0 Cells/uL NIT - URO Normal PRO - 0 g/L pH 5.5 *BLD 2+ 80Cells/uL SG >1.030 BIL - 0 umol/L Vc - 0 mmol/L KET - 0 mmol/L GLU - 0 mmol/L #0003 2006-02-07 10:50:34 WBC - 0 Cells/uL NIT - URO Normal PRO - 0 g/L pH 5.5 *BLD +- 10Cells/uL SG >1.030 BIL - 0 umol/L Vc - 0 mmol/L KET - 0 mmol/L GLU - 0 mmol/L #0003 2006-02-07 10:52:36 WBC - 0 Cells/uL NIT - URO Normal PRO - 0 g/L pH 5.5 *BLD +- 10Cells/uL SG >1.030 BIL - 0 umol/L Vc - 0 mmol/L KET - 0 mmol/L GLU - 0 mmol/L
应该是:
#0050 2005-11-14
10:56:57
WBC - 0 Cells/uL
NIT -
URO Normal
PRO - 0 g/L
pH 6.0
BLD - 0 Cells/uL
SG 1.025
BIL - 0 umol/L
*Vc 1+ 1.4 mmol/L
KET - 0 mmol/L
GLU - 0 mmol/L
#0050 2005-11-14
10:56:57
WBC - 0 Cells/uL
NIT -
URO Normal
PRO - 0 g/L
pH 6.0
BLD - 0 Cells/uL
SG 1.025
BIL - 0 umol/L
*Vc 1+ 1.4 mmol/L
KET - 0 mmol/L
GLU - 0 mmol/L
就是多了换行和回车
解决方案 »
- C# 窗体异常处理
- C#的Spread中金额数据的显示
- c#怎么删除某个对象关联的事件??
- 关于webservice取得返回值的问题
- C# panel 去掉或者隐藏横向scrollbar 在线等
- 在C#调试过程,发现的一个很奇怪的问题,有知道的来讨论一下,是怎么回事,刚才发了一个有些朋友没有看明白,重新整理后再发一次
- 本地ACCESS数据上传到SQLSERVER
- InitializeComponent()最后一行this.ResumeLayout(false);我感觉应该用true才对
- webservices服务端的程序,运行在win2003,和win2000Avandceserver有什么区别么?(效率上面,稳定性方面)
- 在WIN2003上能安装NET,为什么我安装后无法使用.
- 用c#怎么取得本机sqlserver的安装路径?
- 怎样才能使 aspx返回的页面里,没有任何<Html></html>标记,只有自己输出的一行字?
不过可以把输出作一下处理(把两个连续换行替换成一个换行)就解决了。private void ProcessCom()
{
if (axMSComm.InBufferCount > 0) ProcessComData((string) axMSComm.Input);
}
这里可以跟进去看看
axMSComm.InputMode = MSCommLib.InputModeConstants.comInputModeText;改成binary
-----------------------------------------------------------------------------
我刚接触.NET不懂如何改为binary
是这样吗axMSComm.InputMode = binary?
在问一下出这样的问题是不是跟线程有关系?
Thread T_data=new Thread(new ThreadStart(ProcessCom)); //感觉这块出错了,不知道如何改,
T_data.IsBackground=true;
T_data.Start();
是不是应该再写一个线程,用于接收数据?
(string) axMSComm.Input你的input是什么类型的数据,真的可以直接强制转换成string吗?建议跟踪一下,看看input有多长。到底是些什么内容。
中的MSCommLib.InputModeConstants在哪能找到相应的资料?