Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 public override bool TearDownTemperature()
 {
     lock (FloorLock[DataMember.FloorNum])
     {
         Log.LogInfo("Close TEC Temperature...");
         foreach (var seat in Seats)
         {
             CtrlCom.CloseTecTemperature(seat);
         }
         return(true);
     }
 }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
 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);
         }
     }
 }
Ejemplo n.º 7
0
        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);
            }
        }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
        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);
            }
        }