Ошибка в отправке информации через последовательный порт - C#
Формулировка задачи:
Доброго времени суток!
Снова прошу помощи. Код работал нормально, я решил немного все упорядочить и переписать ее с помощью классов:
а вот и сам класс
А ошибка, собственно, вот о чем
Листинг программы
- private void ReadFile(string filename)
- {
- string line;
- Coordinates alpha = new Coordinates();
- StreamReader reader = new StreamReader(richTextBox3.Text);
- while ((line = reader.ReadLine()) != null)
- {
- alpha.Find(line);
- //--------------пишем лог
- string strX = (alpha.X).ToString();
- string strY = (alpha.Y).ToString();
- //char chX = char.Parse(strX);
- //char chY = char.Parse(strY);
- if (strX != "0") //видаляэм "0" який відправляється коли в стрічці нема потрібних координат
- { //--------------пишем лог
- richTextBox2.Text += strX;
- richTextBox2.Text += "\n";
- SendInf(strX); //<============= ВЫЗОВ ФУНКЦИИ ГДЕ ПРОИСХОДИТ ОШИБКА!!!!!!!!
- }
- if (strY != "0") //видаляэм "0" який відправляється коли в стрічці нема потрібних координат
- { //--------------пишем лог
- richTextBox2.Text += strY;
- richTextBox2.Text += "\n";
- //-------------пишем лог КІНЕЦЬ
- SendInf(strY);
- }
- }
- reader.Close();
- }
- private void SendInf(string inf) // відправка інформації на порт тип STRING
- {
- if (!serialPort2.IsOpen) //перевірка на відкритий порт
- {
- serialPort2.PortName = "COM2";
- serialPort2.Open();
- richTextBox2.Text = "COM2 opened.\n";
- }
- if (serialPort2.IsOpen) //відправляєм інфу
- {
- string text = inf.ToString();
- serialPort2.Write(text); // <========== ОШИБКА ЗДЕСЬ!!
- }
- }
- }
Листинг программы
- class Coordinates
- {
- public Coordinates() { }
- public int X=0;
- public int Y=0;
- public bool laser_switch=false;
- const int end_msg = -1; // маркер кінця повідомлення
- public void Find (string line)
- {
- int length = 10; //довжина масиву
- char[] fin_array = new char[length]; // масив куди будуть поміщатися координати із стрічки
- char[] array = line.ToCharArray(); //масив символів із стрічки
- int i = 0;
- if (line.IndexOf('X') != -1 || line.IndexOf('Y') != -1)
- {
- while (array[i] != 'X') //шукаєм індекс Х
- i++;
- //--------------підраховуєм потрібну кількість символів для динамічного масиву----------------
- length = i;
- while (array[length] != ' ')
- {
- length++;
- }
- //--------------------------------------------------------------------------------------------
- Array.Resize(ref fin_array, length - i); //змінюєм величину масиву
- int j = 0;
- while (array[i + 1] != ' ') // записуєм координати Х в fin_array
- {
- fin_array[j] = array[i + 1];
- i++;
- j++;
- }
- string str = new string(fin_array); //масив переводим в стрічку
- X = int.Parse(str); //перетворюєм стрічку в INT
- while (line.IndexOf('Y', i) != -1 || line.IndexOf('y', i) != -1) //шукаєм Y
- i++;
- //--------------підраховуєм потрібну кількість символів для динамічного масиву----------------
- length = 0;
- while (array[length] != ' ')
- {
- length++;
- }
- //--------------------------------------------------------------------------------------------
- Array.Resize(ref fin_array, length); //змінюєм величину масиву
- j = 0;
- while (array[i] != ' ') // записуєм координати Y в fin_array
- {
- fin_array[j] = array[i];
- i++;
- j++;
- }
- str = new string(fin_array); //масив переводим в стрічку
- Y = int.Parse(str); //перетворюєм стрічку в INT
- }
- }
"Необработанное исключение типа "System.IO.IOException" в System.dll Дополнительные сведения: Параметр задан неверно."
Поскажите как ее убрать?Решение задачи: «Ошибка в отправке информации через последовательный порт»
textual
Листинг программы
- string inf
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д