Пропустить

Расширенный поиск
  • Главная
  • Форум
  • Новости
  • Колонка эксперта
  • Законодательство
  • Деловая переписка
  • Разное

  • Ссылки
    • Непрочитанные сообщения
    • Темы без ответов
    • Активные темы
    • Поиск
    • Пользователи
    • Наша команда
  • FAQ
  • Вход
  • Регистрация
  • На главную Список форумов Российская Ассоциация Развития Игорного Бизнеса Вопросы по игорному оборудованию Купюроприемники ITL
  • Поиск

Обнаружен рекламный блокиратор: Наш сайт стал возможным благодаря размещению онлайн-рекламы для наших посетителей. Пожалуйста, подумайте о том, чтобы поддержать нас, отключив Ваш рекламный блокиратор на нашем сайте.

Re: Дружба NV - 9 с протоколом SSP

Ответить
  • Версия для печати
Расширенный поиск
Первое новое сообщение • 9 сообщений • Страница 1 из 1
Lee_itb
Сообщения: 4
Зарегистрирован: 10 апр 2009, 16:06

Дружба NV - 9 с протоколом SSP

  • Цитата

Непрочитанное сообщение Lee_itb » 10 апр 2009, 17:00


Нужна помощь, ситуация такова - NV-9 подключен к DA2(USB), он в свою очередь подключен к PC (устанолен протокол SSP). Задача - необходимо получить данные, какую денежку получил купюрник (1, 2 или 5 грн.).  Пограмма написанная на 2 фреймвёрке с использованием языка C#. Дрова установиль хорошо. В Валидаторе протестил - всё хорошо. С чего начать? Где достать пример реализации хотябы на С или С++? Или нужны какие-то DDL? Помогите начинающему!!!!!!
Схожая тема была уже 2007 году, но не совсем понятно раскрыта.
Вернуться к началу
LIC
Гуру
Гуру
Сообщения: 2094
Зарегистрирован: 03 июн 2005, 22:40
Откуда: Донецк

Re: Дружба NV - 9 с протоколом SSP

  • Цитата

Непрочитанное сообщение LIC » 10 апр 2009, 17:41

пробуйте обратиться к фирме производителю, объясните вашу проблему, могут помочь, или посмотрите на сайтах производителей платежных терминалов. Сам не искал, но может и есть где-то
Чем больше технику мы меньше, тем больше меньше она нам.
Вернуться к началу
Embedder
Сообщения: 124
Зарегистрирован: 11 янв 2009, 15:42
Откуда: ЛНР Луганск

Re: Дружба NV - 9 с протоколом SSP

  • Цитата

Непрочитанное сообщение Embedder » 10 апр 2009, 18:37

Lee_itb писал(а):
С чего начать? Где достать пример реализации хотябы на С или С++? Или нужны какие-то DDL? Помогите начинающему!!!!!!
Схожая тема была уже 2007 году, но не совсем понятно раскрыта.
Есть даташит: ga138.pdf.
С примером реализации SSP на С. Для начала достаточно.
Вернуться к началу
Lee_itb
Сообщения: 4
Зарегистрирован: 10 апр 2009, 16:06

Re: Дружба NV - 9 с протоколом SSP

  • Цитата

Непрочитанное сообщение Lee_itb » 10 апр 2009, 19:06

Embedder писал(а): Есть даташит: ga138.pdf.
С примером реализации SSP на С. Для начала достаточно.
Смотрел я его. Есть там маленький пример на С, но внятным его трудно назвать. Может есть у кого реальный пример, как обратиться к заданному устройству, передать команду, и получить ответ.
Вернуться к началу
LIC
Гуру
Гуру
Сообщения: 2094
Зарегистрирован: 03 июн 2005, 22:40
Откуда: Донецк

Re: Дружба NV - 9 с протоколом SSP

  • Цитата

Непрочитанное сообщение LIC » 10 апр 2009, 21:03

Посмотрел, по докам на IT, там есть описание протокола SSP, там даже на С есть подпрограмма подсчета CRC, вот с этого и начинайте, протокол описан  всего на 30 страницах, вот и пишите начиная с оболочки или как модуль для основной программы.
Чем больше технику мы меньше, тем больше меньше она нам.
Вернуться к началу
Lee_itb
Сообщения: 4
Зарегистрирован: 10 апр 2009, 16:06

Re: Дружба NV - 9 с протоколом SSP

  • Цитата

Непрочитанное сообщение Lee_itb » 10 апр 2009, 21:25

LIC писал(а): Посмотрел, по докам на IT, там есть описание протокола SSP, там даже на С есть подпрограмма подсчета CRC, вот с этого и начинайте, протокол описан  всего на 30 страницах, вот и пишите начиная с оболочки или как модуль для основной программы.
Это конечно всё понятно. Но код там ужасный. Вот он

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

    Function CODE 
Function to encrypt 16 bytes of data (4 long ints) 
Usage:   :       code (long_data, long_current_key); 
Parameters:  data()  - 16 bytes to be encrypted packed into 4 long ints 
    Key()  - key to use packed into array of 2 long ints 
Returns:    data() - 16 bytes of encrypted data packed into 4 long ints 
Locals: w,x,y,z,delta,n 
/*********************************************************************** 
void code(long* data, long* key)  { 
unsigned long w=data[0],x=data[1],y=data[2],z=data[3], sum=0,   /* set u
     delta=0x9e3779b9, n=32 ;             /* a key schedule constant */ 
     while (n-->0) {                         /* basic cycle start */ 
            sum += delta ; 
          w += (z<<4)+key[0] ^ z+sum ^ (z>>5)+key[1] ; 
            x += (w<<4)+key[1] ^ w+sum ^ (w>>5)+key[0] ; 
            y += (x<<4)+key[0] ^ x+sum ^ (x>>5)+key[1] ; 
            z += (y<<4)+key[1] ^ y+sum ^ (y>>5)+key[0] ;  
     }                            /* end cycle */ 
        data0]=w ; data[1]=x ; data[2]=y ;data[3]=z;  
} 
B.2 Decryption routine 
/*********************************************************************** 
    Function DECODE 
Function to encrypt 16 bytes of data (4 long ints) 
Usage:   :       decode (long_data, long_current_key); 
Parameters:  data() - 16 bytes of encrypted data packed into 4 long ints 
    Key()  - key to use packed into array of 2 long ints 
Returns:         data()  - 16 bytes of decrypted data packed into 4 long ints 
Locals: w,x,y,z,delta,n 
/*********************************************************************** 
void decode(long* data, long* key)  { 
   unsigned long n=32, sum,w=data[0],x=data[1], y=data[2], z=data[3], 
    delta=0x9e3779b9 ; 
    sum=delta<<5 ; 
       while (n-->0) {        /* start cycle */ 
             z-= (y<<4)+key[1] ^ y+sum ^ (y>>5)+key[0] ; 
             y-= (x<<4)+key[0] ^ x+sum ^ (x>>5)+key[1] ; 
             x-= (w<<4)+key[1] ^ w+sum ^ (w>>5)+key[0] ; 
             w-= (z<<4)+key[0] ^ z+sum ^ (z>>5)+key[1] ; 
             sum-=delta ;   
}                         /* end cycle */ 
       data[0]=w ; data[1]=x ; data[2]=y ;data[3]=z;    
} 
#define FALSE           0x00 
#define TRUE            0x01 
unsigned char CRCL,CRCH; 
int CRC_Table[8*32]={ 
0x0000,0x8005,0x800F,0x000A,0x801B,0x001E,0x0014,0x8011, 
0x8033,0x0036,0x003C,0x8039,0x0028,0x802D,0x8027,0x0022, 
0x8063,0x0066,0x006C,0x8069,0x0078,0x807D,0x8077,0x0072, 
0x0050,0x8055,0x805F,0x005A,0x804B,0x004E,0x0044,0x8041, 
0x80C3,0x00C6,0x00CC,0x80C9,0x00D8,0x80DD,0x80D7,0x00D2, 
0x00F0,0x80F5,0x80FF,0x00FA,0x80EB,0x00EE,0x00E4,0x80E1, 
0x00A0,0x80A5,0x80AF,0x00AA,0x80BB,0x00BE,0x00B4,0x80B1, 
0x8093,0x0096,0x009C,0x8099,0x0088,0x808D,0x8087,0x0082, 
0x8183,0x0186,0x018C,0x8189,0x0198,0x819D,0x8197,0x0192, 
0x01B0,0x81B5,0x81BF,0x01BA,0x81AB,0x01AE,0x01A4,0x81A1, 
0x01E0,0x81E5,0x81EF,0x01EA,0x81FB,0x01FE,0x01F4,0x81F1, 
0x81D3,0x01D6,0x01DC,0x81D9,0x01C8,0x81CD,0x81C7,0x01C2, 
0x0140,0x8145,0x814F,0x014A,0x815B,0x015E,0x0154,0x8151, 
0x8173,0x0176,0x017C,0x8179,0x0168,0x816D,0x8167,0x0162, 
0x8123,0x0126,0x012C,0x8129,0x0138,0x813D,0x8137,0x0132, 
0x0110,0x8115,0x811F,0x011A,0x810B,0x010E,0x0104,0x8101, 
0x8303,0x0306,0x030C,0x8309,0x0318,0x831D,0x8317,0x0312, 
0x0330,0x8335,0x833F,0x033A,0x832B,0x032E,0x0324,0x8321, 
0x0360,0x8365,0x836F,0x036A,0x837B,0x037E,0x0374,0x8371, 
0x8353,0x0356,0x035C,0x8359,0x0348,0x834D,0x8347,0x0342, 
0x03C0,0x83C5,0x83CF,0x03CA,0x83DB,0x03DE,0x03D4,0x83D1, 
0x83F3,0x03F6,0x03FC,0x83F9,0x03E8,0x83ED,0x83E7,0x03E2, 
0x83A3,0x03A6,0x03AC,0x83A9,0x03B8,0x83BD,0x83B7,0x03B2, 
0x0390,0x8395,0x839F,0x039A,0x838B,0x038E,0x0384,0x8381, 
0x0280,0x8285,0x828F,0x028A,0x829B,0x029E,0x0294,0x8291, 
0x82B3,0x02B6,0x02BC,0x82B9,0x02A8,0x82AD,0x82A7,0x02A2, 
0x82E3,0x02E6,0x02EC,0x82E9,0x02F8,0x82FD,0x82F7,0x02F2, 
0x02D0,0x82D5,0x82DF,0x02DA,0x82CB,0x02CE,0x02C4,0x82C1, 
0x8243,0x0246,0x024C,0x8249,0x0258,0x825D,0x8257,0x0252, 
0x0270,0x8275,0x827F,0x027A,0x826B,0x026E,0x0264,0x8261, 
0x0220,0x8225,0x822F,0x022A,0x823B,0x023E,0x0234,0x8231, 
0x8213,0x0216,0x021C,0x8219,0x0208,0x820D,0x8207,0x0202}; 
 
//------------------------------------------------------------------------ 
void Update_CRC(unsigned char num){ 
unsigned int  table_addr; 
  table_addr=(num ^ CRCH); 
  CRCH=(CRC_Table[table_addr] >> 8) ^ CRCL; 
  CRCL=(CRC_Table[table_addr] & 0x00FF); 
} 
//------------------------------------------------------------------------ 
void Reset_CRC(void){ 
  CRCL=0xFF; 
  CRCH=0xFF; 
} 
Непонимаю назначение этого кода, только лишь отдельные части. Непонятен механизм взимодействия, исходя из такого кода. 
Но я пишу на C#, использую для взаимодействия с купюрником компонент SerialPort, с настройками:
    Baud Rate:  9600
    Start bits:  1
    Data Bits:  8
    Parity:  none
    Stop bits:  2
Вопросы с какой команды начинать и  как отправлять с каким интервалом опроса?
Вернуться к началу
LIC
Гуру
Гуру
Сообщения: 2094
Зарегистрирован: 03 июн 2005, 22:40
Откуда: Донецк

Re: Дружба NV - 9 с протоколом SSP

  • Цитата

Непрочитанное сообщение LIC » 10 апр 2009, 22:06

Ну так читать описание протокола, там вначале хост дает команду инициализации, К.П, должен ответить и так далее и тому подобное. Параметр сети - страница 7. Временные интервалы описаны для каждой команды (если это для нее важно)
Чем больше технику мы меньше, тем больше меньше она нам.
Вернуться к началу
Lee_itb
Сообщения: 4
Зарегистрирован: 10 апр 2009, 16:06

Re: Дружба NV - 9 с протоколом SSP

  • Цитата

Непрочитанное сообщение Lee_itb » 10 апр 2009, 22:57

LIC писал(а): Ну так читать описание протокола, там вначале хост дает команду инициализации, К.П, должен ответить и так далее и тому подобное.
А можно поподробнее, я такого не нашёл :'(
И еще если можно пример использования, с какой стороны подходить к нему? Можно в словестной форме. Написал письмо разработчики, посмотрю что ответят.
Вернуться к началу
LIC
Гуру
Гуру
Сообщения: 2094
Зарегистрирован: 03 июн 2005, 22:40
Откуда: Донецк

Re: Дружба NV - 9 с протоколом SSP

  • Цитата

Непрочитанное сообщение LIC » 11 апр 2009, 00:18

Если подробно, то очень долго, а вот это одно из начальных.
5.2 Encryption Keys.
At power up the first encrypted data packet sent to the peripheral will be encrypted using the
peripherals serial number (the host requests and stores the serial number of each peripheral when it
is installed – see control layer).
After the first transmission data is encrypted/decrypted using the key contained in the last packet, the
host generates this randomly. The peripheral will always reply to an encrypted packet with data
encrypted using the same key as the original packet from the host.
After the data has been decrypted the CRC algorithm is preformed on all bytes including DATA,
NEXT KEY, CRCL and CRCH. The result of this calculation will be zero if the data has been
decrypted with the correct key.
If the result of this calculation is non-zero then the peripheral should assume that the host did not
encrypt the data (transmission errors are detected by the transport layer). The slave should go out of
service until it is reset.

Да и вообще я этот протокол не знаю, но смотрел по аналогии с чем работал.
Чем больше технику мы меньше, тем больше меньше она нам.
Вернуться к началу
Ответить
  • Версия для печати

9 сообщений • Страница 1 из 1

Вернуться в «ITL»

Перейти
  • Официальные Форумы Партнёров РАРИБ
  • ↳   CoolAir - Игры для PC и Мобильных
  • ↳   Доминатор-подключение залов и терминалов законно,прибыльно
  • ↳   Intercash
  • ↳   Slotsoft - ПО и Оборудование
  • ↳   Cyber entertainment slots законное ПО для вашего бизнеса
  • ↳   ИГРОВАЯ СИСТЕМА MEGAX: новые хиты + классика = ЛУЧШЕЕ ВМЕСТЕ!
  • Российская Ассоциация Развития Игорного Бизнеса
  • ↳   Законодательство
  • ↳   Арбитражная и судебная практика
  • ↳   Безопасность игорных заведений
  • ↳   Букмекерство
  • ↳   Сотрудничество, предложения
  • ↳   Работа
  • ↳   Вакансии
  • ↳   Резюме
  • ↳   Сотрудничество/Услуги
  • ↳   Блокчейн. Децентрализованное хранение данных
  • ↳   Оборудование
  • ↳   Сотрудничество/Услуги
  • ↳   Вопросы-ответы
  • ↳   Публицистика
  • ↳   Вопросы по игорному оборудованию
  • ↳   Atronic
  • ↳   Aristocrat
  • ↳   Belatra
  • ↳   Casino Technology
  • ↳   Game Maker
  • ↳   IGT
  • ↳   Novomatic
  • ↳   Unidesa
  • ↳   Игрософт
  • ↳   Купюроприемники
  • ↳   CashCode
  • ↳   ICT
  • ↳   ITL
  • ↳   GPT
  • ↳   Argus
  • ↳   Aurora
  • ↳   JCM
  • ↳   PTI
  • ↳   VTI
  • ↳   Электронные рулетки
  • ↳   AIK
  • ↳   Alfastreet
  • ↳   Diamond Club
  • ↳   Gold Club
  • ↳   Продам
  • ↳   Игровые автоматы
  • ↳   Комплектующие
  • ↳   Программное обеспечение
  • ↳   Другое
  • ↳   Куплю/Ищу/Обмен
  • ↳   Вопросы по игорному оборудованию
  • ↳   Кранмашины
  • ↳   Игорный бизнес зарубежом
  • ↳   Коммерческие предложения
  • ↳   Аренда коммерческой недвижимости
  • ↳   Спортивный Покер
  • ↳   Электронные лотереи
  • ↳   Игорный бизнес в странах СНГ
  • ↳   Осторожно! Мошенники!
  • ↳   О Форуме
  • ↳   О жизни
  • ↳   Общее
  • ↳   Сотрудничество
  • ↳   Услуги, аренда, лицензии
  • ↳   Метрология
  • ↳   On-Line Бизнес
  • ↳   Форум разработчиков игорного оборудования

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

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

Яндекс.Метрика

 

  • На главную Список форумов
  • Часовой пояс: UTC+03:00
  • Удалить cookies
  • Пользователи
  • Наша команда
  • Sitemap
  • Связаться с администрацией
Российская Ассоциация Развития Игорного Бизнеса
Эл. почта:admin@rarib.ru office@rarib.ru
использование материалов сайта возможно только при письменном согласии редакции RARIB.RU
На нашем портале правила размещения объявлений и информации одинаковы для всех пользователей, в соответствии с соблюдением правил Форума!,
за исключением блока Форума: Официальные форумы деятелей игорного бизнеса. Если Вы считаете, что ваше объявление было удалено нашими модераторами незаконно
(а объявление было размещено без нарушений правил Форума), просьба сообщить о данном факте на admin@rarib.ru office@rarib.ru

Конфиденциальность | Правила