Esempio n. 1
0
        // Fridge
        public bool StoreTempFridge(string SerialRFID, tempInfo tempInfoToStore)
        {
            switch (useDb)
            {
            case dbUsedType.db_SqlLite: return(sqliteProvider.StoreTempFridge(SerialRFID, tempInfoToStore));

            case dbUsedType.db_SqlServer: return(sqlServerProvider.StoreTempFridge(SerialRFID, tempInfoToStore));
            }
            return(false);
        }
Esempio n. 2
0
 public void StoreTemp()
 {
     lock (_lockObj)
     {
         if ((_tempInfoClass != null) && (_tempInfoClass.nbValueTemp > 0))
         {
             _previousTempInfoClass = _tempInfoClass;
         }
     }
 }
Esempio n. 3
0
        private void EventThreadProc()
        {
            while (!_stop)
            {
                IsRunning = true;

                // attente 30eme seconds
                DateTime dt = DateTime.Now;
                if (dt.Second < 15)
                {
                    Thread.Sleep((15 - dt.Second) * 1000);
                }
                else
                {
                    Thread.Sleep(((59 - dt.Second) + 15) * 1000);
                }

                dt = DateTime.Now;

                if (dt.Minute == 00)
                {
                    _tempInfoClass = new tempInfo();
                }


                _isTempReceive = false;

                if (myPT100Probe == null)
                {
                    myPT100Probe = YTemperature.FirstTemperature();
                }
                if ((myPT100Probe != null) && (myPT100Probe.isOnline()))
                {
                    TempChamber    = TempBottle = myPT100Probe.get_currentValue();
                    _isTempReceive = true;
                }

                if (_isTempReceive)
                {
                    if (_tempInfoClass == null)
                    {
                        _tempInfoClass = new tempInfo();
                    }
                    AddTemp(dt, TempBottle);
                }

                dt = DateTime.Now;

                if (dt.Minute == 59)
                {
                    StoreTemp();
                }

                if (dt.Second < 59)
                {
                    Thread.Sleep(((59 - dt.Second) + 5) * 1000);
                }
                else
                {
                    Thread.Sleep(5 * 1000);
                }
            }
            IsRunning = false;
        }
Esempio n. 4
0
        private void EventThreadProc()
        {
            while (!_stop)
            {
                IsRunning = true;

                // attente 30eme seconds
                DateTime dt = DateTime.Now;
                if (dt.Second < 15)
                {
                    Thread.Sleep((15 - dt.Second) * 1000);
                }
                else
                {
                    Thread.Sleep(((59 - dt.Second) + 15) * 1000);
                }

                dt = DateTime.Now;

                if (dt.Minute == 00)
                {
                    _tempInfoClass = new tempInfo();
                }


                _isTempReceive          = false;
                _isDefrostStatusReceive = false;

                if (_mb.Open(_strCom, 9600, 8, Parity.Even, StopBits.One))
                {
                    _isTempReceive          = _mb.GetFridgeTemp(ref TempChamber, ref TempBottle);
                    _isDefrostStatusReceive = _mb.GetFridgeDefrostStatus(ref _defrostActive);
                    _mb.Close();
                }

                if (_isTempReceive)
                {
                    if (_tempInfoClass == null)
                    {
                        _tempInfoClass = new tempInfo();
                    }
                    AddTemp(dt, TempBottle);
                }
                if (_isDefrostStatusReceive)
                {
                    if (_tempInfoClass == null)
                    {
                        _tempInfoClass = new tempInfo();
                    }
                    _tempInfoClass.DefrostActive = DefrostActive;
                    if (DefrostActive)
                    {
                        _tempInfoClass.WasInDefrost = true;
                    }
                }


                dt = DateTime.Now;

                if (dt.Minute == 59)
                {
                    StoreTemp();
                }

                if (dt.Second < 59)
                {
                    Thread.Sleep(((59 - dt.Second) + 5) * 1000);
                }
                else
                {
                    Thread.Sleep(5 * 1000);
                }
            }
            IsRunning = false;
        }
