private void button1_Click(object sender, EventArgs e) { textBox_login.BackColor = SystemColors.Window; textBox_password.BackColor = SystemColors.Window; if (textBox_login.Text == "") { MessageBox.Show("Введите логин!", "", MessageBoxButtons.OK, MessageBoxIcon.Error); textBox_login.BackColor = Color.Yellow; return; } sqlHandler = new SQLhandler(Database, DataSource, textBox_login.Text, textBox_password.Text); try { sqlHandler.ConnectOpen(); sqlHandler.ConnectClose(); } catch { MessageBox.Show("Проверьте подключение, логин и пароль", "Проблема с авторизацией", MessageBoxButtons.OK, MessageBoxIcon.Error); textBox_login.BackColor = Color.Red; textBox_password.BackColor = Color.Red; return; } MessageBox.Show("Успешно", "", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); authoriz.Login(textBox_login.Text, textBox_password.Text, checkBox_startTimer.Checked, Convert.ToDouble(numericUpDown_intervalTime.Value)); this.Close(); }
//static bool HandlerWorked = false; //protected static void ConsoleCancelHandler(object sender, ConsoleCancelEventArgs args) //{ // //if (!HandlerWorked) // //{ // // HandlerWorked = true; // stop_quierMutex.WaitOne(); // Console.WriteLine("\nThe read operation has been interrupted."); // Console.WriteLine(" Key pressed: {0}", args.SpecialKey); // Console.WriteLine(" Cancel property: {0}", args.Cancel); // // Set the Cancel property to true to prevent the process from terminating. // Console.WriteLine("Setting the Cancel property to true..."); // args.Cancel = true; // // Announce the new value of the Cancel property. // Console.WriteLine(" Cancel property: {0}", args.Cancel); // Console.WriteLine("The read operation will resume...\n"); // // HandlerWorked = false; // Console.ReadLine(); // stop_quierMutex.ReleaseMutex(); // //} //} //static void loopMeterSQLwriter() //{ //} public static void loopMeterQuerier() { //Meter230_arr[0].InitRs(); System.Threading.Thread.Sleep(2000); while (progSettings.start) { try { #region Опрос 234-тых for (int i = 0; (i < Meter230_arr.Length) && progSettings.start; i++) { //stop_quierMutex.WaitOne(); // string buf = meterTable.Rows[i]["Тип"].ToString(); // meterTable.Rows[i]["Тип"] = meterTable.Rows[i]["Тип"].ToString() + "*"; Mercury230.error_type error = Meter230_arr[i].RefreshData(); //console.WriteLine("{0}", Meter230_arr[i].DataTime_last_recordSQL); // double time = Sqlhandler_.NextTimetoSQLwrite(Meter230_arr[i].address, Meter230_arr[i].serial_number); // console.WriteLine("Следующая запись : {0}" , DateTime.FromOADate(time)); // server_stop(); if (error == Mercury230.error_type.none) { if ((DateTime.Now.Hour > 3) && (DateTime.Now.Hour < 23)) { #region Коррекция времени if (DateTime.Now > Meter230_arr[i].DateTime_nextTime_corecction) { // Mercury230.elecMeterDateTime datetime = Meter230_arr[i].CallTime(); TimeSpan span = DateTime.Now - datetime.datetime; if (span.Duration() > new TimeSpan(0, 0, 10)) { // Meter230_arr[i].level = 2; datetime = new Mercury230.elecMeterDateTime(); datetime.datetime = DateTime.Now; Meter230_arr[i].SetTime(datetime); logger.Debug("Корректировка|адрес {0}|время {1}", Meter230_arr[i].address, Meter230_arr[i].CallTime().datetime); } else { logger.Debug("Корректировка|адрес:{0}|Пропущена|{1}", Meter230_arr[i].address, span); // console.WriteLine(, span); Meter230_arr[i].DateTime_nextTime_corecction = DateTime.Now.AddMinutes(5); } } #endregion #region Снятие показаний if (DateTime.Now > Meter230_arr[i].DataTime_nextPoint_recordSQL) { Sqlhandler_.ConnectOpen(); //Mercury230.accumulEnergy energy1 = Meter230_arr[i].CallAccumulEnergy(Mercury230.peroidQuery.thisMonth, 1, 2); for (byte tarif = 1; tarif < 5; tarif++) { if (Sqlhandler_.GiveSQLrecordingPeriod(Meter230_arr[i], "meter230", Mercury230.peroidQuery.lastDay, 0, tarif).Rows.Count == 0) { Mercury230.accumulEnergy energy = Meter230_arr[i].CallAccumulEnergy(Mercury230.peroidQuery.lastDay, tarif, 0); if (energy.error == 0) { Sqlhandler_.writeAccumulEnergy(energy, tarif, Mercury230.peroidQuery.lastDay, Meter230_arr[i], 0); logger.Debug("Запись счетчика {0}|За вчерашний день|Тариф {1} ", Meter230_arr[i].address, tarif); } else { logger.Debug("Ошибка чтения показаний счетчика {0}|За вчерашний день|Тариф {1} ", Meter230_arr[i].address, tarif); } } if (Sqlhandler_.GiveSQLrecordingPeriod(Meter230_arr[i], "meter230", Mercury230.peroidQuery.thisDay_beginning, 0, tarif).Rows.Count == 0) { Mercury230.accumulEnergy energy = Meter230_arr[i].CallAccumulEnergy(Mercury230.peroidQuery.thisDay_beginning, tarif, 0); if (energy.error == 0) { Sqlhandler_.writeAccumulEnergy(energy, tarif, Mercury230.peroidQuery.thisDay_beginning, Meter230_arr[i], 0); logger.Debug("Запись счетчика {0}|На начало дня|Тариф {1} ", Meter230_arr[i].address, tarif); } else { logger.Debug("Ошибка чтения показаний счетчика {0}|На начало дня|Тариф {1} ", Meter230_arr[i].address, tarif); } } for (byte month = 1; month <= 12; month++) { if ((Sqlhandler_.GiveSQLrecordingPeriod(Meter230_arr[i], "meter230", Mercury230.peroidQuery.thisMonth, month, tarif).Rows.Count == 0) && (month != DateTime.Now.Month)) { Mercury230.accumulEnergy energy = Meter230_arr[i].CallAccumulEnergy(Mercury230.peroidQuery.thisMonth, tarif, month); if (energy.error == 0) { Sqlhandler_.writeAccumulEnergy(energy, tarif, Mercury230.peroidQuery.thisMonth, Meter230_arr[i], month); logger.Debug("Запись счетчика {0}|За месяц {2}|Тариф {1} ", Meter230_arr[i].address, tarif, month); } else { logger.Debug("Ошибка чтения показаний счетчика {0}|За месяц {2}|Тариф {1} ", Meter230_arr[i].address, tarif); } } } for (byte month = 1; month <= 12; month++) { if (Sqlhandler_.GiveSQLrecordingPeriod(Meter230_arr[i], "meter230", Mercury230.peroidQuery.thisMonth_beginning, month, tarif).Rows.Count == 0) { Mercury230.accumulEnergy energy = Meter230_arr[i].CallAccumulEnergy(Mercury230.peroidQuery.thisMonth_beginning, tarif, month); if (energy.error == 0) { Sqlhandler_.writeAccumulEnergy(energy, tarif, Mercury230.peroidQuery.thisMonth_beginning, Meter230_arr[i], month); logger.Debug("Запись счетчика {0}|На начало месяца {2}|Тариф {1} ", Meter230_arr[i].address, tarif, month); } else { logger.Debug("Ошибка чтения показаний счетчика {0}|На начало месяца {2}|Тариф {1} ", Meter230_arr[i].address, tarif); } } } } Meter230_arr[i].DataTime_nextPoint_recordSQL = DateTime.Now.AddSeconds(30); Sqlhandler_.ConnectClose(); } } #endregion } //stop_quierMutex.ReleaseMutex(); } #endregion #region Опрос 206-ых for (int i = 0; (i < Meter206_arr.Length) && progSettings.start; i++) { //stop_quierMutex.WaitOne(); MeterDevice.error_type error; int serialnum_ = Meter206_arr[i].GiveSerialNumber(); if (Meter206_arr[i].serial_number == serialnum_) { error = MeterDevice.error_type.none; } else { error = (MeterDevice.error_type)serialnum_; if (!Enum.IsDefined(typeof(MeterDevice.error_type), serialnum_)) { logger.Debug("!!! Адрес {0}| S/n {1}|Ожидался {2} !!!", Meter206_arr[i].i_addr, serialnum_, Meter206_arr[i].serial_number); break; } } if (error == MeterDevice.error_type.none) { if ((DateTime.Now.Hour > 3) && (DateTime.Now.Hour < 23)) { #region Время if (DateTime.Now > Meter206_arr[i].DateTime_nextTime_corecction) { // Mercury206.elecMeterDateTime datetime206 = Meter206_arr[i].CallDateTime(); TimeSpan span = DateTime.Now - datetime206.dt; if (span.Duration() > new TimeSpan(0, 0, 10)) { // Meter230_arr[i].level = 2; datetime206 = new Mercury206.elecMeterDateTime(); datetime206.dt = DateTime.Now; Meter206_arr[i].SetTime(datetime206.dt); logger.Debug("Корректировка|адрес {0}|время {1}", Meter206_arr[i].i_addr, Meter206_arr[i].CallDateTime().dt); } else { logger.Debug("Корректировка|адрес:{0}|Пропущена|{1}", Meter206_arr[i].i_addr, span); // console.WriteLine(, span); Meter206_arr[i].DateTime_nextTime_corecction = DateTime.Now.AddMinutes(5); } } #endregion if (Meter206_arr[i].DataTime_nextPoint_recordSQL < DateTime.Now) { for (byte per = 0; per <= 12; per++) { Sqlhandler_.ConnectOpen(); if (Sqlhandler_.GiveSQLrecordingPeriod(Meter206_arr[i], "meter206", per).Rows.Count == 0) { int[] energy = (per == 0) ? Meter206_arr[i].CallAccumulEnergy_activ() : Meter206_arr[i].CallAccumulEnergy_activ_month((byte)((int)per - 1)); if (energy.Length == 4) { Sqlhandler_.writeAccumulEnergy(energy, Meter206_arr[i], per); logger.Debug("Запись счетчика произведена. Счетчик {0}, ПериодКод {1}", Meter206_arr[i].i_addr, per); } } Sqlhandler_.ConnectClose(); Meter206_arr[i].DataTime_nextPoint_recordSQL = DateTime.Now.AddSeconds(30); } } } //if (DateTime.Now > Meter206_arr[i].DataTime_nextPoint_recordSQL) //{ // Sqlhandler_.ConnectOpen(); // int[] energy = Meter206_arr[i].CallAccumulEnergy_activ(); // if (energy.Length == 4) // { // Sqlhandler_.writeAccumulEnergy(energy, Meter206_arr[i], 0); // //Mercury230.accumulEnergy energy2 = Meter230_arr[i].CallAccumulEnergy(Mercury230.peroidQuery.afterReset, j, 1); // //Sqlhandler_.writeAccumulEnergy(energy2, j, Mercury230.peroidQuery.afterReset, Meter230_arr[i]); // logger.Debug("Запись счетчика произведена. Счетчик {0} Время {1}", Meter206_arr[i].i_addr, DateTime.Now); // // myConnection.Close(); // DateTime dt = DateTime.Now; // // Делаем записи в 00:30 . Писать в 00:00 рисковано - счетчик может не перейти на новую дату // DateTime dt_beginday = new DateTime(dt.Year, dt.Month, dt.Day, 0, 0, 30); // Meter206_arr[i].DataTime_nextPoint_recordSQL = dt_beginday.AddDays(1); // } // Sqlhandler_.ConnectClose(); //} } logger.Trace("Устройство {0} : {1}", Meter206_arr[i].i_addr, error); //stop_quierMutex.ReleaseMutex(); } #endregion } catch (Exception ex) { logger.Error(ex); } } }