Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #30 : 17-07-2008 06:26 » |
|
а вот так: ATE 0 ATE 1
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #31 : 17-07-2008 09:43 » |
|
кириллица вот никак не желает передаваться (( koi8 не спасает , куда копать ?
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #32 : 17-07-2008 17:25 » |
|
Леш, там не 8-битная кодировка. Логично было бы - UTF8 - попробуй. Строчка "ЙЦУКЕН": d0 99 d0 a6 d0 a3 d0 9a d0 95 d0 9d
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #33 : 17-07-2008 17:41 » |
|
хорошо, опробую завтра на работе даже уже нашёл, чем конвертить -
MultiByteToWideChar(CP_UTF8,...
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #34 : 18-07-2008 08:30 » |
|
а что то странное с MultiByteToWideChar - выбирает из строки только ascii , всё остально начисто игнорирует , в описании ничего такого не нашёл
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #35 : 18-07-2008 10:25 » |
|
Попробуй сам сконвертить... в Wiki ИМХО хорошо описан UTF-8 (и прочие): http://ru.wikipedia.org/wiki/UTF-8Написать функцию конвертации не составит большого труда...
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #36 : 18-07-2008 10:29 » |
|
попробую
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #37 : 18-07-2008 12:00 » |
|
блин, всё равно глухо, моск плавится ((
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #38 : 18-07-2008 12:19 » |
|
Алексей1153++, что глухо? смски по русски не приходят?, а терминал по русски понимать?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #39 : 18-07-2008 12:24 » |
|
Леш, все очень просто: unsigned char c1; // очередной байт из потока unsigned char c2; // второй байт из потока unsigned char c3; // третий байт из потока unsigned short u; // unicode символ
if (c1 & 0x80) { if (c1 & 0xe0 == 0xc0 && c2 & 0xc0 == 0x80) u = ((c1 & 0x1f) << 6) | (c2 & 0x3f); else if (c1 & 0xf0 == 0xe0 && c2 & 0xc0 == 0x80 && c3 & 0xc0 == 0x80) u = ((((c1 & 0x1f) << 6) | (c2 & 0x3f)) << 6) | (c3 & 0x3f); else // Либо трехбайтовая последовательность (но это в Unicode 16-bit не влезет), либо ошибка потока. } else { // ASCII u = c1; }
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #40 : 18-07-2008 16:55 » |
|
так нет, у меня задача такая - имеется тупо строка : const char* pText="русский english 222"; это надо передать в сот, который отошлёт смс. Если режим GSM, то приходят только латинские и цифры пробовал переводить в UDF-8 как это показано в вики, но вот это Строчка "ЙЦУКЕН": d0 99 d0 a6 d0 a3 d0 9a d0 95 d0 9d
ваще никаким боком не сходится - даже на бамажке расписал, чтоб биты потусовать, ну никак не подходит , Ром, это откуда строчка взята ? конверт делал так: if( ((BYTE)*p) <= 0x7f ) { //добавить в результат: байт (*p) } else { //добавить в результат 1) bin(11000000) | ((*p & bin(00111111) )) 2) bin(10000000) | ((*p & bin(11000000)>>6 ))
//наоборот порядок байтов тоже пробовал - 2) 1)
}
|
|
« Последнее редактирование: 18-07-2008 19:48 от Алексей1153++ »
|
Записан
|
|
|
|
Basurman
|
|
« Ответ #41 : 18-07-2008 17:06 » |
|
Насчёт EnumPorts. А при чём здесь эта функция? Строки из описания функции EnumPorts из SDK: "The EnumPorts function enumerates the ports that are available for printing on a specified server." "Remarks The EnumPorts function can succeed even if the server specified by pName does not have a printer defined." Т.е. она как-бы для принтеров.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #42 : 18-07-2008 17:23 » |
|
ну она и показала себя плохо )))
а в реестре на лету обновляется - воткнул девайс, появился ком, вытащил - пропал
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #43 : 20-07-2008 08:58 » |
|
Леш, что у тебя не получается? Проверяю по алгоритму, расписанному выше, последовательность d0 99 (буква "Й" в UTF-8): if (0xd0 & 0xe0 == 0xc0 && 0x99 & 0xc0 == 0x80) u = ((0xd0 & 0x1f) << 6) | (0x99 & 0x3f); // 0x10 << 6 + 0x19 = 0x419
0x419 - это код буквы "Й" в юникоде.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #44 : 20-07-2008 11:22 » |
|
ну, блин, может оно и правильно всё перевелось, но почему то телефон в режиме AT+CSCS="UCS2" никак не желает строку принимать. Номер-адрес принимает, присылает '>' , а на текст сообщения говорит ERROR текст сообщения, к примеру ту же "Й" посылаю : "\x19\x04" "\x1a" пробовал и наоборот байты - "\x04\x19" "\x1a" может я отправляю неправильно ? ----------------------- нашёл тут совет где то - <...> Начнем с UCS2. Сама кодировка повторяет Unicode. Т.е. для английских символов просто однобайтовой кодировки добавляется байт 00H. Для русских (те, что начинаются с C0H в Windows-кодировке) можно создать такое правило:
Из байта вычитается C0H и прибавляется 410H (кроме букв "ё" и "Ё", которые в Unicode имеют коды 0451H и 0401H соответственно). <...>
это тоже не прокатило, ERROR говорит телефон и всё тут...
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #45 : 20-07-2008 17:53 » |
|
с форматом разобрался, в UCS2 посылается хексы в виде простой строки:
123 -> "003100320033\x1a"
однако русские символы упорно не желают приходить, приходят лишь цифры и латиница, я явно чего то не понимаю )))
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #46 : 21-07-2008 04:41 » |
|
тут мне подсказывают, якобы активировать поддержку UCS2 надо (хм), послав на номер смс-центра "UCS2"
номер достаётся командой CSCA, но этот номер неактивен, пишет телефон, отсылать на него не получается )))
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #47 : 21-07-2008 07:01 » |
|
после команды AT+CSMP=17,167,2,25 стали отправлять русские символы, но почему то только а...й, А...Й команда была в качестве примера к отсылки китайских символов, вообще то, но, раз это правильный путь, что есть кодовая схема (последний параметр - 25) ?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #48 : 21-07-2008 10:11 » |
|
всё, глюк найден и удавлен Это была опечатка в программе, теперь можно отправить 70 символов в USC2 (281 байт) или, думается, в 4 раза больше в GSM (но без русских)
|
|
|
Записан
|
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #49 : 21-07-2008 10:27 » |
|
Почему в 4 раза? в два! и кодировку менять надо явно... Еще в стандарте есть конкантенированные сообщения которые шлются по частям.
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #50 : 21-07-2008 10:39 » |
|
в этом случае - не в 2 , а в 4 , а по частям мне бить не нужно -я ограничил строку до 64 символов, им хватит )
|
|
|
Записан
|
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #51 : 21-07-2008 10:43 » |
|
в одной смс больше 170 символов (в 7-битке) не передашь, там всего 140 байт на текст выделено вроде. Это вроде по стандарту SMPP пакета.
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #52 : 21-07-2008 11:05 » |
|
как в смс передаётся, я не знаю, а в телефон удаётся передать 281 байт (в UCS2 это 70 символов) - мне достаточно. Может ещё как-то русские символы иожно передать ?
|
|
|
Записан
|
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #53 : 21-07-2008 12:43 » |
|
в смс твои 4 байта превращаются в 2, то есть строка преобразуется в байты... и получается 140 байт... (русские только юникодом так что больше 70 никак в одной) туда же ты можешь запихнуть те же 140 байт в GSM (т.е. 140 символов), еще есть 7-битная кодировка - в 140 байт можно запихнуть 160 символов текста.
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #54 : 21-07-2008 14:17 » |
|
PooH, ну в эти тонкости мне вроде как не надо влазить, мне главнее - русские символы передать Ибо клиент жаждит
|
|
|
Записан
|
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #55 : 22-07-2008 05:26 » |
|
я ограничил строку до 64 символов, им хватит я к тому, что можно смело до 70... а если латиницей то до 140 и по тексту автоматически определять кодировку... хотя это конечно по желанию
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #56 : 22-07-2008 05:44 » |
|
текст в 99,9% будет русский
|
|
|
Записан
|
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #57 : 22-07-2008 07:39 » |
|
им хватит 640 килобайт оперативной памяти достаточно для решения любых задач на компьютере.
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #58 : 22-07-2008 16:29 » |
|
PooH, да там охранные сообщение Постановка, снятие, нарушения, тестовые - всё короткое
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #59 : 22-07-2008 16:34 » |
|
Леш, ну, ты же знаешь, что много чего угодно (памяти, денег, меда и т.д.) не бывает... А классику: 12 13 40 (объект 12, датчик 13: код "40")? Может оно было бы компактнее и информационно ёмче?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|