Вторник, 26.09.2017
BBB Ready!
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » 2014 » Октябрь » 28 » PDU кодировка USSD запросов в GPRS модеме Huawei
11:33
PDU кодировка USSD запросов в GPRS модеме Huawei

Я столько написал и случайно закрыл вкладку :(

Проблема

Теория

Кодировка

Итак, хотим спросить *102# или в хексах (кто не знает, см. http://holman.id.au/apps/ipsms/default_alphabet.html ):

0x2A 0x31 0x30 0x32 0x23 или в 7битном представлении:

0101010 0110001 0110000 0110010 0100011

Меняем их местами 

0100011 0110010 0110000 0110001 0101010

Добавляем 5 нулей в начало и склеиваем

00000010 00110110 01001100 00011000 10101010

Снова переставляем их все и получаем что требовалось

AA 18 4C 36 02

Реализация алгоритма шифрования

  function PDUCode( src : String ) : String;
  var
    //Temporary storage
    tmpArray : array of Byte;
    l : Integer; // Length of src
    dummyBytes : Integer;
    i, j : Integer;

    curIx : Integer; // òåêóùèé áèòîâûé óêàçàòåëü
    procedure PushBit( val : Byte );
    begin
      //setting current bit
      tmpArray[ curIx div 8 ] := tmpArray[ curIx div 8 ]  or (val shl (7 - (curIx mod 8)) );
      curIx := curIx + 1;
    end;
  begin
    result := '';
    l := Length( src );
    SetLength( tmpArray, l );

    curIx := l; //l zeros in begining

    //loop by characters, from tail
    for i := l downto 1 do begin
      //loob by bits, from head
      for j := 6 downto 0 do begin
        PushBit( (ord(src[i]) shr j) and 1 );
      end;
    end;

    //bytes fill of zeros, ignored in transmition
    //òàì ÷òî-òî íàïèñàíî ïðî òî, åñëè 7 íóëåé, ïðî ñïåö.ñèìâîëû, ÿ ïîêà çàáèë
    dummyBytes := l div 8;

    for i := (l - dummyBytes) - 1 downto 0 do begin
      result := result + IntToHex( tmpArray[i], 2 );
    end;
  end;

 

 

 

Просмотров: 193 | Добавил: bobapro | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Поиск
Календарь
«  Октябрь 2014  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2017
    Бесплатный хостинг uCoz