Я делаю последний год проект по системе отображения парковки.По сути, он обнаруживает любые машины на стоянке, обновляет количество доступных лотов и показывает, заполнен он или нет.
У меня проблемы с написанием программы на C # с использованием Microsoft Visual Studio 2008.Я получаю данные от последовательного порта, через который отправляет мой другой напарник.Все, что мне нужно сделать, это получить данные, а затем прочитать данные.Это просто для того, чтобы смоделировать автомобильные участки, занятые и опустошенные.Мне нужно отредактировать свою программу, чтобы я мог получать и обновлять данные о партиях, независимо от того, занята она или нет, и вызывать другие функции.Получение данных будет в ascii.каждый лот будет назначен на конкретную ascii.Например, 0x5A для лота 1, 0x59 для лота 2 и т. Д.
Вот пример моего проекта.
int intNumberLots = 6;
SerialPort serialPort = new SerialPort("COM1");
serialPort.BaudRate = 115200;
serialPort.Parity = Parity.None;
serialPort.StopBits = StopBits.One;
serialPort.DataBits = 8;
serialPort.Handshake = Handshake.None;
serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
serialPort.Open();
private void startButton_Click(object sender, EventArgs e)
{
while(){
if (serialPort.ReadLine == "0x57" && intNumberLots >= 0) // if data received is "1", do tasks below
{
inputTextBox.Clear(); // clear input textbox
pictureBox1.Visible = true; // show a picture of a vehicle
intNumberLots--; // decrease the number of available parking lots shown
label9.Text = intNumberLots.ToString();
}
else if (serialPort.ReadLine == "0x58" && intNumberLots >= 0)
{
inputTextBox.Clear();
pictureBox2.Visible = true;
intNumberLots--;
label9.Text = intNumberLots.ToString();
}
else if (serialPort.ReadLine == "0x59" && intNumberLots >= 0)
{
inputTextBox.Clear();
pictureBox3.Visible = true;
intNumberLots--;
label9.Text = intNumberLots.ToString();
}
else if (serialPort.ReadLine == "0x5A" && intNumberLots >= 0)
{
inputTextBox.Clear();
pictureBox4.Visible = true;
intNumberLots--;
label9.Text = intNumberLots.ToString();
}
}
Тогда для кода, который обновляется, если нет автомобиляв лот;
else if (string.str != "0x57" && intNumberLots >= 3)
{
inputTextBox.Clear();
pictureBox1.Visible = false;
intNumberLots++;
label9.Text = intNumberLots.ToString();
}
else if (string.str != "0x58" && intNumberLots >= 3)
{
inputTextBox.Clear();
pictureBox2.Visible = false;
intNumberLots++;
label9.Text = intNumberLots.ToString();
}
else if (string.str != "0x59" && intNumberLots >= 3)
{
inputTextBox.Clear();
pictureBox3.Visible = false;
intNumberLots++;
label9.Text = intNumberLots.ToString();
}
else if (string.str != "0x5A" && intNumberLots >= 3)
{
inputTextBox.Clear();
pictureBox4.Visible = false;
intNumberLots++;
label9.Text = intNumberLots.ToString();
}