コード例 #1
0
        // показать write and read
        private void showSettindBtn_Click(object sender, EventArgs e)
        {
            LimitsCpu limitsCpu = loadCpu.ReadLimits();

            if (limitsCpu == null)
            {
                showSettindBtn.BackColor = Color.Red;
                return;   // error connect
            }
            showSettindBtn.BackColor = Color.Green;
            writeSetLabel.Text       = limitsCpu.PositionWrite.ToString();
            readSetLabel.Text        = limitsCpu.PositionRead.ToString();
        }
コード例 #2
0
        public WorkCpu()
        {
            LoadCpu loadCpu = new LoadCpu();

            while (true)
            {
                // STOP
                if (Form1.stopThreadAll)
                {
                    return;
                }

                workCpuStatus = true;

                // Makes the status, for a long time there was no connection with the CPU
                NoConnectionTimeSec(loadCpu);

                // select limits---------------
                LimitsCpu limitsCpu = loadCpu.ReadLimits();
                if (limitsCpu == null)
                {
                    continue;   // error connect
                }
                if ((limitsCpu.PositionRead < limitsCpu.PositionMin) ||
                    (limitsCpu.PositionRead > limitsCpu.PositionMax))
                {
                    loadCpu.WritePositionLimitsCpu(limitsCpu.PositionMin);   // write PositionRead
                    continue;
                }
                //------------------------------

                writeIndex = limitsCpu.PositionWrite;
                readIndex  = limitsCpu.PositionRead;


                // new PositionRead + 1
                int newIndexDb = LocationIndexDb(loadCpu, limitsCpu);
                // if there isn't data
                if (newIndexDb < limitsCpu.PositionMin)
                {
                    FindMaxIdFromSql();
                    continue;
                }
                else
                {
                    // loading data all CPU--------
                    Model_dateTime modelDTBase = loadCpu.ReadDatetime(newIndexDb);
                    if (modelDTBase == null)
                    {
                        continue;   // error connect
                    }
                    if (modelDTBase.Id_DateTime == -1)
                    {
                        loadCpu.WritePositionLimitsCpu(newIndexDb);   // write PositionWrite (+1)
                        continue;
                    }
                    //------------------------------

                    idMaxSql = modelDTBase.Id_DateTime;  // save ID to static

                    // ok <<< Write id and DateTime to SQL
                    WriteDateTimeToSql(loadCpu, modelDTBase, newIndexDb);
                }

                if (Form1.stopThreadAll)
                {
                    return;                         // STOP
                }
                Thread.Sleep(Properties.Settings.Default.timerWorkCycle);
            }
        }