![]() |
|
|
![]()
|
|
| qwerty2200 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 23.11.2006 Репутация: нет Всего: нет |
Програмлю в Builder C++ 6. Появилась необходимость добавление к запросу ещё 2 байта с контрольной суммой.
У меня есть буфер: AnsiString buf = "\x11\xFC\x50"; Отправляю буфер функции и получаю два байта (INT): AnsiString LoByte, HiByte; LoByte = CRC(buf, 0); // 27 HiByte = CRC(buf, 1); // F6 И вот вопрос, как мне правильно подцепить эти два байта к переменной buf? Пробовал и buf = buf + AnsiString("\x") + AnsiString(LoByte); и buf.c_str() = buf.c_str() + Char("\x") + Char(LoByte.c_str()); всё равно при передаче данных в comport из buf, нормальные 3 байта 11FC50 и ещё \x27\xF6 Помогите кто чем может, а то уже даже незнаю куда копать. |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
можно просто
buf.sprintf("%02x", CRC(buf, 0);) + не понятно зачем CRC два раза считать... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| qwerty2200 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 23.11.2006 Репутация: нет Всего: нет |
Делаю buf.sprintf("%02x", CRC(buf, 0)); получаю 9f614c, а мне надо в buf дописать 0x27 P.s. Вот такие требование по сумме в протоколе P.s.s. LoByte имеет строку 27 (LoByte = "27"), а buf у меня содержит 3 байта (0x11 0xFC 0x50). Мне надо LoByte превести к виду 0x27 и добавить в buf Помогите пожалуйста, а то уже 2 дня мучаюсь и не как немогу понять что и как делать Это сообщение отредактировал(а) qwerty2200 - 23.11.2006, 14:55 |
|||
|
||||
| Vyacheslav |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Тут не понятно следущее. Зачем CRC возвращает символьное значение байтов. Теперь для того что бы корректно вставить байты в буфер придется опять преобразовывать их в байты
Или CRC все таки возврашает байты, а не их символьное зачение, то тогда все просто
Добавлено @ 17:10
Так что все таки содержит LoByte: строку из двух символов '2' и '7', или char , значение которого '\27'? Если первое, то возникает резонный вопрос : "А нафига?" И если Вы имеет доступ к коду CRC срочно поменяйте. Короче, у Вас должен быть следующий код
-------------------- С уважением, Вячеслав Ермолаев |
||||||
|
|||||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |