Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2] 3  Все   Вниз
  Печать  
Автор Тема: отправка SMS через сотовый с компа  (Прочитано 70269 раз)
0 Пользователей и 5 Гостей смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #30 : 17-07-2008 06:26 » 

а вот так:
ATE 0
ATE 1
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #31 : 17-07-2008 09:43 » 

кириллица вот никак не желает передаваться (( koi8 не спасает , куда копать ?
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #32 : 17-07-2008 17:25 » 

Леш, там не 8-битная кодировка. Логично было бы - UTF8 - попробуй.
Строчка "ЙЦУКЕН": d0 99 d0 a6 d0 a3 d0 9a d0 95 d0 9d
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #33 : 17-07-2008 17:41 » 

хорошо, опробую завтра на работе
даже уже нашёл, чем конвертить -

MultiByteToWideChar(CP_UTF8,...
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #34 : 18-07-2008 08:30 » 

а что то странное с
MultiByteToWideChar - выбирает из строки только ascii , всё остально начисто игнорирует , в описании ничего такого не нашёл
Записан

Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #35 : 18-07-2008 10:25 » 

Попробуй сам сконвертить...
в Wiki ИМХО хорошо описан UTF-8 (и прочие): http://ru.wikipedia.org/wiki/UTF-8
Написать функцию конвертации не составит большого труда...
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #36 : 18-07-2008 10:29 » 

попробую
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #37 : 18-07-2008 12:00 » 

блин, всё равно глухо, моск плавится ((
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #38 : 18-07-2008 12:19 » 

Алексей1153++, что глухо? смски по русски не приходят?, а терминал по русски понимать?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #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;
}
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline 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
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #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."
Т.е. она как-бы для принтеров.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #42 : 18-07-2008 17:23 » 

ну она и показала себя плохо )))

а в реестре на лету обновляется - воткнул девайс, появился ком, вытащил - пропал
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #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 - это код буквы "Й" в юникоде.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline 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 говорит телефон и всё тут...
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #45 : 20-07-2008 17:53 » 

с форматом разобрался, в UCS2 посылается хексы в виде простой строки:

123 -> "003100320033\x1a"

однако русские символы упорно не желают приходить, приходят лишь цифры и латиница, я явно чего то не понимаю )))
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #46 : 21-07-2008 04:41 » 

тут мне подсказывают, якобы активировать поддержку UCS2 надо (хм), послав на номер смс-центра "UCS2"

номер достаётся командой CSCA, но этот номер неактивен, пишет телефон, отсылать на него не получается )))
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #47 : 21-07-2008 07:01 » 

после команды
AT+CSMP=17,167,2,25
стали отправлять русские символы, но почему то только а...й, А...Й
команда была в качестве примера к отсылки китайских символов, вообще то, но, раз это правильный путь, что есть кодовая схема (последний параметр - 25) ?
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #48 : 21-07-2008 10:11 » 

всё, глюк найден и удавлен Улыбаюсь Это была опечатка в программе, теперь можно отправить 70 символов в USC2 (281 байт) или, думается, в 4 раза больше в GSM (но без русских)
Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #49 : 21-07-2008 10:27 » new

Почему в 4 раза? в два! и кодировку менять надо явно... Еще в стандарте есть конкантенированные сообщения которые шлются по частям.
Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #50 : 21-07-2008 10:39 » 

в этом случае - не в 2 , а в 4 , а по частям мне бить не нужно -я ограничил строку до 64 символов, им хватит )
Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #51 : 21-07-2008 10:43 » 

в одной смс больше 170 символов (в 7-битке) не передашь, там всего 140 байт на текст выделено вроде. Это вроде по стандарту SMPP пакета.
Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #52 : 21-07-2008 11:05 » 

как в смс передаётся, я не знаю, а в телефон удаётся передать 281 байт (в UCS2 это 70 символов) - мне достаточно. Может ещё как-то русские символы иожно передать ?
Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #53 : 21-07-2008 12:43 » 

в смс твои 4 байта превращаются в 2, то есть строка преобразуется в байты... и получается 140 байт... (русские только юникодом так что больше 70 никак в одной) туда же ты можешь запихнуть те же 140 байт в GSM (т.е. 140 символов), еще есть 7-битная кодировка - в 140 байт можно запихнуть 160 символов текста.
Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #54 : 21-07-2008 14:17 » 

PooH, ну в эти тонкости мне вроде как не надо влазить, мне главнее - русские символы передать Улыбаюсь Ибо клиент жаждит
Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #55 : 22-07-2008 05:26 » 

Цитата
я ограничил строку до 64 символов, им хватит
я к тому, что можно смело до 70... а если латиницей то до 140 и по тексту автоматически определять кодировку... хотя это конечно по желанию Улыбаюсь
Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #56 : 22-07-2008 05:44 » 

текст в 99,9% будет русский Улыбаюсь
Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #57 : 22-07-2008 07:39 » 

Цитата: Алексей1153++
им хватит
Цитата: Билл Гейтс
640 килобайт оперативной памяти достаточно для решения любых задач на компьютере.
Жжешь
Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #58 : 22-07-2008 16:29 » 

PooH, да там охранные сообщение Улыбаюсь Постановка, снятие, нарушения, тестовые - всё короткое
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #59 : 22-07-2008 16:34 » 

Леш, ну, ты же знаешь, что много чего угодно (памяти, денег, меда и т.д.) не бывает... Улыбаюсь

А классику: 12 13 40 (объект 12, датчик 13: код "40")? Может оно было бы компактнее и информационно ёмче?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: 1 [2] 3  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines