Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2011, 11:10   #1
DasModelka
 
Регистрация: 15.06.2010
Сообщений: 7
По умолчанию Заполнение массива с COM порта

Здравствуйте!!!!
Вообщем ситуация такая, есть мониторчик управления который через COM порт отправляет на контроллер показания Скорости и Время в 16bit-signed. А мне надо контроллером принять эти данные, и так как в COM порт льется все сразу, сформировать из данных ком порта две переменные, первые 2 байта -> скорость, вторые 2 байта -> время. Я думаю реализовать это через массив, но так как писал до этого на Делфи, понятия не имею как это сделать......
Заранее благодарен, за помощь !
DasModelka вне форума Ответить с цитированием
Старый 25.04.2011, 13:52   #2
Азамат Казанчев
Форумчанин
 
Регистрация: 25.04.2011
Сообщений: 110
По умолчанию

сейчас на чем пишешь?
я сам сечас на делфи с бкомпортом воюю, поэтому вопрос результат приходит в кодированном виде или нет? ты как потом опирировать собираешься с массивами?
может просто присвоешь сначало все в 1 строку, декодируешь если надо, (можно выводить все это на экран), а дальше скпируешь из строки первую половину(до какогото знака-определишьпозже) и второую также
Азамат Казанчев вне форума Ответить с цитированием
Старый 30.04.2011, 19:38   #3
DasModelka
 
Регистрация: 15.06.2010
Сообщений: 7
По умолчанию

если ты имееш ввиду DBC или нет, то нет, дело все еще в том что, у контроллера для работы с КОМом есть комманда ReadCom("Number_of_port") который читает весь буфер КОМ порта, поэтому сначала мне полюбому набо считать все либо в char какойнибудь, либо хз. Вот я не знаю как быть, как мне считать весь КОМ порт в память например, присвоить одной переменной первые 2 байта инфы, а другой вторые 2, это при условии, что я точно знаю, что у меня на КОМ порт приходит 4 байта. То есть я на мониторе задаю 1556, а он мне присылает байт с 15 и байт с 56. И как мне потом перегнать в int обе переменные, что бы сформировать кол-во импульсов.
DasModelka вне форума Ответить с цитированием
Старый 30.04.2011, 21:36   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

сформируйте простейший пакет и проверяйте контрольную сумму, это если на будущее ...а вообще, настройку буфера приема делали?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 30.04.2011, 21:46   #5
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

А как работать с портами в Windows XP без программы для прямой работы? Ну как ее составить самому? Я на С++ пишу, хотя если с Delphi проще, могу его скачать, уже понравился мне он
Krasi вне форума Ответить с цитированием
Старый 30.04.2011, 22:34   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

createfile(), readfile(), writefile()... неважно на чем пишите, все равно юзаете API и работаете со системным драйвером, абстрагируясь от него ...хотя, никто не запрещает и через "0" кольцо, тот же Giveo и т.п. и т.д./
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 01.05.2011, 12:50   #7
*PB*
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 558
По умолчанию

Цитата:
Сообщение от DasModelka Посмотреть сообщение
Я думаю реализовать это через массив, но так как писал до этого на Делфи, понятия не имею как это сделать......
Дельфи не умеет работать с массивами или с COM портом?
*PB* вне форума Ответить с цитированием
Старый 02.05.2011, 10:10   #8
DasModelka
 
Регистрация: 15.06.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от *PB* Посмотреть сообщение
Дельфи не умеет работать с массивами или с COM портом?
Я лишь про то, что Си увидел впервые и синтаксис другой, а не про то что Делфи не работает с СОМ и массивами, не переворачивайте слова.
DasModelka вне форума Ответить с цитированием
Старый 02.05.2011, 12:51   #9
*PB*
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 558
По умолчанию

Цитата:
Сообщение от DasModelka Посмотреть сообщение
Я лишь про то, что Си увидел впервые и синтаксис другой, а не про то что Делфи не работает с СОМ и массивами, не переворачивайте слова.
Тогда дальше пишите на Дельфи.
Зачем для такой простой задачи использовать Си?
*PB* вне форума Ответить с цитированием
Старый 02.05.2011, 18:04   #10
DasModelka
 
Регистрация: 15.06.2010
Сообщений: 7
По умолчанию

Потому что данный контроллер программируеться на Си и только на нем, и стандартные библиотеки у него под Си. Еслиб у меня был выбор то конечно на Делфях бы писал....
DasModelka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение массива Alex_Mason Общие вопросы Delphi 2 07.12.2010 22:58
заполнение массива GaLiof JavaScript, Ajax 4 01.11.2010 20:36
Заполнение массива siemdi Общие вопросы C/C++ 12 27.05.2010 22:21
Заполнение массива. Небесный Общие вопросы C/C++ 3 01.09.2009 01:39
Как получить данные с COM-порта или другого любого порта? DeLure Общие вопросы C/C++ 5 20.09.2007 00:50