~localhost
Green Team
Привет, начал изучать C#, пишу не большую программку, которое будет показывать открыта дверь в комнату или нет, данные о состояние беру с контроллера atmega через USB -> TTL адаптер.
Проблема заключается в том, что если разорвать соединения ( выдернуть из USB) а потом его восстановить то работа не возобновляется. Подскажите как это можно решить, пока туго доходить после python как тут все работает.
Проблема заключается в том, что если разорвать соединения ( выдернуть из USB) а потом его восстановить то работа не возобновляется. Подскажите как это можно решить, пока туго доходить после python как тут все работает.
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
namespace check_my_door
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
System.IO.Ports.SerialPort Serial;
Serial = new SerialPort("COM3", 9600, System.IO.Ports.Parity.None, 8, StopBits.One);
Serial.DataReceived += Port_DataReceived;
try
{
Serial.Open();
}
catch
{
Serial.Close();
label1.Text = "Error";
}
}
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F1 && e.Alt)
{
notifyIcon1.Icon = new Icon("F:/C#/check_my_door/ico/door_icon_126434.ico");
}
}
private void Port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
try
{
if (sp.ReadTo("\r\n") == "1")
{
//label1.Text = "One";
notifyIcon1.Icon = new Icon("F:/C#/check_my_door/ico/door_icon_126434.ico");
}
if (sp.ReadTo("\r\n") == "0")
{
//label1.Text = "zero";
notifyIcon1.Icon = new Icon("F:/C#/check_my_door/ico/star52_41769.ico");
}
}
catch (System.IO.IOException) {
sp.Close();
}
}
}
}