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(); }
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 }
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) { } } }
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 }); } }