FrmPositionTool.cs 5.3 KB

using OnlineStore.Common;
using OnlineStore.DeviceLibrary;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace OnlineStore.ACSingleStore
{
    public partial class FrmPositionTool : Form
    {
        private string PortName = "";
        private   int SlvAddr = 0;
        private string IoIp = "";
        private int IoIndex = 0;
        private System.Timers.Timer toolTimer = new System.Timers.Timer();
        public FrmPositionTool(string protName, int slvAddr,string ioIp, int ioIndex)
        {
            InitializeComponent();
            this.PortName = protName;
            this.SlvAddr = slvAddr;
            this.IoIp = ioIp;
            this.IoIndex = ioIndex;

            toolTimer.Enabled = false;
            toolTimer.Interval = 300;
            toolTimer.AutoReset = true;
            toolTimer.Elapsed += ToolTimer_Elapsed;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            ACServerManager.IsShowMsg = true;
            LogUtil.logBox = this.richTextBox1;
            //ACServerManager.richeBox = this.richTextBox1;
            formStatus(false);
            CheckForIllegalCrossThreadCalls = false;
            txtPortName.Text = PortName;
            txtAddr.Text = SlvAddr.ToString();
            txtIOIndex .Text= IoIndex.ToString();
            txtIoIp.Text = IoIp.ToString();
             

        }
        private void btnServoOn_Click(object sender, EventArgs e)
        {
            this.PortName = txtPortName.Text;
            this.SlvAddr = FormUtil.GetIntValue(txtAddr);
            bool result = ACServerManager.OpenPort(PortName);
            if (!result)
            {
                MessageBox.Show("打开串口失败!");
                return;
            }

            formStatus(true);
            ACServerManager.InitSlvAddr(PortName, SlvAddr);
            Thread.Sleep(100);
            ACServerManager.AlarmClear(PortName, SlvAddr);
            ACServerManager.ServoOn(PortName, SlvAddr);
        }

        private void btnServoOff_Click(object sender, EventArgs e)
        {
            toolTimer.Stop();
            ACServerManager.SuddenStop(PortName, SlvAddr);
            Thread.Sleep(100);
            ACServerManager.ServoOff(PortName, SlvAddr);
        }

        private void formStatus(bool p)
        {
            txtPortName.Enabled = !p;
            txtAddr.Enabled = !p;
            txtIOIndex.Enabled = !p;
            txtIoIp.Enabled = !p;
          
            btnAbsMove.Enabled = p;  
            btnSdStop.Enabled = p; 
            btnHomeMove.Enabled = p; 
            timer1.Enabled = p;
            btnServoOff.Enabled = p;
            btnServoOn.Enabled = !p; 
            btnGetActualPosition.Enabled = p; 
        }
         
        private void btnClear_Click(object sender, EventArgs e)
        {
            this.richTextBox1.Text = "";
        }

        private void btnRelMove_Click(object sender, EventArgs e)
        {
            int position = Convert.ToInt32(txtPosition.Text);
            ACServerManager.RelMove(PortName, SlvAddr, position);
        } 
        private void btnHomeMove_Click(object sender, EventArgs e)
        {
            int speed = Convert.ToInt32(txtSpeed.Text);
            ACServerManager.HomeMove(PortName, SlvAddr, speed);
        }
        private void btnSpeedMove_Click(object sender, EventArgs e)
        {
            int speed = Convert.ToInt32(txtSpeed.Text);
            ACServerManager.SpeedMove(PortName, SlvAddr, speed);
        }
        private int TargetPostion = 0;
        private void btnAbsMove_Click(object sender, EventArgs e)
        {
            int speed = Convert.ToInt32(txtSpeed.Text);
            int position = Convert.ToInt32(txtPosition.Text.Trim(), 10);
            TargetPostion = position;

            if (speed<=(0))
            {
                MessageBox.Show("请输入正确的速度");
                txtSpeed.Focus();
                return;
            }
            toolTimer.Start();
            ACServerManager.AbsMove(PortName, SlvAddr, position);
        } 
      
        private void btnSdStop_Click(object sender, EventArgs e)
        {
            toolTimer.Stop();
            ACServerManager.SuddenStop(PortName, SlvAddr);
        }



        private void btnGetActualPosition_Click(object sender, EventArgs e)
        {
            int value = ACServerManager.GetTargetPosition(PortName, SlvAddr);
            txtTargetPosition.Text = value.ToString();
            value = ACServerManager.GetActualtPosition(PortName, SlvAddr);
            txtActualPosition.Text = value.ToString();
        }
        private bool isInProcesss = false;

        private void ToolTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        { 
        }

        private int getDataIndex = 0;
        private void timer1_Tick(object sender, EventArgs e)
        {

            try
            { 
                getDataIndex++;
            }
            catch (Exception ex)
            {

            }

            try
            { 
            }
            catch (Exception ex)
            {
            }
        }
         

    }
}