powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Отправка смс через GRPS модем
25 сообщений из 69, страница 2 из 3
Отправка смс через GRPS модем
    #36086619
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zebroxWinnipuh,


спсок возможных кодировок вроде или AT+CSCS? или AT+CSCS=?

zebrox, я на них тоже смотрел сегодня, но что в аргументах писать, хз)))
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36086622
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие они должны быть интересно для русского языка.
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36086632
zebrox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Khusainov_HeckfyzebroxWinnipuh,


спсок возможных кодировок вроде или AT+CSCS? или AT+CSCS=?

zebrox, я на них тоже смотрел сегодня, но что в аргументах писать, хз)))

а в аргументе писать какую кодировку включить, если русский слать нужно то:
AT+CSCS="UCS2"
если на аглицком йизыке то:
AT+CSCS="GSM"

а вообще или AT+CSCS? или AT+CSCS=? выдает список возможных кодировок, вот из них и выбирайте.
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36086727
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо большое, вечерком попробую, отпишусь
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36086854
Фотография МСильвер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Khusainov_Heckfy
причем тут это? Звонит он. Смс посылает. Вин служба уже на тестировании. просто заказчик хочет чтобы были русски букофки)
аа..
ну так это проще...
Надо отправлять в формате UCS
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
String strAlphabet = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщэюяABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'-* :;)(.,!=_";
        String[] ArrayUCSCode = new String[137]{            
            "0410","0411","0412","0413","0414","0415","00A8","0416","0417",
            "0418","0419","041A","041B","041C","041D","041E","041F","0420",
            "0421","0422","0423","0424","0425","0426","0427","0428","0429",
            "042C","042A","042D","042E","042F","0430","0431","0432","0433",
            "0434","0435","00B8","0436","0437","0438","0439","043A","043B",
            "043C","043D","043E","043F","0440","0441","0442","0443","0444",
            "0445","0446","0447","0448","0449","044D","044E","044F","0041",
            "0042","0043","0044","0045","0046","0047","0048","0049","004A",
            "004B","004C","004D","004E","004F","0050","0051","0052","0053",
            "0054","0055","0056","0057","0058","0059","005A","0061","0062",
            "0063","0064","0065","0066","0067","0068","0069","006A","006B",
            "006C","006D","006E","006F","0070","0071","0072","0073","0074",
            "0075","0076","0077","0078","0079","007A","0030","0031","0032",
            "0033","0034","0035","0036","0037","0038","0039","0027","002D",
            "002A","0020","003A","003B","0029","0028","002E","002C","0021",
            "003D","005F"};
...

// формируем сообщение
StringBuilder PDUMessage = new StringBuilder();
                PDUMessage.Append("000100" + String.Format("{0:X2}", CellNumber.Length + 1) + "91");
                PDUMessage.Append(ConvertPhoneNumber(CellNumber));
                PDUMessage.Append("0008" + String.Format("{0:X2}", SMSText.Length * 2) + ConvertTextToUCS(SMSText));
// отправляем сообщение
                spGSMModem.Write("AT+CMGS=" + Convert.ToString((PDUMessage.Length / 2) - 1) + "\r");
                System.Threading.Thread.Sleep(9000);
                spGSMModem.Write(PDUMessage.ToString() + Convert.ToChar(26));
                System.Threading.Thread.Sleep(3000);

...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36086858
Фотография МСильвер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
        private String ConvertTextToUCS(String InputText)
        {
            StringBuilder UCS = new StringBuilder(InputText.Length);
            Int32 intLetterIndex=0;
            for (int i = 0; i < InputText.Length; i++)
            {
                intLetterIndex = strAlphabet.IndexOf(InputText[i]);
                if (intLetterIndex != -1)
                {
                    UCS.Append(ArrayUCSCode[intLetterIndex]);
                }
                 
            }
            return UCS.ToString();
        }


        private String ConvertPhoneNumber(String PhoneNumber)
        {
            StringBuilder NewNumber = new StringBuilder(PhoneNumber.Length);
            if (PhoneNumber.Length / 2 == PhoneNumber.Length / 2.0) // число четное
            {
                for (int i = 0; i < PhoneNumber.Length / 2; i++)
                {
                    NewNumber.Append(PhoneNumber[2 * i + 1].ToString());
                    NewNumber.Append(PhoneNumber[2 * i].ToString());
                }
            }
            else // номер с нечетным кол-вом символом
            {
                for (int i = 0; i < PhoneNumber.Length / 2; i++)
                {
                    NewNumber.Append(PhoneNumber[2 * i + 1].ToString());
                    NewNumber.Append(PhoneNumber[2 * i].ToString());
                }
                NewNumber.Append("F");
                NewNumber.Append(PhoneNumber[PhoneNumber.Length - 1]);
            }
            return NewNumber.ToString();
        }
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36087530
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zebrox,

