![]() |
|
|
![]()
|
|
| 13dreams |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 1.7.2010 Репутация: нет Всего: нет |
Скачал простенькую dll для работы с com портом. Прототип её функции записи (чтения) выглядит так
Передо мной задача - отправлять и принимать данные в 16ричной системе. Можно ли использовать эту dll? |
|||
|
||||
| 586 |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 6 Всего: 146 |
Можно. Функция Send принимает массив из типов char. А тип char может быть в пределах шестнадцатиричных чисел от 0x00 до 0xFF. вернее так: тип char от -0x80 до 0x7F и тип unsigned char от 0x00 до 0xFF А чтобы передать в функцию массив unsigned char достаточно привести массив к указателю на char*.
Это сообщение отредактировал(а) 586 - 14.7.2010, 13:55 |
||||
|
|||||
| 13dreams |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 1.7.2010 Репутация: нет Всего: нет |
Благодарю!
А если порт получит значение, допустим, 0хF1 (прототип для функции приёма такой же), то это значение можно будет получить таким же способом? или программа поведёт себя по-другому? |
|||
|
||||
| 586 |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 6 Всего: 146 |
будет либо так:
либо так:
либо так:
При выполнении преобразования (unsigned char*) к (char*) сами данные не изменяются. Преобразование делается для того, чтобы компилятор понял, что там беззнаковые числа (т.е. от 0x00 до 0xFF). Это сообщение отредактировал(а) 586 - 14.7.2010, 16:11 |
||||||||
|
|||||||||
| 13dreams |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 1.7.2010 Репутация: нет Всего: нет |
Спасибо, всё предельно понятно
И последнее - помогите добить код эмулирую что-то типа вольтметра : когда отправляю в устройство символ "1" - оно присылает мне напряжение. Это всё делаю в таймере и всё работает
Задача - добавить ответ на символ "2". Аналогично добавляю тот же код
Результат должен быть такой: допустим мы принимаем символ "А" на запрос "1". И символ "Б" на запрос "2" <первая строка(m_Napr)> "А" <вторая строка(m_Tok)> "Б" а у меня почему-то выходит так <первая строка(m_Napr)> "АБ" <вторая строка(m_Tok)> "" ---- здесь вообще пусто Пробовал использовать два разных чаровских буфера - всёравно то же. Но если я дописываю строчку
перед
(она выше закоментирована) то результат такой <первая строка(m_Napr)> "АБ" <вторая строка(m_Tok)> "АБ" и чего так происходит? |
||||||||
|
|||||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |