Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.53/30: Рейтинг темы: голосов - 30, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 13.09.2014
Сообщений: 118

Преобразование чисел с COM порта

02.03.2018, 12:51. Показов 7462. Ответов 139

Студворк — интернет-сервис помощи студентам
Есть устройство, которое передает информацию на com порт в виде 16 битных знаковых чисел, мне нужно преобразовать эт данные так, как на скриншоте.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
  void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            try
            {   byte[] b = new byte[4000];
                serialPort1.Read(b, 0, b.Length);
                int i = BitConverter.ToInt16(b, 2);
                SetText(Convert.ToString(i));
            }
            catch (Exception e3)
            {
                MessageBox.Show(e3.Message);
            }
        }
Выходит как на скриншоте 2

Описание по работе с устройством на скриншоте 3
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2018, 12:51
Ответы с готовыми решениями:

Преобразование float значений полученных из COM порта
Доброго времени суток. проблема с преобразованием вещественных числе, в данном случае FLOAT. подключаюсь я к устройству через...

Преобразование данных с COM порта в реальном времени
Подскажите пожалуйста. Мне необходимо считать температурные показатели с COM порта для дальнейшего использования их в температурном...

Получение данных с Com-порта, преобразование строки в бинарную последовательность
Всем доброго времени суток! Недавно начал ковырять Visual C++. Понимаю, что полез в дебри слишком рано, но решил учиться сразу в деле....

139
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
04.03.2018, 13:18
Студворк — интернет-сервис помощи студентам
Usaga, Это не гонево. Это просто знание областей применимости. Оно даже для создания толкового оконного фреймверка и средства визуальной разработки к нему не пригодно в следствие ограничений даваемых GC. Его ниша - замена Visual Basic и не более.
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
04.03.2018, 13:20
Цитата Сообщение от Usaga Посмотреть сообщение
тут никто не требовал точности в миллисекунды. Иначе бы речь шла об отдельной железке.
Мы не знаем точно задачу ТСа. Он только спросил - как получить координаты с нужном ему виде и сказал, что надо это нужно для контроля выхода за нормальные показания. А вот что должно происходить дальше - тайна. Мои предположения и реакции на них выше: если просто предупредить оператора - .Net на винде великолепно с этим справятся, если нужно оперативно оповещать автоматическую систему об этом событии - может случиться казус. Ибо тут наложения таких факторов, как самостоятельная жизнь ОС + довольно низкий скилл автора, который не позволяет говорить о возможности оптимизации кода.
0
Эксперт .NET
 Аватар для Usaga
14578 / 9485 / 1360
Регистрация: 21.01.2016
Сообщений: 35,777
04.03.2018, 13:21
Fulcrum_013, вы GC боитесь как огня. По вашему, всё что делает приложение на .NET - это собирает мусор? А что оно делает, если мусора нет?

Добавлено через 1 минуту
Цитата Сообщение от aquaMakc Посмотреть сообщение
Мы не знаем точно задачу ТСа.
Мы знаем только в общих чертах. Fulcrum_013 же стелепатировал и знает не только задачу, но и решение. Или думает так.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
04.03.2018, 13:23
Usaga, А если его вообще нет. По определению нет существует объектов без трассы на рут. Зачем тогда вообще GC нужен?

Добавлено через 1 минуту
Цитата Сообщение от Usaga Посмотреть сообщение
Мы знаем только в общих чертах. Fulcrum_013 же стелепатировал и знает не только задачу, но и решение. Или думает так.
Озвученных ТС-ом данных достаточно чтобы понять что задача реального времени. Во всяком случае тем кому знакомо понятие задача реального времени. Извеняюсь за вопрос какой максимальной мощности был привод которым управлял разработанный вами код?
0
Эксперт .NET
 Аватар для Usaga
14578 / 9485 / 1360
Регистрация: 21.01.2016
Сообщений: 35,777
04.03.2018, 13:25
Fulcrum_013, если есть объекты, то ещё не значит что GC будет что-то делать. Он мусор убирает. Если нет мусора, то нет и оверхеда от GC, который просто спит. Или вы считаете, что в .NET люди не умеют делать пулы объектов и минимизировать memory footprint?

Добавлено через 1 минуту
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Озвученных ТС-ом данных достаточно чтобы понять что задача реального времени.
Нет, это ваш вывод. ТС сказал, что надо "быстро" показывать результаты. Это обычное требование, никому не нужно "медленно", но и про молниеносную реакцию через 20 тактов процессора он тоже не заявлял.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
04.03.2018, 13:26
Usaga, Вы не поняли сути вопроса. Если объектов которые GC может посчитать мусором нету по определению. Зачем вообще тогда GC нужен?
0
Эксперт .NET
 Аватар для Usaga
14578 / 9485 / 1360
Регистрация: 21.01.2016
Сообщений: 35,777
04.03.2018, 13:34
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Если объектов которые GC может посчитать мусором нету по определению. Зачем вообще тогда GC нужен?
Тогда GC ничего делать не будет пока не появится мусор. А обнаружение мусора запускается только при аллокациях. Нет аллокаций - GC курит бамбук.

Добавлено через 1 минуту
И большая часть деятельности GC идёт в отдельном потоке, без заморозки рабочих потоков до момента удаления объектов или их перемещения в памяти.

Добавлено через 2 минуты
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Зачем вообще тогда GC нужен?
Кажется начинаю понимать ход ваших мыслей. Поулчается, что если есть сборщик мусора, то программист обязан писать код генерящий тонны мусора, чтобы GC не простаивал. Если же программист избегает создания мусора, то ему нужно использовать С++?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
04.03.2018, 13:34
Еще раз то что сказал ТС
Цитата Сообщение от Winchesterous Посмотреть сообщение
нужно отслеживать изменения этих показаний, и сформировать сигнал при выходе из допустимой области их изменений.
А то что про реалтайм я сказал до этого это не телепатия. Это просто знание того где обычно применяются датчики момента с которого снимает показания ТС. При этом предворительно было уточнено - нужно ему данные накапливать или сигналы управляющие генерировать.
Вы на вопрос о мощности привода так и не ответили. Так что подозреваю даже приводом дисковода никогда не управляли. А это кстати ключевой момент. Потому что конкретно по чем ошибки в стоят в таких задачах начинаешь понимать не тогда когда десятимегаватным движком крутишь, но где то за бетонной стеной, а когда управляешь мелким 5кВт но стоящим на соседнем столе.
0
Эксперт .NET
 Аватар для Usaga
14578 / 9485 / 1360
Регистрация: 21.01.2016
Сообщений: 35,777
04.03.2018, 13:36
Fulcrum_013, вы меня про мощность привода не спрашивали. Но думаю, что речь о X киловатт, не меньше. И не совсем ясно какое отношение тип и мощность устройства имеет к сборщику мусора и JIT? Вы так тему сменить пытаетесь?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
04.03.2018, 22:29
Цитата Сообщение от Usaga Посмотреть сообщение
Поулчается, что если есть сборщик мусора, то программист обязан писать код генерящий тонны мусора, чтобы GC не простаивал.
GC есть там где ядро языка генерит мусор само. При этом от утечек памяти созданных программистом GC защитить не может. Они просто принимают другой вид, но суть от этого не меняется. Необходимость вручную обнулять ссылки для избежания таких утечек ничем не отличается от ручного вызова delete.
Цитата Сообщение от Usaga Посмотреть сообщение
Если же программист избегает создания мусора, то ему нужно использовать С++?
Скажем так - если программист избегает ненужных ограничений ему нужно использовать С++ или другой универсальный язык. При этом языки с GC универсальными не являются. Все до одного нишевые. Живут в своих нишах - и пусть живут. Но не надо их пытаться насильно проталкивать туда где они неприменимы или неудобны.

Добавлено через 1 минуту
Usaga, Основной срач вы тут подняли по поводу реалтайм это или нет причем когда уже как божий день было ясно что это реалтайм.

Добавлено через 1 час 47 минут
Цитата Сообщение от Usaga Посмотреть сообщение
ТС сказал "быстро"
ТС сказал "имеет огромное значение скорость реакции". А она как известно меряется с момента возникновения события а не с того момента как винда на прерывание кома среагировала. Если вообще среагировала. Может же решить сказать ну не шмогла переотправьте.
Перед этим ТС прямо сказал - реалтайм.
А ваши галлюцинации что это какой то "не такой" реалтайм и что для реалтайма подходит офисная система - это вообще то называется ни как не иначе чем диверсия.
А то что по вашему типа шарп знает типа пусть на нем - так давайте когда вы с насмороком в поликлинику придете мы вас к патологоанатому отправим за диагнозом, мотивируя тем что у нас терапевт диагноз только по вскрытию определять умеет.

Добавлено через 6 часов 49 минут
Цитата Сообщение от Usaga Посмотреть сообщение
И не совсем ясно какое отношение тип и мощность устройства имеет к сборщику мусора и JIT?
Чтоб прочуствовали что может быть если оно вдруг не туда закрутися.

Цитата Сообщение от Usaga Посмотреть сообщение
JIT?
А эта штука в реалтайм задачах может иметь только одно значение - гарантированное превращение первой же нештатной ситуации в катастрофу. Пример. Едет товарищ Usaga на спроектированной им машине. Все круто , .Net-во все JIT-во и GC-но. Тут ни с того ни с сего ну получилось так - метод объезда препятствий компилировался, потому что раньше препятствия на пути не попадались. Ну зато подушки безопасности сработали эффективно прооптимизированным JIT способом. Одна беда - пока JIT метод отстрела подушек оптимизил, после того как с методом объезда препятствий доразобрался, ремень безопасности успел товарища Usaga, пополам разрезать.
0
Эксперт .NET
 Аватар для Usaga
14578 / 9485 / 1360
Регистрация: 21.01.2016
Сообщений: 35,777
05.03.2018, 06:32
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
GC есть там где ядро языка генерит мусор само. При этом от утечек памяти созданных программистом GC защитить не может. Они просто принимают другой вид, но суть от этого не меняется. Необходимость вручную обнулять ссылки для избежания таких утечек ничем не отличается от ручного вызова delete.
"Ядро языка", что бы под этим не подразумевалось, ничего не генерит. Мусор может создавать библиотечным функционалом, это да, но не в таких объёмах. Да и никто не мешает создавать свои реализации чего угодно, как вы того же STL. А ссылки обнуляют для избежания утечек те же ребята, что и в С++ вручную деструкторы вызывают.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Скажем так - если программист избегает ненужных ограничений ему нужно использовать С++ или другой универсальный язык. При этом языки с GC универсальными не являются. Все до одного нишевые. Живут в своих нишах - и пусть живут. Но не надо их пытаться насильно проталкивать туда где они неприменимы или неудобны.
Ну, т.е. моё предположение было верным? Если человек может на .NET писать не возбуждая GC часто, то ему нужно использовать С++? Вам не кажется это немного бредовым?

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Основной срач вы тут подняли по поводу реалтайм это или нет причем когда уже как божий день было ясно что это реалтайм.
Срач подняли тут вы со "своим GC и JIT - фу-фу-фу, оно не может быстро работать". И реалтайм тоже придумали вы. ТС не требовал реалтайма, ему просто надо было поток данных разобрать. Это вы уже дополнили его задачу (за него) реалтаймом.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Перед этим ТС прямо сказал - реалтайм.
Где? Он сказал "должно быть быстро". Это вы прочитали как "реалтайм".

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А ваши галлюцинации что это какой то "не такой" реалтайм и что для реалтайма подходит офисная система - это вообще то называется ни как не иначе чем диверсия.
А то что по вашему типа шарп знает типа пусть на нем - так давайте когда вы с насмороком в поликлинику придете мы вас к патологоанатому отправим за диагнозом, мотивируя тем что у нас терапевт диагноз только по вскрытию определять умеет.
Это вы уже нести начали и аналогии дестадовские. Быстро не значит "реалтайм". А быстро .NET может. Точка.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Чтоб прочуствовали что может быть если оно вдруг не туда закрутися.
Замечательно. А если устройством будет управлять код на Си да на RTOS, то закрутиться "не туда" оно уже не сможет? Или всё дело в компетенции разработчика? Но если он компетентен, то как ему может помешать GC?

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А эта штука в реалтайм задачах может иметь только одно значение - гарантированное превращение первой же нештатной ситуации в катастрофу.
В случае реалтайма - да, будет небольшая задержка. Но тут-то ТС реалтайм не требует.

Добавлено через 2 минуты
Вообще, мне уже порядком надоело с вами бодаться. Всё, что я хочу - чтобы вы перестали гнать на .NET новичкам. Мне вы можете что угодно рассказывать, я это могу взвесить и оценить. Но новичками не загоняйте, пожалуйста, своё видение мира как постулат.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
05.03.2018, 12:41
Цитата Сообщение от Usaga Посмотреть сообщение
Но если он компетентен, то как ему может помешать GC?
Ему может помешать нереалтаймовая ось
Цитата Сообщение от Usaga Посмотреть сообщение
А быстро .NET может.
Но не может вовремя.
Цитата Сообщение от Usaga Посмотреть сообщение
А ссылки обнуляют для избежания утечек те же ребята, что и в С++ вручную деструкторы вызывают.
Т.е. преимущества перед ручным управлением у GC отсутствую. Зато недостатков и ограничений вышек крыши.
Цитата Сообщение от Usaga Посмотреть сообщение
Быстро не значит "реалтайм". А быстро .NET может. Точка.
Реалтайм значит "вовремя". А вовремя ни .Net ни винда не предназначены.

.

Добавлено через 1 минуту
Цитата Сообщение от Usaga Посмотреть сообщение
Всё, что я хочу - чтобы вы перестали гнать на .NET новичкам.
А я хочу чтобы вы перестали гнать по поводу того что .Net предназначен для чего либо кроме примитивных хеллоувердов. А тем более рассказывать что он применим в робототехнике и промавтоматике.

Добавлено через 3 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
Но тут-то ТС реалтайм не требует.
Пруф в студию что не требует.
Он кучу раз говорил: "реалтайм", "управление промышленным оборудованием", "важно время реакции".
Хотя конечно ТС скорее всего плохо понимает что ему надо и чем реалтайм отличается от нереалтайма.
0
Эксперт .NET
 Аватар для Usaga
14578 / 9485 / 1360
Регистрация: 21.01.2016
Сообщений: 35,777
05.03.2018, 12:46
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Т.е. преимущества перед ручным управлением у GC отсутствую. Зато недостатков и ограничений вышек крыши.
Из чего сделан вывод?

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Пруф в студию что не требует.
Пруф, где он это требовал.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А я хочу чтобы вы перестали гнать по поводу того что .Net предназначен для чего либо кроме примитивных хеллоувердов. А тем более рассказывать что он применим в робототехнике и промавтоматике.
Ваше отношение к этому языку не делает его тем, чем вы тут "малюете". Я от вас не слышал похвалы в сторону чего-либо написанного не вами. Это наводит на мысли.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
05.03.2018, 12:49
Цитата Сообщение от Usaga Посмотреть сообщение
Да и никто не мешает создавать свои реализации чего угодно, как вы того же STL.
Отсутствие автоматически вызываемых деструкторов для размещаемых на стеке объектов вообще то много чему мешает.
0
Эксперт .NET
 Аватар для Usaga
14578 / 9485 / 1360
Регистрация: 21.01.2016
Сообщений: 35,777
05.03.2018, 12:52
Fulcrum_013, серьёзно? Пример приведите.
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
05.03.2018, 12:53
Fulcrum_013, Usaga, предлагаю Вам продолжить срач в личке или специальной ветке форума. Этот топик уже нуждается в изрядной чистке, да и ТС пропал.
0
Эксперт .NET
 Аватар для Usaga
14578 / 9485 / 1360
Регистрация: 21.01.2016
Сообщений: 35,777
05.03.2018, 12:55
aquaMakc, согласен, что это нужно прекратить и смысла в этом нет.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
05.03.2018, 13:20
Цитата Сообщение от aquaMakc Посмотреть сообщение
да и ТС пропал
Уже обрили по всей видимости. Вот до чего побыстрей 2 строчки под .Net накататьUsaga, в реалтайме доводят.
Usaga,
Вот в том то и дело что смысла нет. Пока своими глазами не увидите хотя бы как сляб на сляб налетает на рольганге ничего не поймете. А когда поймете от задач которые не то что с управлением оборудованием, даже c передачей данных могущих повлиять на качество продукции из цеха в цех с .Net бояться как огня будете. Точно так же как любой здравомыслящий начальник отдела АСУП любыми правдами и неправдами спихивает даже задачи передачи данных между цехами, могущих повлиять на качество продукции, в сторону отдела АСУТП.
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
05.03.2018, 13:46
Ребята, давайте дождемся ТС-а
 Комментарий модератора 
Предлагаю воздержаться от флуда
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
05.03.2018, 14:23
Почтальон, А вообще предлагаю темы так или иначе связанные с оборудованием сразу перенаправлять в профильные разделы, во избежание аварий у ТС и разведения срачей на тему могут ли офисные средства стать причиной аварий оборудования.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.03.2018, 14:23

Преобразование порта USB-2 в USB-3
Друзья, подскажите пожалуйста, если возможность преобразовать на материнской плате порт USB-2 в USB-3. Спасибо Валерий

Чтение из COM порта, При чтении из порта зависает read()
Каждому рано или поздно приходится программировать com порт. Вот и мой черед пришол. Я ужу умею: Откривать,закривать, писать. а читать не...

Программа, которая по прерыванию на входе INT1 (OMK-51) выводит разницу двух чисел на линии порта 2
Пожалуйста, помогите создать программу, которая по прерыванию на входе INT1 (OMK-51) выводит разницу двух чисел на линии порта 2. Данные...

Преобразование чисел
Здравствуйте, за последнее время, задаю очень много вопросов, но лучше уж так, чем все бросить... Вернусь к теме. Есть разные числа,...

Преобразование чисел
Помогите перевести числа из 2, 8, 16 системы счисления в 10 систему счисления.


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

Или воспользуйтесь поиском по форуму:
140
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru