예제 #1
0
        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);
        }
예제 #2
0
        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!");
            }
        }