private void redLightBtn_Click(object sender, EventArgs e) { if (!isRedLightStart) { //必须已经加载模板 if (currentTemplateName_label.Text == null || currentTemplateName_label.Text.Trim().Length == 0) { MessageBox.Show("请先加载模板"); return; } bool res = MarkJcz.StartRed();//开启红光 if (res) { isRedLightStart = true; redLightBtn.Text = "停止红光"; redLightBtn.BackColor = System.Drawing.Color.Khaki; this.server_state_label.BeginInvoke(UpdateServerStateDelegate, "红光指示中..."); } else { MessageBox.Show("启动红光失败"); this.server_state_label.BeginInvoke(UpdateServerStateDelegate, "红光启动失败"); } } else { stopRedLight(); } }
private void loadTemplateBtn_Click(object sender, EventArgs e) { String path = @"D:\1.ezd"; //下面第二个参数为true时可以随便写 bool loaded = MarkJcz.LoadEzdFile(ref path, true); //加载模板 if (loaded) { //如果printing_text_label上有当前需要打印的内容,那么直接替换模板二维码中的内容 if (printing_text_label.Text != null && printing_text_label.Text.Trim().Length != 0) { MarkJcz.ChangeTextByName("no", printing_text_label.Text.Trim());//模板中的变量名字必须是no } MarkJcz.ShowPreviewBmp(printingQcode_pictureBox); path = path.Substring(path.LastIndexOf(@"\") + 1); currentTemplateName_label.Text = path; //加载完模板停止红光和标刻 stopMark(); stopRedLight(); this.server_state_label.BeginInvoke(UpdateServerStateDelegate, "加载模板完成"); } else { this.server_state_label.BeginInvoke(UpdateServerStateDelegate, "加载模板失败"); } }
//更新显示正在打印的编码,同时更新二维码信息 public void UpdateLabel(string txt) { this.printing_text_label.Text = txt; if (printing_text_label.Text != null && printing_text_label.Text.Trim().Length != 0) { MarkJcz.ChangeTextByName("no", printing_text_label.Text.Trim());//模板中的变量名字必须是no MarkJcz.ShowPreviewBmp(printingQcode_pictureBox); } }
private void stopRedLight() { if (isRedLightStart) { MarkJcz.StopRed();//关闭红光 isRedLightStart = false; redLightBtn.Text = "红光"; redLightBtn.BackColor = System.Drawing.Color.Yellow; this.server_state_label.BeginInvoke(UpdateServerStateDelegate, "红光已关闭"); } }
private void Form1_Load(object sender, EventArgs e) { this.waiting_dataGridView.Columns.Clear(); dt = new DataTable(); dt.Columns.Add("编码", System.Type.GetType("System.String")); dt.Columns.Add("入队时间", System.Type.GetType("System.String")); dt.Columns.Add("状态", System.Type.GetType("System.String")); BindingSource bs = new BindingSource(); bs.DataSource = dt; this.waiting_dataGridView.DataSource = bs; waiting_dataGridView.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable; waiting_dataGridView.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable; waiting_dataGridView.Columns[2].SortMode = DataGridViewColumnSortMode.NotSortable; //注意第二个参数,现场实际运行时一定要改成false var ret = MarkJcz.InitLaser(this.Handle, false); //var ret = MarkJcz.InitLaser(); Console.WriteLine(ret); if (ret) { //初始化成功 // MarkJcz.ShowDevCfgForm(); } else { MessageBox.Show("激光器初始化失败"); System.Environment.Exit(0); } //实例化委托 UpdatePrintingDelegate = new UpdatePrinting(AddUpdatePrintingMethod); UpdatePrintingTextLabelDelegate = new UpdatePrintingTextLabel(UpdateLabel); UpdateServerStateDelegate = new UpdateServerState(UpdateServerStateFunc); UpdateConnectedStateDelegate = new UpdateConnectedState(UpdateConnectedStateFunc); Console.WriteLine("主线程:" + Thread.CurrentThread.GetHashCode()); //创建websocket服务器线程 serverThread = new Thread(new ThreadStart(createServerFunc)); serverThread.Start(); //实例化委托 //webSocketService.updateTxtDelegate = new UpdatePrinting(UpdatePrintingMethod); //创建消费者线程(不用,现在采用手工点击事件处理标刻) //consumer = new Thread(new ThreadStart(markEzdFunc)); //consumer.Start(); }
//执行激光打码 public void markEzdFunc() { string markNum = null; if (dt.Rows.Count > 0) { markNum = printing_text_label.Text; if (markNum != null && markNum.Trim().Length != 0) { //处理打码操作 Thread.Sleep(200); isMarking = true; markBtn.Text = "停止标刻"; markBtn.BackColor = System.Drawing.Color.Khaki; this.server_state_label.BeginInvoke(UpdateServerStateDelegate, "正在标刻:" + markNum); bool res = MarkJcz.Mark();//此函数一直等待设备加工完毕后才返回 Thread.Sleep(100); stopMark(); if (res) { //标刻成功完成 this.server_state_label.BeginInvoke(UpdateServerStateDelegate, markNum + "标刻完成"); DialogResult dr = MessageBox.Show("标刻成功,是否需要重新标刻\n" + markNum + "?", "标刻完成", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (dr == DialogResult.OK) { return; } dt.Rows.RemoveAt(0); } else { MessageBox.Show("标刻失败"); this.server_state_label.BeginInvoke(UpdateServerStateDelegate, markNum + "标刻失败"); MessageBox.Show(MarkJcz.GetLastError()); return; } this.waiting_dataGridView.BeginInvoke(UpdatePrintingDelegate, null, null);//刷新正在排队等待打印的字符串的列表 } //Monitor.PulseAll(this.waiting_dataGridView); } else { MessageBox.Show("没有要标刻的数据"); this.printing_text_label.BeginInvoke(UpdatePrintingTextLabelDelegate, ""); //Monitor.Wait(this.waiting_dataGridView); } }
private void button4_Click(object sender, EventArgs e) { //获取数据库中的文本对象内容 String val = null; MarkJcz.GetTextByName("no", ref val); MessageBox.Show(val); MarkJcz.ChangeTextByName("no", "123123123123"); MarkJcz.GetTextByName("no", ref val); MessageBox.Show(val); MessageBox.Show(MarkJcz.SaveEntLibToFile().ToString()); }
private void stopMark() { if (isMarking) { //停止标刻 bool res = MarkJcz.StopMark(); if (res) { isMarking = false; markBtn.Text = "标刻"; markBtn.BackColor = System.Drawing.Color.Green; this.server_state_label.BeginInvoke(UpdateServerStateDelegate, "标刻已停止"); } else { MessageBox.Show("停止标刻失败"); this.server_state_label.BeginInvoke(UpdateServerStateDelegate, "标刻停止失败"); } } }
private void closedForm(object sender, FormClosedEventArgs e) { MarkJcz.Close(); }