/*
 *      private DateTime getDatefromCombo()
 *      {
 *          switch (toolStripComboBoxTime.SelectedIndex)
 *          {
 *              case 0: return DateTime.Now.AddDays(-1);
 *              case 1: return DateTime.Now.AddDays(-7);
 *              default: return DateTime.MinValue;
 *          }
 *      }
 */

/*
 *      private int getNbItemfromCombo()
 *      {
 *          switch (toolStripComboBoxTime.SelectedIndex)
 *          {
 *              case 0: return 24;
 *              case 1: return 24 * 7;
 *              default: return 24;
 *          }
 *      }
 */
        private void RefreshTemperature()
        {
            _tempBottlePoints.Clear();

            if (_selectedDevice != null)
            {
                int nbHours = 25;
                if (toolStripComboBoxTime.SelectedIndex == 1)
                {
                    nbHours = 7 * 24 + 1;
                }
                DateTime selectedDateTime    = dateTimePicker.Value.Date.AddHours(DateTime.Now.Hour - 1);
                DateTime selectedDateTimeUtc = DateTime.ParseExact(selectedDateTime.ToString("yyyy-MM-dd HH:mm:ss"), "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);

                string[] tpInfo = _db.GetFridgeTempAfter(_selectedDevice.SerialRFID, selectedDateTimeUtc.ToString("yyyy-MM-dd HH:mm:ssZ"), nbHours);
                if (tpInfo != null)
                {
                    DateTime previousTempInfoDate = selectedDateTime;

                    foreach (string strTemp in tpInfo)
                    {
                        if (strTemp != null)
                        {
                            BinaryFormatter bf              = new BinaryFormatter();
                            MemoryStream    mem             = new MemoryStream(Convert.FromBase64String(strTemp));
                            tempInfo        currentTempInfo = (tempInfo)bf.Deserialize(mem);
                            DateTime        lotDate         = currentTempInfo.CreationDate.ToLocalTime();

                            // if one (or more) hour is missing from measures list, let's add empty points in the chart.
                            while ((lotDate - previousTempInfoDate).TotalMinutes > 61)
                            {
                                previousTempInfoDate = previousTempInfoDate.AddHours(1);

                                for (int j = 0; j < 60; ++j)
                                {
                                    PtTemp pt = new PtTemp();
                                    pt.TempAcqDate = previousTempInfoDate.AddMinutes(j).ToString(CultureInfo.InvariantCulture);
                                    pt.TempBottle  = null;
                                    pt.TempChamber = null;
                                    _tempBottlePoints.Add(pt);
                                }
                            }

                            // first temperature minute time (e.g "29" if it was measured at 5:29pm)
                            int minuteStart = lotDate.Minute;
                            // for all points missing, from hh:00 to hh:minuteStart, add empty points in the chart.
                            for (int j = 0; j < minuteStart; ++j)
                            {
                                PtTemp pt = new PtTemp();
                                pt.TempAcqDate = lotDate.AddMinutes(-minuteStart + j).ToString(CultureInfo.InvariantCulture);
                                pt.TempBottle  = null;
                                pt.TempChamber = null;
                                _tempBottlePoints.Add(pt);
                            }
                            // for all points from hh:minuteStart to the end of the hour, add the point value (if any) or an empty point.
                            for (int j = minuteStart; j < 60; ++j)
                            {
                                PtTemp pt = new PtTemp();
                                pt.TempAcqDate = lotDate.AddMinutes(j - minuteStart).ToString(CultureInfo.InvariantCulture);
                                pt.TempBottle  = currentTempInfo.tempBottle.ContainsKey(j) ? currentTempInfo.tempBottle[j] : (double?)null;
                                pt.TempChamber = currentTempInfo.tempBottle.ContainsKey(j) ? currentTempInfo.tempBottle[j] : (double?)null;
                                _tempBottlePoints.Add(pt);
                            }
                            // update the last processed datetime.
                            previousTempInfoDate = lotDate;
                        }
                    }
                }
                else
                {
                    MessageBox.Show(ResStrings.str_No_data_Temperature_found_in_Database_);
                }
            }
        }
        private void EventThreadProc()
        {
            while (!_stop)
            {
                IsRunning = true;
                try
                {
                    // attente 30eme seconds
                    DateTime dt = DateTime.Now;
                    if (dt.Second < 15)
                    {
                        Thread.Sleep((15 - dt.Second) * 1000);
                    }
                    else
                    {
                        Thread.Sleep(((59 - dt.Second) + 15) * 1000);
                    }

                    dt = DateTime.Now;

                    if (dt.Minute == 00)
                    {
                        _tempInfoClass = new tempInfo();
                    }


                    _isTempReceive = false;


                    if ((_tpf != null) && (_tpf.GetFridgeInfo != null))
                    {
                        TempChamber    = TempBottle = _tpf.GetFridgeInfo.GetT0;
                        _isTempReceive = true;
                    }

                    if (_isTempReceive)
                    {
                        if (_tempInfoClass == null)
                        {
                            _tempInfoClass = new tempInfo();
                        }
                        AddTemp(dt, TempBottle);
                    }

                    dt = DateTime.Now;

                    if (dt.Minute == 59)
                    {
                        StoreTemp();
                    }

                    if (dt.Second < 59)
                    {
                        Thread.Sleep(((59 - dt.Second) + 5) * 1000);
                    }
                    else
                    {
                        Thread.Sleep(5 * 1000);
                    }
                }
                catch (ThreadAbortException)
                {
                }
                catch (Exception e)
                {
                    ExceptionMessageBox.Show(e);
                }
            }
            IsRunning = false;
        }
        private void EventThreadProc()
        {
            while (!_stop)
            {
                IsRunning = true;

                // attente 30eme seconds
                DateTime dt = DateTime.Now;
                if (dt.Second < 15)
                {
                    Thread.Sleep((15 - dt.Second) * 1000);
                }
                else
                {
                    Thread.Sleep(((59 - dt.Second) + 15) * 1000);
                }

                dt = DateTime.Now;

                if (dt.Minute == 00)
                {
                    TempInfoClass = new tempInfo();
                }


                _isTempReceive          = false;
                _isDefrostStatusReceive = false;
                int cpt = 20;

                OpenPort(_strCom);
                if (_serialPort.IsOpen)
                {
                    SendMessage(Command.Force);
                    Thread.Sleep(500);
                    do
                    {
                        _serialPort.DiscardInBuffer();
                        _serialPort.DiscardOutBuffer();
                        SendMessage(Command.Read);
                        Thread.Sleep(500);
                    } //while ((!IsTempReceive) && (IsDefrostStatusReceive) && (cpt-- > 0));
                    while (cpt-- > 0);


                    if (_isTempReceive)
                    {
                        if (TempInfoClass == null)
                        {
                            TempInfoClass = new tempInfo();
                        }
                        AddTemp(dt, Tempfridge);
                    }
                    if (_isDefrostStatusReceive)
                    {
                        if (TempInfoClass == null)
                        {
                            TempInfoClass = new tempInfo();
                        }
                        TempInfoClass.DefrostActive = DefrostActive;
                        if (DefrostActive)
                        {
                            TempInfoClass.WasInDefrost = true;
                        }
                    }

                    ClosePort();
                    _serialPort.Dispose();
                }

                dt = DateTime.Now;

                if (dt.Minute == 59)
                {
                    StoreTemp();
                }

                if (dt.Second < 59)
                {
                    Thread.Sleep(((59 - dt.Second) + 5) * 1000);
                }
                else
                {
                    Thread.Sleep(5 * 1000);
                }
            }
            IsRunning = false;
        }