示例#1
0
        public void OnGetPrinterSetting(ref AllParam ss)
        {
            //ushort[] validnum = new ushort[CoreConst.MAX_HEAD_NUM * maxColor];
            //byte[] fwData = new byte[CoreConst.MAX_HEAD_NUM * maxColor * 3];

            ss.NozzleOverlap = SaveData();
            ss.Preference.CloseNozzleSetMode = (byte)comboBox_model.SelectedIndex;
            curNO = ss.NozzleOverlap;
        }
示例#2
0
 public void OnPrinterSettingChange(AllParam ss)
 {
     SynchFromCalib(ref ss);
     curNO        = ss.NozzleOverlap;
     CurrentModel = (CloseColorNozzleModelEnum)ss.Preference.CloseNozzleSetMode;
     comboBox_model.SelectedIndex = (int)ss.Preference.CloseNozzleSetMode;
     ss.NozzleOverlap             = GetDefaultNozzleOverlap(CurrentModel);
     LoadData(ss.NozzleOverlap);
     loadDataDone = true;
 }
示例#3
0
 private void comboBox_model_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (comboBox_model.SelectedIndex >= 0)
     {
         CurrentModel = (CloseColorNozzleModelEnum)comboBox_model.SelectedIndex;
         flowLayoutPanel1.Controls.Clear();
         BuildLayoutPanel();
         if (loadDataDone)
         {
             SNozzleOverlap sNO = GetDefaultNozzleOverlap(CurrentModel);
             LoadData(sNO);
         }
     }
 }
示例#4
0
 private bool SetOverLapCheckData(SNozzleOverlap fwData)
 {
     bool[] rets = new bool[5];
     rets[0] = UpdatePS(PrinterSettingCmd.OverLapTotalNozzle, fwData.OverLapTotalNozzle);
     rets[1] = UpdatePS(PrinterSettingCmd.OverLapUpWasteNozzle, fwData.OverLapUpWasteNozzle);
     rets[2] = UpdatePS(PrinterSettingCmd.OverLapDownWasteNozzle, fwData.OverLapDownWasteNozzle);
     rets[3] = UpdatePS(PrinterSettingCmd.OverLapUpPercent, fwData.OverLapUpPercent);
     rets[4] = UpdatePS(PrinterSettingCmd.OverLapDownPercent, fwData.OverLapDownPercent);
     for (int i = 0; i < 5; i++)
     {
         if (!rets[i])
         {
             return(false);
         }
     }
     return(true);
 }
示例#5
0
        private void SynchFromCalib(ref AllParam ss)
        {
            int            m_ColorNum             = CoreInterface.GetLayoutColorNum();
            int            m_ColorNumAndColumnNum = m_ColorNum * m_HorColumnNum;
            SNozzleOverlap n      = ss.NozzleOverlap;
            int            rowNum = CoreInterface.GetRowNum();

            if (rowNum > 1)
            {
                rowNum--;
            }
            int MaxColorNum = 32;//SNozzleOverlap结构体为32色*32组

            for (int i = 0; i < m_ColorNumAndColumnNum; i++)
            {
                for (int j = 0; j < rowNum; j++)
                {
                    n.OverLapTotalNozzle[j * MaxColorNum + i] = (ushort)(ss.PrinterSetting.sCalibrationSetting.nVerticalArray[(j + 1) * m_ColorNumAndColumnNum + i]);
                }
            }
            ss.NozzleOverlap = n;
        }
示例#6
0
        //构造不同模式下的默认数据
        private SNozzleOverlap GetDefaultNozzleOverlap(CloseColorNozzleModelEnum CurrentModel)
        {
            SNozzleOverlap result                 = curNO;
            int            maxColorNum            = 32;
            int            m_ColorNum             = CoreInterface.GetLayoutColorNum();
            int            m_ColorNumAndColumnNum = m_ColorNum * m_HorColumnNum;

            for (int i = 0; i < RowNum; i++)
            {
                for (int j = 0; j < m_ColorNumAndColumnNum; j++)
                {
                    switch (CurrentModel)
                    {
                    case CloseColorNozzleModelEnum.Easy:    //简单模式(默认切点不羽化)
                        result.OverLapUpWasteNozzle[i * maxColorNum + j]   = result.OverLapTotalNozzle[i * maxColorNum + j];
                        result.OverLapDownWasteNozzle[i * maxColorNum + j] = 0;
                        result.OverLapUpPercent[i * maxColorNum + j]       = 50;
                        result.OverLapDownPercent[i * maxColorNum + j]     = 50; break;

                    case CloseColorNozzleModelEnum.Feather:    //羽化模式(默认羽化)
                        result.OverLapUpWasteNozzle[i * maxColorNum + j]   = 0;
                        result.OverLapDownWasteNozzle[i * maxColorNum + j] = 0;
                        result.OverLapUpPercent[i * maxColorNum + j]       = 0;
                        result.OverLapDownPercent[i * maxColorNum + j]     = 0;
                        break;

                    case CloseColorNozzleModelEnum.Advanced:    //高级模式(返回原值)
                        break;

                    default: break;
                    }
                }
            }

            return(result);
        }
示例#7
0
        int maxColor = 32;//接口定义最大颜色数为 32
        private SNozzleOverlap SaveData()
        {
            SNozzleOverlap sNO = new SNozzleOverlap(null);

            try
            {
                for (int i = 0; i < RowNum; i++)
                {
                    ushort[] GetValue         = new ushort[maxColor];
                    ushort[] upCNValue        = new ushort[maxColor];
                    ushort[] downCNValue      = new ushort[maxColor];
                    ushort[] upPercentValue   = new ushort[maxColor];
                    ushort[] downPercentValue = new ushort[maxColor];

                    int   upIdx       = 0;
                    int   downIdx     = 0;
                    int   upCNIdx     = 0;
                    int   downCNIdx   = 0;
                    int   upPercent   = 0;
                    int   downPercent = 0;
                    Panel panel       = (Panel)flowLayoutPanel1.Controls[i];
                    List <LayoutColorNameEnum> LayoutColorNameEnumList = LayoutColorNameEnumListList[i];

                    //for (int j = panel.Controls.Count - 1; j >= 0; j--)
                    for (int j = 0; j < panel.Controls.Count; j++)
                    {
                        switch (CurrentModel)
                        {
                        case CloseColorNozzleModelEnum.Easy:
                        {
                            if (panel.Controls[j].Tag == "OverLap")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                GetValue[GetValueIdx(downIdx, i)] = (ushort)num.Value;


                                upCNValue[GetValueIdx(downIdx, i)]        = (ushort)num.Value;
                                downCNValue[GetValueIdx(downIdx, i)]      = (ushort)0;
                                upPercentValue[GetValueIdx(downIdx, i)]   = (ushort)50;
                                downPercentValue[GetValueIdx(downIdx, i)] = (ushort)50;

                                downIdx++;
                            }
                        }
                        break;

                        case CloseColorNozzleModelEnum.Feather:
                        {
                            if (panel.Controls[j].Tag == "OverLap")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                GetValue[GetValueIdx(downIdx, i)] = (ushort)num.Value;


                                upCNValue[GetValueIdx(downIdx, i)]        = 0;
                                downCNValue[GetValueIdx(downIdx, i)]      = (ushort)0;
                                downPercentValue[GetValueIdx(downIdx, i)] = (ushort)0;

                                downIdx++;
                            }
                            else if (panel.Controls[j].Tag == "UpPercent")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                upPercentValue[GetValueIdx(upPercent, i)] = (ushort)num.Value;
                                upPercent++;
                            }
                        }
                        break;

                        case CloseColorNozzleModelEnum.Advanced:
                        {
                            if (panel.Controls[j].Tag == "OverLap")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                GetValue[GetValueIdx(downIdx, i)] = (ushort)num.Value;
                                downIdx++;
                            }
                            else if (panel.Controls[j].Tag == "UpCN")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                upCNValue[GetValueIdx(upCNIdx, i)] = (ushort)num.Value;
                                upCNIdx++;
                            }
                            else if (panel.Controls[j].Tag == "DownCN")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                downCNValue[GetValueIdx(downCNIdx, i)] = (ushort)num.Value;
                                downCNIdx++;
                            }
                            else if (panel.Controls[j].Tag == "UpPercent")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                upPercentValue[GetValueIdx(upPercent, i)] = (ushort)num.Value;
                                upPercent++;
                            }
                            else if (panel.Controls[j].Tag == "DownPercent")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                downPercentValue[GetValueIdx(downPercent, i)] = (ushort)num.Value;
                                downPercent++;
                            }
                        }
                        break;

                        default:
                            throw new ArgumentOutOfRangeException();
                        }
                    }

                    //for (int j = 0; j < GetValue.Length; j++)
                    //{
                    //    byte[] tempByte = new byte[2];

                    //    tempByte[0] = (byte)downValue[j];
                    //    tempByte[1] = (byte)upValue[j];
                    //    GetValue[j] = (ushort)BitConverter.ToInt16(tempByte, 0);

                    //    //原研二代码为:    fwData[i * maxColor * 3 + j * 3] = (byte)upValue[j];
                    //    //    fwData[i * maxColor * 3 + j * 3 + 1] = (byte)0;
                    //    //    fwData[i * maxColor * 3 + j * 3 + 2] = (byte)0;
                    //}

                    Array.Copy(GetValue, 0, sNO.OverLapTotalNozzle, i * maxColor, maxColor);
                    Array.Copy(upCNValue, 0, sNO.OverLapUpWasteNozzle, i * maxColor, maxColor);
                    Array.Copy(downCNValue, 0, sNO.OverLapDownWasteNozzle, i * maxColor, maxColor);
                    Array.Copy(upPercentValue, 0, sNO.OverLapUpPercent, i * maxColor, maxColor);
                    Array.Copy(downPercentValue, 0, sNO.OverLapDownPercent, i * maxColor, maxColor);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return(sNO);
        }
示例#8
0
        private void LoadData(SNozzleOverlap bs)
        {
            try
            {
                //bool isFW = false;
                //byte[] fwData = new byte[CoreConst.MAX_HEAD_NUM * maxColor * 2];
                //原研二代码为:if (!loadDataDone)
                //{
                //    if (EpsonLCD.GetOverLapCheckData(ref fwData))
                //    {
                //        isFW = true;
                //        btnOverLapCheck.Visible = true;
                //    }
                //    else
                //    {
                //        isFW = false;
                //        btnOverLapCheck.Visible = false;
                //    }
                //}

                if (true)//原研二代码为:(Misc.IsNewCalibration)
                {
                    isFW = false;
                    btnOverLapCheck.Visible = false;
                    btnApply.Visible        = false;
                }

                for (int i = 0; i < RowNum; i++)
                {
                    ushort[] GetValue = new ushort[maxColor];
                    byte[]   RowData  = new byte[maxColor * 3];
                    int[]    upValue  = new int[maxColor];
                    //int[] downValue = new int[maxColor];
                    int[] upCNValue        = new int[maxColor];
                    int[] downCNValue      = new int[maxColor];
                    int[] upPercentValue   = new int[maxColor];
                    int[] downPercentValue = new int[maxColor];

                    if (isFW)
                    {
                        //原研二代码为:Array.Copy(fwData, i * maxColor * 3, RowData, 0, maxColor * 3);
                        for (int j = 0; j < maxColor; j++)
                        {
                            //upValue[j] = RowData[j * 2];
                            //downValue[j] = RowData[j * 2 + 1];
                            upValue[j] = RowData[j * 3];
                            //downValue[j] = RowData[j * 3];
                        }
                    }
                    else
                    {
                        Array.Copy(bs.OverLapTotalNozzle, i * maxColor, GetValue, 0, maxColor);
                        for (int j = 0; j < GetValue.Length; j++)
                        {
                            byte[] tempByte = BitConverter.GetBytes(GetValue[j]);

                            upValue[j] = tempByte[0];
                            //downValue[j] = tempByte[0];
                        }
                    }

                    //上
                    GetValue = new ushort[maxColor];
                    Array.Copy(bs.OverLapUpWasteNozzle, i * maxColor, GetValue, 0, maxColor);
                    for (int j = 0; j < GetValue.Length; j++)
                    {
                        upCNValue[j] = GetValue[j];
                    }

                    //下
                    GetValue = new ushort[maxColor];
                    Array.Copy(bs.OverLapDownWasteNozzle, i * maxColor, GetValue, 0, maxColor);
                    for (int j = 0; j < GetValue.Length; j++)
                    {
                        downCNValue[j] = GetValue[j];
                    }

                    //上百分比
                    GetValue = new ushort[maxColor];
                    Array.Copy(bs.OverLapUpPercent, i * maxColor, GetValue, 0, maxColor);
                    for (int j = 0; j < GetValue.Length; j++)
                    {
                        upPercentValue[j] = GetValue[j];
                    }

                    //下百分比
                    GetValue = new ushort[maxColor];
                    Array.Copy(bs.OverLapDownPercent, i * maxColor, GetValue, 0, maxColor);
                    for (int j = 0; j < GetValue.Length; j++)
                    {
                        downPercentValue[j] = GetValue[j];
                    }

                    int   upIdx       = 0;
                    int   downIdx     = 0;
                    int   upCNIdx     = 0;
                    int   downCNIdx   = 0;
                    int   upPercent   = 0;
                    int   downPercent = 0;
                    Panel panel       = (Panel)flowLayoutPanel1.Controls[i];
                    List <LayoutColorNameEnum> LayoutColorNameEnumList = LayoutColorNameEnumListList[i];

                    //for (int j = panel.Controls.Count - 1; j >= 0; j--)
                    for (int j = 0; j < panel.Controls.Count; j++)
                    {
                        switch (CurrentModel)
                        {
                        case CloseColorNozzleModelEnum.Easy:
                        {
                            if (panel.Controls[j].Tag == "OverLap")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                num.Value = upValue[GetValueIdx(downIdx, i)];
                                downIdx++;
                            }
                        }
                        break;

                        case CloseColorNozzleModelEnum.Feather:
                        {
                            if (panel.Controls[j].Tag == "OverLap")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                num.Value = upValue[GetValueIdx(downIdx, i)];
                                downIdx++;
                            }
                            else if (panel.Controls[j].Tag == "UpPercent")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                num.Value = upPercentValue[GetValueIdx(upPercent, i)];
                                upPercent++;
                            }
                        }
                        break;

                        case CloseColorNozzleModelEnum.Advanced:
                        {
                            if (panel.Controls[j].Tag == "OverLap")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                num.Value = upValue[GetValueIdx(downIdx, i)];
                                downIdx++;
                            }
                            else if (panel.Controls[j].Tag == "UpCN")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                num.Value = upCNValue[GetValueIdx(upCNIdx, i)];
                                upCNIdx++;
                            }
                            else if (panel.Controls[j].Tag == "DownCN")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                num.Value = downCNValue[GetValueIdx(downCNIdx, i)];
                                downCNIdx++;
                            }
                            else if (panel.Controls[j].Tag == "UpPercent")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                num.Value = upPercentValue[GetValueIdx(upPercent, i)];
                                upPercent++;
                            }
                            else if (panel.Controls[j].Tag == "DownPercent")
                            {
                                NumericUpDown num = (NumericUpDown)panel.Controls[j];
                                num.Value = downPercentValue[GetValueIdx(downPercent, i)];
                                downPercent++;
                            }
                        }
                        break;

                        default:
                            throw new ArgumentOutOfRangeException();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }