本篇展示大族打标机 TCP通讯代码。大族软件提供 TCPserver,我们作为Client ,通讯连接切换打印模板,传递打印内容,以及触发打印。
指令如下
$Initialize_模板名 // 切换模板
$Data_89860,08611,04791 // 打印动态内容传递多个逗号分割,
$MarkStart_ //开始打印指令,
反之,返回指令:0x02+$Initialize_FALSE+0x03
如果数据非法或格式不正常,返回指令:0x02+$Receive_Error +0x03。
如果系统已经退出打标对话框,返回指令:0x02+$SysNoReady+0x03。
标记失败返回指令:0x02+$MarkStart_ERROR+0x03
public partial class HanslaserTestForm : Form
{
public HanslaserTestForm()
{
InitializeComponent();
ReceiveData();
}
private void ReceiveData()
{
Task.Run(async () => {
while (true)
{
try
{
if (client != null)
{
var str = client.Receive();
this.Invoke(() => {
if(str!=null)
TxtReceive.Text = str;// StringHexHelper.ByteToHexStr(str);
});
}
}
catch
{
}
await Task.Delay(500);
}
});
}
MyTcpClient client;
private void button1_Click(object sender, EventArgs e)
{
try
{
client = TcpClientBox.GetClient(TxtIp.Text, TxtNum.Value.ToInt());
var sendStr = this.TxtSend.Text;
//sendStr = sendStr.Replace(" ", "");
//var byteStr = sendStr.ToBytesFromHexString();
client.Send(sendStr);
}
catch (Exception ex)
{
MyMessageBox.ShowAlert("异常" + ex.ToString());
}
}
}