• C# TCP通讯大族激光打标机


    本篇展示大族打标机 TCP通讯代码。大族软件提供 TCPserver,我们作为Client ,通讯连接切换打印模板,传递打印内容,以及触发打印。

    指令如下

    $Initialize_模板名   // 切换模板
    $Data_89860,08611,04791   // 打印动态内容传递多个逗号分割,
    $MarkStart_    //开始打印指令,

    1. 初始化指令:指令字符串为“$Initialize_模板名”,假设初始化AA模板,则初始化指令为$Initialize_AA。
    2. 初始化成功,返回指令:0x02+$Initialize_OK+0x03

    反之,返回指令:0x02+$Initialize_FALSE+0x03

    1. 数据传输指令:指令字符串为“$Data_数据1,数据2,数据3,数据4”,假设传送一串数据“89860,08611,04791”,则数据传输指令为$Data_89860,08611,04791。
    2. 数据成功收到且格式正确,返回指令:0x02+$Receive_OK+0x03,

    如果数据非法或格式不正常,返回指令:0x02+$Receive_Error +0x03。

    如果系统已经退出打标对话框,返回指令:0x02+$SysNoReady+0x03。

    1. 启动打标指令为: $MarkStart_

    1.  标记完成返回指令:0x02+$MarkStart_OK+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());
                }
            }
        }

  • 相关阅读:
    ZYNQ之HLS学习----开篇实验
    css基础选择器(详细!全!)
    农村人口房屋管理系统(VB+access)
    【异常、线程】全网最详细解读
    竞赛 题目:基于深度学习的手势识别实现
    分类预测 | Matlab特征分类预测全家桶(BP/SVM/ELM/RF/LSTM/BiLSTM/GRU/CNN)
    Part2_扩展MATSIM_Subpart4_除个人车外的其他模式_第22章 汽车共享
    【java学习—九】抽象类和抽象方法(3)
    cuda画线改进版
    【SpringBoot】浅谈向容器注入Bean有几种方式。
  • 原文地址:https://blog.csdn.net/u011540323/article/details/127587654