private void button_Modbus_Send_Click(object sender, EventArgs e) { byte Reg; uint Val; if (textBox_Modbus_Reg.Text.Length == 0) { Reg = 0; } else { Reg = Convert.ToByte(textBox_Modbus_Reg.Text); } if (textBox_Modbus_Val.Text.Length == 0) { Val = 0; } else { Val = Convert.ToUInt32(textBox_Modbus_Val.Text); } mdbs.Send_03((Modbus.REG)Reg, 1, Val); }
private void CmdList_Execute(string cmd, int[] args_value, int args_num) { Dbg.WriteLine("[%]ExeCMD. Cnt:%|% Cmd:% ArgsNum:% ArgsVal:%", DateTime.Now.ToString("yy/MM/dd HH:mm:ss"), cmd_list_cnt, cmd_list_total, cmd_list_name[cmd_list_cnt], args_num, cmd_list_args[cmd_list_cnt].value[0]); string lock_master = "???"; if ((File.Exists(path_lock) == true) && ((cmd == CMD.TEST) || (cmd == CMD.LOCK) || (cmd == CMD.UNLOCK) || (cmd == CMD.MOUSE_SET) || (cmd == CMD.MOUSE_LEFT) || (cmd == CMD.MOUSE_DLEFT) || (cmd == CMD.MOUSE_RIGHT) || (cmd == CMD.MOUSE_MIDDLE) || (cmd == CMD.MOUSE_ROLLUP) || (cmd == CMD.MOUSE_ROLLDOWN))) { StreamReader sr = new StreamReader(path_lock); lock_master = sr.ReadLine(); sr.Close(); if (lock_master != Param.path_ini_file) //不属于自己的锁,则要等待别的kmouse解锁 { fm.queue_message.Enqueue("Wait [" + lock_master + "] unlock..."); int wait_cnt = 0; timer_execute.Stop(); while (true) { if (button_run.Text == "Run") { break; } if (File.Exists(path_lock) == true) { Dbg.WriteLine("wait lock:% done...", wait_cnt); wait_cnt++; Thread.Sleep(1000); } else { fm.queue_message.Enqueue("Lock [" + lock_master + "] is free at " + wait_cnt.ToString()); break; } } timer_execute.Start(); } } if (cmd == CMD.TEST) { if (lock_master != "???") { fm.queue_message.Enqueue("Get lock: " + lock_master); } Dbg.WriteLine("I am CMD Test"); for (int i = 0; i < args_num; i++) { Dbg.WriteLine("\t Args:%", args_value[i]); } } else if (cmd == CMD.BOOT_PC) { //MessageBox.Show("Run Boot!"); mdbs.Send_03(Modbus.REG.MOVEMENT, 1, keyQ.MOUSE.MOVEMENT.BOOT); } else if (cmd == CMD.SHUTDOWN_PC) { //MessageBox.Show("Run Shutdown!"); mdbs.Send_03(Modbus.REG.MOVEMENT, 1, keyQ.MOUSE.MOVEMENT.SHUTDOWN); } else if (cmd == CMD.AUOTPOWER_PC) { //MessageBox.Show("Run AuotPower!"); mdbs.Send_03(Modbus.REG.MOVEMENT, 1, keyQ.MOUSE.MOVEMENT.AUTOPOWER); } else if (cmd == CMD.IO_HIGH) { //MessageBox.Show("Run IO_HIGH!"); mdbs.Send_03(Modbus.REG.MOVEMENT, 1, keyQ.MOUSE.MOVEMENT.IO_High); } else if (cmd == CMD.IO_LOW) { //MessageBox.Show("Run IO_LOW!"); mdbs.Send_03(Modbus.REG.MOVEMENT, 1, keyQ.MOUSE.MOVEMENT.IO_Low); } else if (cmd == CMD.IDENTIFY) { mdbs.Send_03(Modbus.REG.IDENTIFY, 1, 0); } else if (cmd == CMD.DELAY) { int XR = args_value[0]; timer_execute.Stop(); int delay_cnt = 0; while (true) { if (button_run.Text == "Run") { break; } delay_cnt++; fm.queue_message.Enqueue("Delay: " + delay_cnt.ToString() + "/" + XR.ToString()); Thread.Sleep(1000); if (delay_cnt == XR) { break; } } fm.queue_message.Enqueue("Delay done"); timer_execute.Start(); } else if (cmd == CMD.BAT) { System.Diagnostics.ProcessStartInfo pinfo = new System.Diagnostics.ProcessStartInfo(); pinfo.UseShellExecute = true; pinfo.FileName = Param.ini.bat_path_string; //启动进程 System.Diagnostics.Process p = System.Diagnostics.Process.Start(pinfo); } else if (cmd == CMD.LOCK) { if (File.Exists(path_lock) == false) { StreamWriter sw = File.CreateText(path_lock); sw.WriteLine(Param.path_ini_file); sw.Close(); } } else if (cmd == CMD.UNLOCK) { if (File.Exists(path_lock) == true) { File.Delete(path_lock); } } else if (cmd == CMD.XDELAY) { int XR = args_value[0]; int YR = args_value[1]; Random rd = new Random(); int data = rd.Next(XR, YR); Dbg.WriteLine("XDelay from % ~ %, at %", XR, YR, data); timer_execute.Stop(); int delay_cnt = 0; while (true) { if (button_run.Text == "Run") { break; } delay_cnt++; fm.queue_message.Enqueue("XDelay: " + delay_cnt.ToString() + "/" + data.ToString()); Thread.Sleep(1000); if (delay_cnt == data) { break; } } fm.queue_message.Enqueue("XDelay done"); timer_execute.Start(); } else if (cmd == CMD.AGAIN) { if (cycle_cnt + 1 < cycle_total) { cmd_list_cnt = -1; cycle_cnt++; } } else if (cmd == CMD.CLOSE) { Thread.Sleep(100); fm.Close(); } else if (cmd == CMD.MOUSE_SET) { int XR = args_value[0] * 1000 / Screen.PrimaryScreen.Bounds.Width; int YR = args_value[1] * 1000 / Screen.PrimaryScreen.Bounds.Height; Dbg.WriteLine("MouseSet XR:% YR:%", XR, YR); mc.Mouse_AbsoluteMove(XR, YR); } else if (cmd == CMD.MOUSE_LEFT) { mc.Mouse_Single_LeftClick(); } else if (cmd == CMD.MOUSE_DLEFT) { mc.Mouse_Single_DoubleClick(); } else if (cmd == CMD.MOUSE_RIGHT) { mc.Mouse_RightClick(); } else if (cmd == CMD.MOUSE_MIDDLE) { mc.Mouse_MiddleClick(); } else if (cmd == CMD.MOUSE_ROLLUP) { mc.Mouse_WheelMove(100); } else if (cmd == CMD.MOUSE_ROLLDOWN) { mc.Mouse_WheelMove(-100); } else { //MessageBox.Show("Unknown CMD!"); Dbg.WriteLine("##Unknown CMD!"); } }