Ошибка в отправке информации через последовательный порт - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Снова прошу помощи. Код работал нормально, я решил немного все упорядочить и переписать ее с помощью классов:
Листинг программы
  1. private void ReadFile(string filename)
  2. {
  3. string line;
  4. Coordinates alpha = new Coordinates();
  5. StreamReader reader = new StreamReader(richTextBox3.Text);
  6. while ((line = reader.ReadLine()) != null)
  7. {
  8. alpha.Find(line);
  9. //--------------пишем лог
  10. string strX = (alpha.X).ToString();
  11. string strY = (alpha.Y).ToString();
  12. //char chX = char.Parse(strX);
  13. //char chY = char.Parse(strY);
  14. if (strX != "0") //видаляэм "0" який відправляється коли в стрічці нема потрібних координат
  15. { //--------------пишем лог
  16. richTextBox2.Text += strX;
  17. richTextBox2.Text += "\n";
  18. SendInf(strX); //<============= ВЫЗОВ ФУНКЦИИ ГДЕ ПРОИСХОДИТ ОШИБКА!!!!!!!!
  19. }
  20. if (strY != "0") //видаляэм "0" який відправляється коли в стрічці нема потрібних координат
  21. { //--------------пишем лог
  22. richTextBox2.Text += strY;
  23. richTextBox2.Text += "\n";
  24. //-------------пишем лог КІНЕЦЬ
  25. SendInf(strY);
  26. }
  27. }
  28. reader.Close();
  29. }
  30. private void SendInf(string inf) // відправка інформації на порт тип STRING
  31. {
  32. if (!serialPort2.IsOpen) //перевірка на відкритий порт
  33. {
  34. serialPort2.PortName = "COM2";
  35. serialPort2.Open();
  36. richTextBox2.Text = "COM2 opened.\n";
  37. }
  38. if (serialPort2.IsOpen) //відправляєм інфу
  39. {
  40. string text = inf.ToString();
  41. serialPort2.Write(text); // <========== ОШИБКА ЗДЕСЬ!!
  42. }
  43. }
  44. }
а вот и сам класс
Листинг программы
  1. class Coordinates
  2. {
  3. public Coordinates() { }
  4. public int X=0;
  5. public int Y=0;
  6. public bool laser_switch=false;
  7. const int end_msg = -1; // маркер кінця повідомлення
  8. public void Find (string line)
  9. {
  10. int length = 10; //довжина масиву
  11. char[] fin_array = new char[length]; // масив куди будуть поміщатися координати із стрічки
  12. char[] array = line.ToCharArray(); //масив символів із стрічки
  13. int i = 0;
  14. if (line.IndexOf('X') != -1 || line.IndexOf('Y') != -1)
  15. {
  16. while (array[i] != 'X') //шукаєм індекс Х
  17. i++;
  18. //--------------підраховуєм потрібну кількість символів для динамічного масиву----------------
  19. length = i;
  20. while (array[length] != ' ')
  21. {
  22. length++;
  23. }
  24. //--------------------------------------------------------------------------------------------
  25. Array.Resize(ref fin_array, length - i); //змінюєм величину масиву
  26. int j = 0;
  27. while (array[i + 1] != ' ') // записуєм координати Х в fin_array
  28. {
  29. fin_array[j] = array[i + 1];
  30. i++;
  31. j++;
  32. }
  33. string str = new string(fin_array); //масив переводим в стрічку
  34. X = int.Parse(str); //перетворюєм стрічку в INT
  35. while (line.IndexOf('Y', i) != -1 || line.IndexOf('y', i) != -1) //шукаєм Y
  36. i++;
  37. //--------------підраховуєм потрібну кількість символів для динамічного масиву----------------
  38. length = 0;
  39. while (array[length] != ' ')
  40. {
  41. length++;
  42. }
  43. //--------------------------------------------------------------------------------------------
  44. Array.Resize(ref fin_array, length); //змінюєм величину масиву
  45. j = 0;
  46. while (array[i] != ' ') // записуєм координати Y в fin_array
  47. {
  48. fin_array[j] = array[i];
  49. i++;
  50. j++;
  51. }
  52. str = new string(fin_array); //масив переводим в стрічку
  53. Y = int.Parse(str); //перетворюєм стрічку в INT
  54. }
  55.  
  56. }
А ошибка, собственно, вот о чем

"Необработанное исключение типа "System.IO.IOException" в System.dll Дополнительные сведения: Параметр задан неверно."

Поскажите как ее убрать?

Решение задачи: «Ошибка в отправке информации через последовательный порт»

textual
Листинг программы
  1. string inf

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы