电子秤型号为XK3190-A12+E
解决方案 »
- 一个计数器的代码,,帮看看如何修改 呵呵
- 有人说vs2005中的webservice(asmx)是假的webservice,它和平常所说的webservice有什么不同啊?
- [初学]帮我看看这段代码有什么问题
- 求一正则表达式...
- 谢谢大侠们帮我看下这段删除代码错哪了!
- 关于WebRequest和WebResponse的问题,急呀???!!!
- 基类指针指向子类对象改如何理解(分数不高 请指点 谢谢)
- 各位有经验大侠来帮个忙!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 如何锁定计算机?就是按下ctrl+alt+del后回车的那种
- 不用Tab,要实现在一个form上,把另一个form作为子窗口显示在其上面(作为control)
- 门禁系统:海康设备网络SDK二次开发
- 求助!C#socket通讯
如果是自己摸索就
1、先看看称有没有接口能往外输出数据
2、如果是db9的就拿个串口线插电脑上试试,找个串口调试工具,随便设置个波特率打开串口看看上数不,如果不上数换根线(串口线分直通、交叉)
称的话数据一般比较简单,ASCII接收模式就能看出真实值,如果是乱码就尝试换波特率
要知道很多硬件设备都有自己的操作语言,需要用我们的编程语言去调用这些语言,提交给硬件执行
因此,也许有很多层,例如最底层的dll是用C++写的,C#可以调用这个dll,都有例子
1.先跟销售方要DEMO,没DEMO就要通信协议
2.都是串口通讯,C#有完整的串口工具类库,请查阅serialport类
3.通信协议搞到手之后,剩下的就是写程序咯,。也很简单的,无非就是 联机--发送数据--接收数据--关机--处理数据-呈现这几步。
4.另外说一下,一半这些单片机通讯都是串口,设置好波特率、COM口、数据位、奇偶验证之后连接就OK
5.体重秤那边接的是ASCII码,C#这一端写16进制数据,具体什么指令,就转换成什么16进制数字,这个有专门ASCII转16进制的工具,直接转换就行
6.串口的datareceived 方法运行在辅线程,优先级很低、需要你锁住线程,直到线程执行完毕,否则会出现许多奇奇怪怪的问题,如果是winform的话需要你调委托去异步访问控件,直接访问会报错。其他的前端我就不知道了,毕竟只写过java的网页。大概就这么多。
我是用的VS 2008,C#写的,因为要用在WinCE平板电脑上。
1、按下图中进行设置。
2、“读取”按钮代码:
private void btnFRPTWeight_Click(object sender, EventArgs e)
{
if (txtBarcodeFRPT.Text.Trim() == "")
{
lblStateFRPT.ForeColor = Color.Red;
lblStateFRPT.Text = "2 请先刷厂内条码!!!!";
ShowError("请先刷厂内条码!!!!"); txtBarcodeFRPT.Text = "";
txtBarcodeFRPT.Focus();
return;
}
if (serialPort1.IsOpen)
serialPort1.Close();
serialPort1.Open();
serialPort1.WriteLine("R"); txtCommandFRPT.Focus();
txtCommandFRPT.SelectAll();
}
3、串口接收数据代码:
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
try
{
System.Threading.Thread.Sleep(500);
int bytesCanRead =this.serialPort1.BytesToRead;
if (bytesCanRead > 0)
{
byte[] bzData = new byte[bytesCanRead];
this.serialPort1.Read(bzData, 0, bytesCanRead);
string s = Encoding.ASCII.GetString(bzData, 0, bytesCanRead);
string s1 = "";
for (int i = 0; i < s.Length; i++)
{
if ((s.Substring(i, 1) == "0") ||
(s.Substring(i, 1) == "1") ||
(s.Substring(i, 1) == "2") ||
(s.Substring(i, 1) == "3") ||
(s.Substring(i, 1) == "4") ||
(s.Substring(i, 1) == "5") ||
(s.Substring(i, 1) == "6") ||
(s.Substring(i, 1) == "7") ||
(s.Substring(i, 1) == "8") ||
(s.Substring(i, 1) == "9") ||
(s.Substring(i, 1) == ".") )
{
s1 += s.Substring(i, 1);
}
}
s = s1;
if (s.Trim() != "")
{
serialPort1.Close();
this.Invoke((EventHandler)delegate
{
//s就是最终收到的数据。在这里对s进行处理。
});
}
else
{
serialPort1.Close();
serialPort1.Open();
}
}
}
catch (Exception ex)
{
throw ex;
}
}