Помогите разобраться с ssp (essp) протоколом

Вопросы по программному обеспечению.
Гость

Сообщение Гость » 25 окт 2012, 14:21

Помогите разобраться с ssp (essp) протоколом. Какая у него структура и алгоритм шифрования. Нашел несколько pdf-ок, практически ничего не понял, т.к. там на английском, с ним не очень. Может у кого есть на русском языке. Можете написать самые элементарные сообщения устройству.

Можете объяснить что означают поля и как вычислять: stx, stex, seq/slave id, count, packing, crcl, crch
Вложения
packet.JPG
packet.JPG (97.67 КБ) 1450 просмотров

kei
Member
Сообщения: 54
На форуме с: 05 мар 2008, 21:37
Репутация: 0

Сообщение kei » 25 окт 2012, 16:27

Evan писал(а):Помогите разобраться с ssp (essp) протоколом. Какая у него структура и алгоритм шифрования.
...
Можете объяснить что означают поля и как вычислять: stx, stex, seq/slave id, count, packing, crcl, crch


если бы Вы еще написали что это за устройство, то было бы проще
из того что видно на картинке получается:

stx - признак начала пакета (байт = смотрите в доке)
stex - признак начала блока данных (байт = 0x7e)
seq/slave id - похоже на уникальный (порядковый) номер устройства
count - счетчик пакетов (инкрементируется при каждой посылке/приеме)
packing - случайный мусор добивающий длину блока данных до кратной 16
crcl, crch - младший и старший байты контрольной суммы
Гость

Сообщение Гость » 26 окт 2012, 10:16

Спасибо.
Устройства Smart Hopper NV200 и Smart PayOut.
Можете объяснить каков порядок общения с устройством. Из мануалки понял, что надо включить его командой, затем установить ключ шифрования, причем это делается в несколько этапов и собственно зашифровать.
Непонятно как установить ключ, зашифровывать и расшифровывать. В мануалке написано, что можно обратиться в ITL и взять исходные код на С, но я даже адреса ITL сайта не знаю.

Написал такой код отправки команды устройству:

Код: Выделить всё

Код для расчёта таблицы:

Word MakeCRC16Table(void)
{
 Word r;
  for(int i=0; i<256; i++)
   {
    r = ((Word)i)<<8;
     for(byte j=0; j<8; j++)
       {
        if(r&(1<<15)) r=(r<<1)^0x8005;
        else r=r<<1;
       }
     crctable[i]=r;
   }
}
Код для расчёта CRC:

Word GetCRC16(byte *buf, Word len)
{
 Word crc;
 crc = 0xFFFF;
 while(len--)
  {
   crc = crctable[((crc>>8)^*buf++)&0xFF] ^ (crc<<8);
  }
 crc ^= 0xFFFF;
 return crc;
}

unsigned char stx, seq_slave_id, stex, data1;
   unsigned char length1, length2;
   DWORD count;

   CommPort1->PortName = Edit1->Text;//"COM8";
   stx = 127;
   seq_slave_id = 2;
   length1 = 11;
   stex = 126;
   length2 = 1;
   count = 1;
   data1 = 5; // command set-up request
   unsigned char str[16] = {stx, seq_slave_id, length1, stex, length2, 0, 0, 0, 0, data1, 99, 77, 0, 0, 0, 0};
   *(DWORD*)(str + 5) = count;
   
   MakeCRC16Table();
   WORD crc1 = GetCRC16(str + 4, 8);
   *(WORD*)(str + 12) = crc1;

   MakeCRC16Table();
   WORD crc2 = GetCRC16(str + 1, 13);
   *(WORD*)(str + 14) = crc2;

   CommPort1->Send(str, 16);


но ответа никакого не приходит, проверял для разных ком портов
Вложения
encrypt.JPG
encrypt.JPG (73.93 КБ) 1429 просмотров
keys.JPG
keys.JPG (89.76 КБ) 1422 просмотра
kei
Member
Сообщения: 54
На форуме с: 05 мар 2008, 21:37
Репутация: 0

Сообщение kei » 26 окт 2012, 10:48

Гугл замечательно выводит на сайт ITL, пример на Си и DLL выдают по запросу - свяжитесь с ними или с продавцом оборудования.
Гость

Сообщение Гость » 26 окт 2012, 14:37

Нашел адрес сайта, написал им на e-mail, но пока не ответили. Алгоритм шифрования нашел, хотя не проверял.
Добился того, что устройство начало отвечать, но всегда 127 16 1 245 125 139 , т.е. COMMAND_CANNOT_BE_PROCESSED. Что делать?
Гость

Сообщение Гость » 03 дек 2012, 20:19

привет, подключаю nv200 r сом порту ичто невыходит можеш дать разпиновку как подключать s sp протокол
Гость

Сообщение Гость » 18 дек 2012, 05:51

Evan писал(а):Нашел адрес сайта, написал им на e-mail, но пока не ответили. Алгоритм шифрования нашел, хотя не проверял.
Добился того, что устройство начало отвечать, но всегда 127 16 1 245 125 139 , т.е. COMMAND_CANNOT_BE_PROCESSED. Что делать?


Привет. Ну как у тебя успехи? Dll или пример получил от разработчиков?

Мне тоже предстоит процедура привязки этого устройства к Компьютеру. НУжно подружить работу 1С и купюроприёмника. Может у тебя есть какие наработки по этому поводу? А то даже не знаю с чего начать.
Гость

Сообщение Гость » 17 ноя 2014, 12:50

Добрый день! Хотелось бы поинтересоваться - вы нашли решение? Как общаться с курюрником по SPP? Или может у вас есть выход на достойные ресурсы с полезной информацией?

Вернуться в «ПО для терминалов и приема платежей»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей