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; }
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; }
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); } } }
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); }
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; }
//构造不同模式下的默认数据 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); }
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); }
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); } }