public override Dictionary <int, List <KeyValuePair <string, string> > > ReadDataSet(string type) { var boardName = DataMember.BoardName; var floorNum = DataMember.FloorNum; var boardNum = DataMember.BoardNum; lock (FloorLock[floorNum]) { Log.LogInfo("Read Data..."); double ovenTemperature = 0; if (DataMember.OvenTempCheck) { ovenTemperature = OvenControl.GetBoardTemperature(floorNum, boardNum); } var iccDac = ReadIcc(); int[] mpdDac, currentDac; CtrlCom.ReadCurrentDacAndMpdDac(out currentDac, out mpdDac); var ret = new Dictionary <int, List <KeyValuePair <string, string> > >(); foreach (var seat in Seats) { var seatIndex = seat - 1; var entry = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("PCName", Environment.MachineName), new KeyValuePair <string, string>("BoardName", boardName), new KeyValuePair <string, string>("Floor", floorNum.ToString()), new KeyValuePair <string, string>("Seat", seat.ToString()), new KeyValuePair <string, string>("BoardName", boardName), new KeyValuePair <string, string>("CH", currentDac[seatIndex * 4].ToString()), new KeyValuePair <string, string>("MPD", mpdDac[seatIndex * 4].ToString()), new KeyValuePair <string, string>("ICC", iccDac[seatIndex].ToString("F2")) }; if (DataMember.OvenTempCheck) { entry.Add(new KeyValuePair <string, string>("OVEN_Temperature", ovenTemperature.ToString("F2"))); } SeatInit info; if (TempInit.GetCalData(boardName, seat, out info)) { entry.Add(new KeyValuePair <string, string>("DAC", info.CurrentDac0.ToString("F2"))); entry.Add(new KeyValuePair <string, string>("ICC0", info.Icc0.ToString("F2"))); entry.Add(new KeyValuePair <string, string>("LDI", BiConvert.ConvertToLdi(iccDac[seatIndex], info.Icc0, DataMember.DeltaIcck, DataMember.DeltaIccb).ToString("F2"))); } ret[seat] = entry; } return(ret); } }
public override bool TearDownTemperature() { lock (FloorLock[DataMember.FloorNum]) { Log.LogInfo("Close TEC Temperature..."); foreach (var seat in Seats) { CtrlCom.CloseTecTemperature(seat); } return(true); } }
public override bool SetUpTemperature(double target) { lock (FloorLock[DataMember.FloorNum]) { Log.LogInfo("Set TEC Temperature..."); foreach (var seat in Seats) { CtrlCom.SetTecTemperatureDac(seat, BiConvert.ConvertTempToDac(DataMember.TargetTecTemperature, DataMember.SetTemperaturek, DataMember.SetTemperatureb)); } return(true); } }
public override bool DisableBoard() { var floorNum = DataMember.FloorNum; lock (FloorLock[floorNum]) { Log.LogInfo("Disable Board Start..."); CtrlCom.EnableBiasSync(true); SetSyncBias(0); CtrlCom.EnableBiasSync(false); CloseDc(); Log.LogInfo("Disable Board Finish..."); return(true); } }
public override bool EnableBoard() { var floorNum = DataMember.FloorNum; lock (FloorLock[floorNum]) { Log.LogInfo("Enable Board Start..."); OpenDc(); ReadInitialIcc(Seats); CtrlCom.EnableBiasSync(true); CalculateTargetBias(); SaveCurrentInfo(); CtrlCom.EnableBiasSync(false); SetCalBias(); Log.LogInfo("Enable Board Finish..."); return(true); } }
protected override void SetCalBias( ) { Log.LogInfo("Set Target Bias ..."); foreach (var seat in Seats) { var seatIndex = seat - 1; CtrlCom.SelectProduct(seatIndex); for (var channel = 0; channel < 4; channel++) { var setBias = CalBias[seat * 100 + channel] / 2; SetSingleBiasByChannel(channel, setBias); Log.LogInfo("SN:" + SnDict[seat] + "\tCHANNEL:" + channel + "\tSETBIAS:" + setBias); } Thread.Sleep(1000); for (var channel = 0; channel < 4; channel++) { var setBias = CalBias[seat * 100 + channel]; SetSingleBiasByChannel(channel, setBias); Log.LogInfo("SN:" + SnDict[seat] + "\tCHANNEL:" + channel + "\tSETBIAS:" + setBias); } } }
public override void CatchException(int seat) { var floorNum = DataMember.FloorNum; lock (FloorLock[floorNum]) { var seatIndex = seat - 1; CtrlCom.SelectProduct(seatIndex); foreach (var bias in new[] { 53, 0 }) { for (var channel = 0; channel < 4; channel++) { if (SetSingleBiasByChannel(channel, bias)) { Log.LogInfo("SN:" + SnDict[seat] + "\tCHANNEL:" + channel + "\tSETBIAS:" + bias); } } Thread.Sleep(1000); } RemoveSeat(seat); CtrlCom.EnableVoltage(Seats, true); } }
public override Dictionary <int, List <KeyValuePair <string, string> > > ReadDataSet(string type) { var floorNum = DataMember.FloorNum; var boardName = DataMember.BoardName; var ret = new Dictionary <int, List <KeyValuePair <string, string> > >(); Log.LogInfo("read oven temperature."); lock (FloorLock[floorNum]) { double oventemperature = 0; if (DataMember.OvenTempCheck) { oventemperature = OvenControl.GetBoardTemperature(DataMember.FloorNum, DataMember.BoardNum); } int[] channelArray; int[] mpdArray; CtrlCom.ReadCurrentDacAndMpdDac(out channelArray, out mpdArray); var icc = ReadIcc(); var itecSet = CtrlCom.ReadItecDac(); int[] therTempSet; int t1Set; int t2Set; CtrlCom.ReadTecTemperatureDac(out therTempSet, out t1Set, out t2Set); foreach (var seat in Seats) { var seatIndex = seat - 1; var record = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("PCName", Environment.MachineName), new KeyValuePair <string, string>("Floor", DataMember.FloorNum.ToString()), new KeyValuePair <string, string>("BoardName", DataMember.BoardNum.ToString()), new KeyValuePair <string, string>("Seat", seat.ToString()), new KeyValuePair <string, string>("OVEN_Temperature", oventemperature.ToString("F1")), new KeyValuePair <string, string>("ICC", icc[seatIndex].ToString("F2")), new KeyValuePair <string, string>("ITEC", BiConvert.ConvertDacToITec(itecSet[seatIndex], DataMember.ReadIteck, DataMember.ReadItecb).ToString("F2")), new KeyValuePair <string, string>("TEC_Temperature", BiConvert.ConvertDacToTemp(therTempSet[seatIndex]).ToString("F2")), new KeyValuePair <string, string>("T1", BiConvert.ConvertDacToTemp(t1Set).ToString("F2")), new KeyValuePair <string, string>("T2", BiConvert.ConvertDacToTemp(t2Set).ToString("F2")) }; SeatInit info; if (TempInit.GetCalData(boardName, seat, out info)) { record.Add(new KeyValuePair <string, string>("DAC", info.CurrentDac0.ToString("F2"))); record.Add(new KeyValuePair <string, string>("ICC0", info.Icc0.ToString("F2"))); record.Add(new KeyValuePair <string, string>("LDI", BiConvert.ConvertToLdi(icc[seatIndex], info.Icc0, DataMember.DeltaIcck, DataMember.DeltaIccb).ToString("F2"))); } for (var channel = 0; channel < 4; channel++) { record.Add(new KeyValuePair <string, string>("Ch" + channel, channelArray[seatIndex * 4 + channel].ToString())); record.Add(new KeyValuePair <string, string>("MPD" + channel, mpdArray[seatIndex * 4 + channel].ToString())); } ret[seat] = record; } return(ret); } }
protected override Dictionary <int, bool> PreCheckConnections() { var floorNum = DataMember.FloorNum; var boardNum = DataMember.BoardNum; Log.LogInfo("Check Connetions..."); var ret = new Dictionary <int, bool>(); foreach (var seat in Seats) { ret[seat] = true; } Log.LogInfo(GetVersion()); SetOvenTemperature(); lock (FloorLock[floorNum]) { OpenDc(); CtrlCom.EnableBiasSync(true); SetSyncBias(0); Thread.Sleep(1000); SetSyncBias(DataMember.ConnectCheckBias); Thread.Sleep(1000); var icc = ReadIcc(); SetSyncBias(0); CtrlCom.EnableBiasSync(false); CloseDc(); Log.LogInfo("Check Icc & Tec..."); foreach (var seat in Seats) { int seatIndex = seat - 1; ret[seat] = (icc[seatIndex] > DataMember.ConnectIccRangeMin && icc[seatIndex] < DataMember.ConnectIccRangeMax); Log.LogInfo("SEAT:" + seat); Log.LogInfo("ICC\tSPEC(<min>,<max>)\tValue:<value>".Replace("<min>", DataMember.ConnectIccRangeMin.ToString()).Replace("<max>", DataMember.ConnectIccRangeMax.ToString()).Replace("<value>", icc[seatIndex].ToString(CultureInfo.InvariantCulture))); } } if (ret.ContainsValue(false)) { return(ret); } if (DataMember.OvenTempCheck) { Log.LogInfo("Check Oven Temperature..."); var start = DateTime.Now; do { var currentTemperature = OvenControl.GetBoardTemperature(floorNum, boardNum); Log.LogInfo("Oven Temperature=" + currentTemperature); if (currentTemperature > DataMember.CheckTemperature) { Log.LogInfo("Oven Temperature Check Pass..."); return(ret); } Thread.Sleep(1000); } while (DateTime.Now.Subtract(start).TotalMinutes < DataMember.OvenTimeout); throw new Exception(" Oven Temperature check fail!"); } else { return(ret); } }