0 / 0 / 0
Регистрация: 23.09.2014
Сообщений: 6

Принимаемые данные с датчика через Serial port преобразовать в RGB

23.09.2014, 00:58. Показов 1785. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Стоит одна задача. Необходимо, получая строки с датчика цвета, поступающего в сериал порт, принимать на компьютере и показывать цвет приходящий с сериал порта датчика в виде(пример):
255
123
234
До изменения цвета какого-либо компонента дело даже не дошло. я остановился на записи данных с порта. Возникает исключение "Ссылка на объект не указывает на экземпляр объекта".
Может я совсем неправильно что-то делаю? С C# начал знакомство недавно. Очень жду помощи и советов.
И не совсем понимаю как можно будет организовать динамическую смену фона какого-либо компонента на форме..
Благодарю за всяческую помощь
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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 WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        SerialPort mySP = new SerialPort("COM5", 57600);
        public event SerialDataReceivedEventHandler DataReceived;
        int[] col;
        public void button1_Click(object sender, EventArgs e)
        {
            mySP.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
            mySP.Open();
 
        }
        public void DataReceivedHandler(object sender,SerialDataReceivedEventArgs e)
        {
            for (int i = 0; i < 3; i++)
            {
                col[i]=Convert.ToInt32(mySP.ReadLine());
            }
                
            
        }
 
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.09.2014, 00:58
Ответы с готовыми решениями:

serial port
Здравствуйте. Использую стандартные классы .net для работы с ком портом. Работу с портом прослушал программой Portmon. Вот кусочек...

Serial port. Изменение значений
Здравствуйте! Месяц назад я начал учить C#. Моя задача - считать значения с серийного порта, а затем конвертировать их в дробные числа...

Прием и передача строки Serial Port
Пишу прогу на подобии терминала серийного порта. Встала делема и похожего варианта кода я не нашел, нужно отправлять и принимать строку,...

5
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
23.09.2014, 08:57
Ну так чего ты хочешь? Массив col ты объявил, а создавать его за тебя кто будет?

Добавлено через 31 секунду
col = new int[3];

Добавлено через 3 минуты
кстати, зачем ты используешь int? тебе, больше подойдёт byte - это раз
на твоём месте я бы перестраховался и делал конвертацию не Convert`ом, а TryParse, т.к. входные данные, наверняка, могут отличаться от кода RGB. В общем у тебя ещё куча подводных камней может возникнуть.
0
0 / 0 / 0
Регистрация: 23.09.2014
Сообщений: 6
23.09.2014, 22:51  [ТС]
aquaMakc, Спасибо! С принятием данных разобрался.
Теперь, пытаюсь я сменить цвет формы посредством BackColor.ToARGB. Но у меня появляется ошибка, что ни одна перегрузка метода toARGB не имеет 3 аргументов..
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
23.09.2014, 23:19
Лучший ответ Сообщение было отмечено AsGs как решение

Решение

AsGs, не тот метод используете, ятд...
Вот. Форма с кнопкой...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Click += (sender, e) =>
                {
                    byte red = 240;
                    byte green = 21;
                    byte blue = 128;
 
                    this.BackColor = Color.FromArgb(red, green, blue);
                };
        }
    }
}
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
24.09.2014, 09:12
Color.FromArgb в качестве аргументов принимает типы int
0
0 / 0 / 0
Регистрация: 23.09.2014
Сообщений: 6
24.09.2014, 09:54  [ТС]
Всем спасибо за помощь. Все получилось!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.09.2014, 09:54
Помогаю со студенческими работами здесь

Serial Port, описание устройства,предоставленное шиной
Здравствуйте, подобные темы уже обсуждались на форуме, но я так и не смогла найти ответ. Как получить описание устройства,предоставленное...

Serial port. Можно ли определить подключено ли внешнее устройство?
Вопрос такой Можно ли определить подключено ли внешнее устройство? К PC подключаем USB/RS-232 9 pin D-SUB, а уже к нему PC/PPI cable...

Как засунуть serial port в wpf?
Добрый день! Ну вопрос в уже &quot;озвучен&quot;... как засунуть serial port в wpf? Как это сделать не могу понять в упор.

Как принять 16 бит через Serial port?
Добрый день. Хочу осуществить следующую задачу: имеется МК, который оцифровывает некий сигнал. Все данные складываются в память. АПЦ -...

Serial port оптимальный метод обработки пакетов
Всем привет. Хочу у Вас спросить совета... Пишу драйвер для общения прибора и ПО встроенного на компьютере. Использую SerialPort вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru