Пример #1
0
        private void frmMain_Load(object sender, EventArgs e)
        {
            ReadConfigSetting();
            CreateMenuReport();
            /* Создаем объект порт */
            cPort = new SPort();
            try
            {
                cPort.Open();
            }
            catch
            {
                MessageBox.Show("Нет доступа к порту!", "Ошибка запуска.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            try
            {
                Config cConf = new Config();
                intervalNewData = cConf.getPeriod() * 1000;
                //StartStopProcess(TermStart);
            }
            catch (Exception err)
            {
                StartStopProcess(Convert.ToBoolean(TerminalAct.Stop));
                MessageBox.Show(err.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                lblInfo.Text = "Ошибка в работе системы!";
            }

            //cPort.CurrentDataMode = SPort.DataMode.Hex;
            //cPort.SendData("2f3f210D0A");

            //cPort.SendData("8D0AAF3F218D0A1001101F1D10020930093030330C1003C515");
            //string retdata = cPort.ReturnData();
        }
Пример #2
0
        public void Init(String Port)
        {
            SPort.PortName = Port;
            SPort.BaudRate = 9600;
            SPort.Open();
            Thread.Sleep(100);

            PinMode(22, INPUT);
            PinMode(PinDefs.MotorLR, OUTPUT);     //LR
            PinMode(PinDefs.MotorLF, OUTPUT);     //LF
            PinMode(PinDefs.MotorRR, OUTPUT);     //RR
            PinMode(PinDefs.MotorRF, OUTPUT);     //RF
        }
Пример #3
0
 private void findPort()
 {
     for (int i = 0; i <= 20; i++)
     {
         try
         {
             SPort.PortName = "COM" + i;
             SPort.Open();
             ComboPorta.Text = "COM" + i;
             if (SPort.IsOpen)
             {
                 break;
             }
         }
         catch (System.IO.IOException) { }
     }
 }
Пример #4
0
        private void StartProgram()
        {
            try
            {
                if (!IsProgramRunning)
                {
                    LogDateTimeStart = DateTime.Now;
                    PropertiesToolStripMenuItem.Enabled = false;
                    SPort.PortName = PortName;
                    SPort.Open();
                    _continue            = true;
                    TimeLeft             = 0;
                    TimeLeftTextBox.Text = ((TimerSetting - TimeLeft) / 1000) + @" сек.";
                    // Включаем таймер обновления времени и даты.
                    DateTimeUpdateTimer.Enabled  = true;
                    RotateTimer.Interval         = TimerSetting;
                    RotateTimer.Enabled          = true;
                    ErrorEmailSendTimer.Interval = (2 * TimerSetting + 1000 * 60 * 10);
                    ErrorEmailSendTimer.Enabled  = true;

                    // Считаем угол азимута и элевации.
                    CalculateCurrentAngles(false);

                    DrawAzimuth((int)Math.Round(_SPAData.Azimuth, 0));
                    DrawElevation((int)Math.Round(90 - _SPAData.Zenith, 0));

                    AzimuthTextBox.Text   = Math.Round(_SPAData.Azimuth, 1) + @"°";
                    ElevationTextBox.Text = Math.Round(90 - _SPAData.Zenith, 1) + @"°";

                    ToggleProgramStatus(true);

                    Program.ConsoleForm.Show();
                    Program.ConsoleForm.Invoke(СonsoleDelegate, new Object[] { "Программа запущена (" +
                                                                               $"Широта: {AreaLatitude}, " +
                                                                               $"Долгота: {AreaLongitude}, " +
                                                                               $"Часовой пояс: {(TimeZone > 0 ? "+" + TimeZone : TimeZone.ToString())} (GTM), " +
                                                                               $"Уставка по времени: {$"{(TimerSetting) / 1000 / 60 / 60 % 24} ч. {(TimerSetting) / 1000 / 60 % 60} м. {(TimerSetting) / 1000 % 60} с."}, " +
                                                                               $"Порт: {PortName}, " +
                                                                               $"Драйвер трекера: {DriverPath.Split('\\').Last()}).",
                                                                               Color.Red });

                    CalculateCurrentAngles(true);

                    // Если солнце не зашло, то поворачиваемся.
                    if (90 - _SPAData.Zenith > 0)
                    {
                        SPortWrite((string)DriverMethod.Invoke(null, new object[] { Math.Round(_SPAData.Azimuth, 1), Math.Round(_SPAData.Zenith, 1) }));
                        Program.ConsoleForm.Invoke(СonsoleDelegate, new Object[] { $"Производится поворот на угол по азимуту: {Math.Round(_SPAData.Azimuth, 1)}°, по элевации: {Math.Round(90 - _SPAData.Zenith, 1)}° (команда: {(string)DriverMethod.Invoke(null, new object[] { Math.Round(_SPAData.Azimuth, 1), Math.Round(_SPAData.Zenith, 1) })}).", Color.Green });
                    }
                    else
                    {
                        Program.ConsoleForm.Invoke(СonsoleDelegate, new Object[] { $"Солнце зашло (расчетная элевация {Math.Round(90 - _SPAData.Zenith, 1)}°). Поворот не требуется.", Color.Green });
                    }
                }
                else
                {
                    ToggleProgramStatus(false);
                    Program.ConsoleForm.Invoke(СonsoleDelegate, new Object[] { "Программа остановлена.", Color.Red });
                    SPort.Close();
                }
            }
            catch (Exception ex)
            {
                ToggleProgramStatus(false);
                CalculateCurrentAngles(false);
                Program.ConsoleForm.Invoke(СonsoleDelegate, new Object[] { "Программа остановлена.", Color.Red });
                SPort.Close();
                Program.ConsoleForm.Invoke(СonsoleDelegate, new Object[] { $"В ходе запуска программы возникла ошибка: {ex}. \n\nПожалуйста, проверьте настройки программы.", Color.Red });
            }
        }