FrmLabelEdit.cs 5.9 KB
using CodeLibrary;
using DL.CV;
using OnlineStore.Common;
using OnlineStore.DeviceLibrary;
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using JsonHelper = OnlineStore.Common.JsonHelper;

namespace OnlineStore.XLRStore
{
    public partial class FrmLabelEdit : Form
    {
        public FrmLabelEdit()
        {
            InitializeComponent();
            CheckForIllegalCrossThreadCalls = false;
            comboBox1.Items.Add($"A侧相机");
            comboBox1.Items.Add($"B侧相机");
            if (comboBox1.Items.Count > 0)
                comboBox1.SelectedIndex = 0;
        }
        private void btnOpenImg_Click(object sender, EventArgs e)
        {
            OpenFileDialog openfile = new OpenFileDialog();
            //初始显示文件目录
            //openfile.InitialDirectory = @"";
            openfile.Title = "请选择图片";
            //过滤文件类型
            openfile.Filter = "图像|*.bmp";
            if (DialogResult.OK == openfile.ShowDialog())
            {
                //将选择的文件的全路径赋值给文本框
                //textBox1.Text = openfile.FileName;
            }
        }
        string filename = "";
        List<CodeInfo> codeinfo = null;
        private void btnAcquire_Click(object sender, EventArgs e)
        {
            Task.Factory.StartNew(delegate
            {
                if (comboBox1.SelectedIndex == 0)
                {
                    (codeinfo, filename) = CodeManager.CameraScan(new List<string> { StoreManager.XLRStore.inputEquip.Config.CameraNameList_FeedA });
                }
                else if (comboBox1.SelectedIndex == 1)
                {
                    (codeinfo, filename) = CodeManager.CameraScan(new List<string> { StoreManager.XLRStore.inputEquip.Config.CameraNameList_FeedB });
                }
                if (string.IsNullOrEmpty(filename)) return;
                pictureBox1.Image = new Bitmap(filename);
            });
        }

        LabelParam labelparam = new LabelParam();
        private void btnCalculate_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(filename)) return;
            labelparam.BitmapFilename = filename;
            labelparam.LabelContent = new LabelContent();
            labelparam.LabelContent.codeInfos = codeinfo;
            labelparam.LabelContent.PN = textBox2.Text;
            labelparam.TrayCenterInImg_X = int.Parse(txtX.Text);
            labelparam.TrayCenterInImg_Y = int.Parse(txtY.Text);
            labelparam.LabelInImgAngle = int.Parse(txtLabel_R_Angle_Diff.Text);
            labelparam.RelativeAngle = int.Parse(txtRelativeAngle.Text);
            (string resFile, int codeAngle, int labelAngle, int needRound) res = LabelManager.CalcLabelAngle(labelparam, true);
            lblCodePos.Text = $"二维码角度:{res.codeAngle}°";
            lblAngle.Text = $"旋转角度:{res.needRound}°";
            lblLabelAngle.Text = $"标签角度:{res.labelAngle}°";
            pictureBox2.Image = new Bitmap(res.resFile);
            textBox1.Text = JsonHelper.SerializeObject(codeinfo);
        }

        private void load(int side = 0)
        {
            if (side == 0)
            {
                txtX.Text = ConfigAppSettings.GetValue(Setting_Init.TrayCenterInImg_X_CamA,"2600");
                txtY.Text = ConfigAppSettings.GetValue(Setting_Init.TrayCenterInImg_Y_CamA,"1700");
                txtLabel_R_Angle_Diff.Text = ConfigAppSettings.GetValue(Setting_Init.LabelInImgAngle_CamA,"190");
                txtRelativeAngle.Text = ConfigAppSettings.GetValue(Setting_Init.RelativeAngle_CamA,"150");
            }
            else if (side == 1)
            {
                txtX.Text = ConfigAppSettings.GetValue(Setting_Init.TrayCenterInImg_X_CamB,"2600");
                txtY.Text = ConfigAppSettings.GetValue(Setting_Init.TrayCenterInImg_Y_CamB,"1700");
                txtLabel_R_Angle_Diff.Text = ConfigAppSettings.GetValue(Setting_Init.LabelInImgAngle_CamB,"190");
                txtRelativeAngle.Text = ConfigAppSettings.GetValue(Setting_Init.RelativeAngle_CamB,"150");
            }
            else
                return;
            //labelparam.TrayCenterInImg_X = int.Parse(txtX.Text);
            //labelparam.TrayCenterInImg_Y = int.Parse(txtY.Text);
            //labelparam.LabelInImgAngle = int.Parse(txtLabel_R_Angle_Diff.Text);
            //labelparam.RelativeAngle = int.Parse(txtRelativeAngle.Text);
        }
        private void save(int side = 0)
        {
            if (side == 0)
            {
                ConfigAppSettings.SaveValue(Setting_Init.TrayCenterInImg_X_CamA, txtX.Text);
                ConfigAppSettings.SaveValue(Setting_Init.TrayCenterInImg_Y_CamA, txtY.Text);
                ConfigAppSettings.SaveValue(Setting_Init.LabelInImgAngle_CamA, txtLabel_R_Angle_Diff.Text);
                ConfigAppSettings.SaveValue(Setting_Init.RelativeAngle_CamA, txtRelativeAngle.Text);
            }
            else if (side == 1)
            {
                ConfigAppSettings.SaveValue(Setting_Init.TrayCenterInImg_X_CamB, txtX.Text);
                ConfigAppSettings.SaveValue(Setting_Init.TrayCenterInImg_Y_CamB, txtY.Text);
                ConfigAppSettings.SaveValue(Setting_Init.LabelInImgAngle_CamB, txtLabel_R_Angle_Diff.Text);
                ConfigAppSettings.SaveValue(Setting_Init.RelativeAngle_CamB, txtRelativeAngle.Text);
            }
            else
                return;
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            load(comboBox1.SelectedIndex);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            save(comboBox1.SelectedIndex); 
        }
    }
}