Что-то не могу побороть. Пишу вот так вот:

Код: plaintext
1.
2.
3.
4.
5.
6.
port.WriteLine("AT+CMGF=1");
            System.Threading.Thread.Sleep(500);
            port.WriteLine("AT+CSCS=" + (char)(34) + "UCS2" + (char)(34));
            System.Threading.Thread.Sleep(500);
            port.WriteLine("AT+CMGS=" + (char)(34) + PhoneNumber.Replace("-", "") + (char)(34));
            System.Threading.Thread.Sleep(450);
            port.WriteLine(text + System.Environment.NewLine + (char)(26));

лог модема вот такой:
AT+CMGF=1
OK AT+CSCS="UCS2"
OK AT+CMGS="+79132090027"
ERROR ??????? ????? ? ?????????.

ERROR


а если

Код: plaintext
1.
2.
3.
4.
port.WriteLine("AT+CMGF=1");
            System.Threading.Thread.Sleep(500);
            port.WriteLine("AT+CMGS=" + (char)(34) + PhoneNumber.Replace("-", "") + (char)(34));
            System.Threading.Thread.Sleep(450);
            port.WriteLine(text + System.Environment.NewLine + (char)(26));

то все норм...
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36087534
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоесть
Код: plaintext
"AT+CSCS=" + (char)(34) + "UCS2" + (char)(34));
прошло норм.
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36087542
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот МСильвер написал код....
Это что? я так понимаю это перевод всего в юникод??? и посылка потом уже этого???
Изза того что это не юникод, наверно может не отправляться?

ArrayUCSCode это перечисление всех кодов??

что значит CellNumber? и цифры в начале строки и по середине, типа "000100" и 91 и 0008?
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36087563
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ааааа, CellNumber это не номер случайно , который вызывается??))) типа CallNumber?)
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36087785
zebrox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Khusainov_Heckfyвот МСильвер написал код....
Это что? я так понимаю это перевод всего в юникод??? и посылка потом уже этого???
Изза того что это не юникод, наверно может не отправляться?

ArrayUCSCode это перечисление всех кодов??

что значит CellNumber? и цифры в начале строки и по середине, типа "000100" и 91 и 0008?


то что написал МСильвер - это отправка СМС в формате PDU (AT+CMGF=0), этот режим позволяет передавать конкатенированные сообщения, т.е. длинна одного СМСа вроде 170 английских символов и около 70 в юникоде, т.е. русских-китайских , а этот режим позволяет передавать до 255*170 символов, и все они прийдум на телефон адресата одним целым неразрывным сообщением. Кодировку в этот формат несколько сложнее реализовать.
Если у Вас сообщения не более 70 русских символов, то можно использовать отправку СМС в текстовом формате (AT+CMGF=1)

теперь по поводу:
Khusainov_Heckfy
лог модема вот такой:
AT+CMGF=1
OK AT+CSCS="UCS2"
OK AT+CMGS="+79132090027"
ERROR ??????? ????? ? ?????????.

ERROR

AT+CMGF=1 - устанавливает текстовый режим отправки сообщений
AT+CSCS="UCS2" - выполнилась,замечательно,устанавливает кодировку отправляемых сообщений
AT+CMGS="+79132090027" - а тут номер тоже нужно преобразовать к юникоду, т.е. вместо одной цифры, нужно в порт отправить четыре символа из таблицы МСильвера (по поводу + не знаю, может без него нужно). Потом оправить \r, потом текст сообщения, тоже закодированный по таблице ну и CTRL+Z

Если нужен PDU формат, то нужно искать, на кодпрожекте вроде пример был
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36087954
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zebrox,

спасибо... все ясно) пока нихрена не работает, но сеня посмотрю на кодпроджекте.


МСильвер,
как насчет "+" ?? я насчет него тоже сомневаюсь. В каком формате Ваши телефоны были?
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36088153
Фотография МСильвер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Khusainov_Heckfyвот МСильвер написал код....
Это что? я так понимаю это перевод всего в юникод??? и посылка потом уже этого???
Изза того что это не юникод, наверно может не отправляться?

ArrayUCSCode это перечисление всех кодов??

что значит CellNumber? и цифры в начале строки и по середине, типа "000100" и 91 и 0008?

strAlphabet - набор символов, которые вы будете использовать в своих смс
ArrayUCSCode - коды этих символов в UTF-16, можно подглядеть здесь:
http://people.w3.org/rishida/scripts/uniview/conversion

ConvertTextToUCS - тупо сопостовляет один массив другому :)

"000100" и 91 и 0008?" - такой формат для отправки смс...

Все брал отсюда:
Отправка коротких сообщений (SMS) через сотовый телефон, подключенный к компьютеру

PDU формат в мобильной связи
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36088155
Фотография МСильвер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для отправки использовал обычный gsm модем от сименса, типа сотовый телефон, только без экрана и кнопок
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36088159
Фотография МСильвер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Khusainov_Heckfy

МСильвер,
как насчет "+" ?? я насчет него тоже сомневаюсь. В каком формате Ваши телефоны были?

есть функция - ConvertPhoneNumber(см.выше) - в зависимости от кол-ва цифр в номере надо по разному его представлять. "+" не нужен
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36088212
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСильвер,

Спасибо!!! Буду сегодня вечером разбираться)
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36088670
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возьми готовую библиотеку.Без обработки ответов и ошибок это годится только для изучения команд и на вискарь не тянет
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36089736
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

вот именно, что это и обработка ответов, и ошибок, и еще через ногу об косяк все замучено уже... НИКОГДА НЕ РАБОТАЙТЕ БЕЗ ТЗ. Все началось с просто отправки, а закончилось 3 месяцами работы(((
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36089798
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот решил пример МСильвера скопировать, НИЧЕГО не меняя.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
string SMSText = "Привет. Это я!";
            String CellNumber = "9132090027";
            StringBuilder PDUMessage = new StringBuilder();
            PDUMessage.Append("000100" + String.Format("{0:X2}", CellNumber.Length + 1) + "91");
            PDUMessage.Append(ConvertPhoneNumber(CellNumber));
            PDUMessage.Append("0008" + String.Format("{0:X2}", SMSText.Length * 2) + ConvertTextToUCS(SMSText));

            //далее создаем экземпляр встроенного класса SerialPort
            System.IO.Ports.SerialPort port = new System.IO.Ports.SerialPort();

            //далее необходимо настроить порт для работы с мобильным телефоном
            port.PortName = "COM9";

            port.WriteTimeout = 10000;
            port.ReadTimeout = 10000;
            //Другие необходимые настройки - подходит для большинства телефонов - но возможно придется настраивать:
            port.BaudRate = 112500;
            port.Parity = Parity.None;
            port.DataBits = 8;
            port.StopBits = StopBits.One;
            port.Handshake = Handshake.RequestToSend;
            port.DtrEnable = true;
            port.RtsEnable = true;
            port.NewLine = System.Environment.NewLine;

            port.Open();
            port.WriteLine("AT+CSCS=" + (char)(34) + "UCS2" + (char)(34));
            System.Threading.Thread.Sleep(600);
            port.WriteLine("AT+CMGF=0");
            System.Threading.Thread.Sleep(600);
            port.Write("AT+CMGS=" + Convert.ToString((PDUMessage.Length / 2) - 1) + "\r");
            System.Threading.Thread.Sleep(9000);
            port.Write(PDUMessage.ToString() + Convert.ToChar(26));
            System.Threading.Thread.Sleep(3000);


лог модема 
[SRC c#]AT+CSCS="UCS2"
OK
AT+CMGF=0
OK
AT+CMGS=40
> 0001000B91192390007200081C041F04400438043204350442002E0020042D0442043E0020044F0021
+CMS ERROR: Incorrect PDU length (UDL)
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36089803
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я мб чтото упустил? мб в порте неверны настройки?
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36089813
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот смотрю про китайскую "раскладку" в мануале, там написано

Send SMS using Chinese characters
AT+CSMP=17,0,2,25
AT+CSCS=”UCS2”
AT+CMGS=”0031003300390031003800310038003x003x003x003x”
>4E014E50<Ctrl+Z>
OK
OK
+CMGS:36
OK

мб надо установить какойто AT+CSMP???
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36089835
crt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это типа crowd sourcing или как там это называется
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36090321
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор НИКОГДА НЕ РАБОТАЙТЕ БЕЗ ТЗ. Все началось с просто отправки, а закончилось 3 месяцами работы(((
При твоем кавалерийском наскоке тебе остается только выучить китайский язык.Метод научного втыка здесь не сработает.GSM - это стандарт и информации по нему море.Не пробовал заглядывать в интернет?На подобную задачу не нужно ТЗ и все делается не больше,чем за 5 дней
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36094636
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все заработало. Наконецто!
1. Скачиваем GSMComm_v1.11_net2.0_x86.msi
2. Устанавливаем, копируем dll
3. Задаем параметры
4. Шлем и получаем смс как нада, в любом формате!

Всем огромное спасибо!
...
Рейтинг: 0 / 0
Отправка смс через GRPS модем
    #36158850
Max21951
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А у меня модем sony ericsson k700i. он поддерживает только utf-8 pdu-mode. подскажите, ПОЖАЛУЙСТА, как закодировать русские смимволы в Utf-8 и Pdu.
...
Рейтинг: 0 / 0
25 сообщений из 69, страница 2 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Отправка смс через GRPS модем
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]