![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 01.07.2010
Сообщений: 3
|
![]()
начну с того , что я новичок. суть проблемы. есть девайс(индикатор автомобильных весов) с сом портом по которому передаються данные о весе , транспорте , грузе и время . нужно помоч сельчанам с сохранением данных в базу данных . Надеюсь ,что остались еще безкорыстные гении.
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 12.05.2010
Сообщений: 219
|
![]()
olegd
а с чем именно проблемы - с передачей данных по сом-порту или с сохранением их в базу данных? или ты хочешь, чтобы тебе с нуля за здорово живешь написали программу, а ты ее за деньги продал "односельчанам"? |
![]() |
![]() |
![]() |
#3 |
Регистрация: 01.07.2010
Сообщений: 3
|
![]()
я сам обслуживаю это оборудование и не о какой продаже речь не идет.зачем так писать не зная о человеке ничего.
![]() |
![]() |
![]() |
![]() |
#4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
И нечего сердится ты сам задал вопрос так что на него по другому не ответишь.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 12.05.2010
Сообщений: 219
|
![]()
автор, какое отношение имеет твоя тема к "помощи студентам"?
на форуме существуют отдельные разделы по БД, и отдельно можно спросить, как осуществляется передача данных по сом-порту (ничего сложного нет - могу выложить пример передачи и приема данных). если хочешь полностью готовый код - то во фриланс. |
![]() |
![]() |
![]() |
#6 |
Регистрация: 01.07.2010
Сообщений: 3
|
![]()
я просто не знал в каком разделе попросить помощи. спасибо за понимание . пример - это хорошо.давай выложи,если будут какие вопросы ,поможешь?
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 12.05.2010
Сообщений: 219
|
![]()
сначала нужно задать кое-какие параметры и вообще "подготовиться" к передаче-приему данных. "Открывают" порт обычно функцией CreateFile
Код:
fSuccess - переменная булевского типа, в дальнейшем мы будем использовать ее, чтобы удостоверится, что операция завершилась корректно или узнать, что произошла ошибка. Нужно инициализировать структуру DCB Код:
Код:
далее, собственоно, устанавливаем те параметры, которые нам нужны и настраиваем СОМ-порт Код:
Код:
Код:
Последний раз редактировалось Snejnaya; 05.07.2010 в 10:34. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 12.05.2010
Сообщений: 219
|
![]()
Чтение данных осуществляется функцией ReadFile
Код:
третьим параметром - размер считываемых данных. третий параметр - размер (в байтах) считываемой информации Какая сложность тут возникает... От девайса идут данные непрерывным потоком. Тебе нужно определить, где, собственно, начинается полезная информация. В противном случае (т.к. данные считываются побайтно) при чтении из порта данных типа long int, к примеру, может получится полная околесица. Поэтому ждут "отклика" от девайса - пакета инициализации (назовем его так). Т.е. девайс (его ПО) формирует пакет данных, строго определенной структуры, например: заголовок-вес-транспорт-груз-время на каждое поле отводится строго определенный размер. Девайс высылает этот пакет по СОМ-порту, на "той стороне" ты ПОБАЙТНО анализируешь данные и "ловишь" заголовок пакета. Чтобы не пропустить заголовок делают это так: есть какой-то буфер размера 4 байт(к примеру). Идут данные непрерывным потоком 1-2-3-4-5-6-7-8-9-10 и т.д байт. считываешь 4 байта (1-2-3-4) в буфер, проверяешь, не лежит ли теперь в буфере заголовок пакета. Если не лежит, считываешь следующий байт (пятый), данные в буфере сдвигаешь на один байт и в конец буфера кладешь пятый байт. Получается, что теперь в буфере лежат 2-3-4-5 байты. Не являются ли они заголовком пакета? Нет, считываем шестой байт и т.д. пока не "поймаем" заголовок. Как только поймали заголовок, можно считывать пакет с собственно полезной информацией - считываем осторожно, учитывая структуру пакета (какие поля сколько места занимают). Вроде как можно считывать данные типов int, long int и др. размером более 1 байта обычным Код:
Охотно допускаю, что чтение можно осуществлять и не побайтно... Если кто-то из сведующих зайдет, думаю, меня поправят. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
освободить СОМ порт | varelik | Общие вопросы Delphi | 11 | 11.02.2010 21:49 |
СОМ порт | JUDAS | Win Api | 0 | 10.01.2009 21:27 |
вопрос про СОМ-порт | фЁдОр | Компьютерное железо | 8 | 29.12.2008 16:04 |
СОМ порт | SERG1980 | Общие вопросы Delphi | 3 | 17.05.2007 08:06 |
СОМ порт IR управление мультимедиа | Andr12 | Свободное общение | 2 | 10.02.2007 12:07 |