![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| quiz |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 15.8.2005 Репутация: нет Всего: нет |
Имеется переменная int param=75 (к примеру), необходимо отправить ее в com-порт в hex-виде. То есть, чтобы в порт вывелось "4b".
Если я вывожу напрямую в порт (COM->Write()) значение переменной, то оно кодируется по ASCII и в порт выводится "37 35" :( Долго мучаюсь с этой задачей, надеюсь на вашу помощь. Спасибо! |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: нет Всего: 196 |
Добавлено через 2 минуты и 18 секунд Кстати, а что у тебя за класс COM и его метод Write? Какие он параметры принимает? Что в описании написано? |
|||
|
||||
| quiz |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 15.8.2005 Репутация: нет Всего: нет |
Пишу COM->Write(data.c_str(), 0, data.size()); и получаю:
Добавлено через 3 минуты и 33 секунды Извиняюсь, забыл написать. Использую Visual C++ (2008) Write(String) Записывает указанную строку в последовательный порт. Write(Byte[], Int32, Int32) Записывает указанное число байтов в последовательный порт, используя данные из буфера. Write(Char[], Int32, Int32) Записывает указанное число символов в последовательный порт, используя данные из буфера. |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: нет Всего: 196 |
quiz, ты не С++ изучаешь, а .NET.
Это сообщение отредактировал(а) bsa - 5.10.2009, 16:48 |
|||
|
||||
| KelTron |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 11 Всего: 38 |
Для шарпа:
Для C++.NET вроде так:
-------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
||||
|
|||||
| quiz |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 15.8.2005 Репутация: нет Всего: нет |
В этом случае, при значении param=75, он выдает в порт "4b" в виде текста. В порт идут ASCII-коды цифры 4 и буквы b, то есть "34 62" |
||||
|
|||||
| quiz |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 15.8.2005 Репутация: нет Всего: нет |
Решил задачу так
Для значений от 0 до 127 работает отлично, а после - не хочет :( Для значения 140 необходимо отправить 0x8c. Пробую COM->Write("\x8c"); В порт выдается "C2 80" |
|||
|
||||
| quiz |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 15.8.2005 Репутация: нет Всего: нет |
Окончательно добил подбором нужной кодировки
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |