T1Control.cs 4.8 KB
using Asa;
using CodeLibrary;
using DeviceLibrary;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static Asa.eyemLib;
using static AutoCountMachine.eyemlib;

namespace AutoCountMachine
{
    public partial class T1Control : UserControl
    {
        readonly Timer t1 = new Timer();
        DeviceConfig _Config;
        public DeviceConfig Config
        {
            get { return _Config; }
            set
            {
                _Config = value;
                ioControl1.Config = value;
                configControl1.Config = value;
                axisMoveControl1.LoadData(value);
            }
        }
        public T1Control()
        {
            InitializeComponent();
            RobotManage.LoadFinishEvent += RobotManage_LoadFinishEvent;
            RoleManger.RoleChange += RoleManger_RoleChange;
            txt_p1.Text = ConfigHelper.Config.Get("findcicyle_p1", 95).ToString();
            txt_p2.Text = ConfigHelper.Config.Get("findcicyle_p2", 75).ToString();
        }

        private void RoleManger_RoleChange(object sender, Role e)
        {
            tabPage2.Controls[0].Enabled = false;
            if (e != Role.Admin)
                return;
            tabPage2.Controls[0].Enabled = true;
        }

        private void RobotManage_LoadFinishEvent(bool state, string msg)
        {
            if (state)
                RobotManage.t1Machine.TrayStringLocation += T1Machine_TrayStringLocation;
        }

        private void T1Machine_TrayStringLocation(object sender, Bitmap e)
        {
            Invoke((EventHandler<Bitmap>)delegate{
                pictureBox1.Image = e;
            }, sender, e);
        }

        private void XrayControl_Load(object sender, EventArgs e)
        {

        }

        private void btn_clamp_Click(object sender, EventArgs e)
        {
            RobotManage.electricGripper.Clamp();
        }

        private void btn_release_Click(object sender, EventArgs e)
        {
            RobotManage.electricGripper.Release();
        }

        private void btn_Reset_Click(object sender, EventArgs e)
        {
            if (RobotManage.t1Machine.runStatus != RunStatus.HomeReset)
            {
                RobotManage.t1Machine.BeginHomeReset();
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {

            ConfigHelper.Config.Set("findcicyle_p1", int.Parse(txt_p1.Text));
            ConfigHelper.Config.Set("findcicyle_p2", int.Parse(txt_p2.Text));
            ConfigHelper.Config.SaveChange();
          var (bitmap, currpos, debugtxt) = RobotManage.t1Machine.GetStringCenterA();
            var distance = (int)Common.distance(RobotManage.t1Machine.CenterPos, currpos);
            label_eyemMulFuncTool.Text = debugtxt + $"\ndistance:{distance}\nLocation:{(distance< RobotManage.t1Machine.Config.String_Offset_Range_Px?"OK":"NG")}";

            pictureBox1.Image = bitmap;
        }

        private void btn_Empty_Linerun_Click(object sender, EventArgs e)
        {
            RobotManage.t1Machine.ShelfInLine.LineRun("n",999);
        }

        private void btn_Empty_Linestop_Click(object sender, EventArgs e)
        {
            RobotManage.t1Machine.ShelfInLine.LineStop("n");
        }

        private void btn_Full_Linerun_Click(object sender, EventArgs e)
        {
            RobotManage.t1Machine.ShelfOutLine.LineRun("n",999);
        }

        private void btn_Full_Linestop_Click(object sender, EventArgs e)
        {
            RobotManage.t1Machine.ShelfOutLine.LineStop("n");
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            var (bitmap, currpos, debugtxt) = RobotManage.t1Machine.GetStringCenterB();
            var distance = (int)Common.distance(RobotManage.t1Machine.CenterPos, currpos);
            label_eyemMulFuncTool.Text = debugtxt + $"\ndistance:{distance}\nLocation:{(distance < RobotManage.t1Machine.Config.String_Offset_Range_Px ? "OK" : "NG")}";

            pictureBox1.Image = bitmap;
        }

        private void btn_closeclamp_Click(object sender, EventArgs e)
        {
            RobotManage.electricGripper.ClosePort();
        }

        private void tabPage4_Click(object sender, EventArgs e)
        {

        }

        private void btn_agvin_Click(object sender, EventArgs e)
        {
            RobotManage.wistonAgvClient.NeedEnter();
        }

        private void btn_agvout_Click(object sender, EventArgs e)
        {
            RobotManage.wistonAgvClient.NeedLeave();
        }

        private void tabPage3_Click(object sender, EventArgs e)
        {

        }
    }
}