Разработка DLL на основе SDK поставщика оборудования

Цена договорная • безналичный расчёт
15 марта 2019, 09:47 • 4 отклика • 38 просмотров
Существует основная программа Maticard Pro, которая обслуживает персонализационную машину. Maticard Pro взаимодействует с машиной через программный модуль MM Main.
Машина – набор физических модулей, которые кодируют магнитную полосу, печатают штрихкода, и т.д.
Персонализация происходит по загружаемой базе данных, обычно это файл MS Acess
Стандартные модули машины работают из Maticard Pro + MM Main, тут все хорошо, и проблем никаких, это самодостаточный полноценный софт.

Если нам нужно подключить к машине нестандартный модуль, например считыватель/кодировщик бесконтактных карт Mifare, то для его взаимодействия с программой необходимо писать DLL.
DLL осуществляет обмен данными между Maticard Pro и PCSC драйвером считывателя с помощю XML запросов.
Обмен двухсторонний, т.е. мы можем считать UID карты и занести его в какой то конкретный столбец базы, можем считать UID и напечатать его на карте,
либо можем взять информацию из базы и произвести запись в какой то определенный сектор.

Причем DLL может быть как универсальной для каких то действий, например прочитать UID карты (в каждой бесконтактной карте зашит уникальный идентификатор) и напечатать его на карте в десятичном виде.

Так и уникальной для каждого заказа, например если необходимо произвести запись на карту по базе.

Для понимания процесса:
Организация памяти MIFARE Classic
Память MIFARE 1K разделена на 16 секторов. Каждый сектор MIFARE 1K состоит из трех блоков данных и одного блока для хранения ключей (Sector Trailer). Блоки данных доступны для чтения/записи при условии успешной авторизации по ключу.

Блок Sector Trailer:
Этот блок хранит секретные значения ключей (А и В) для доступа к соответствующему сектору, а также условие доступа (определяемое значением битов доступа). Блок Sector Trailer всегда последний (четвертый) блок в секторе. Каждый сектор MIFARE Classic может иметь свои собственные ключи доступа и условия записи/чтения данных.

Блоки данных:
Каждый блок данных состоит из 16 байт, доступных для записи/чтения (кроме блока 0 сектора 0, где хранится нестираемая информация завода-изготовителя). Запись/чтение данных производится по ключу и битам доступа.

Блоки данных:
Каждый блок данных состоит из 16 байт, доступных для записи/чтения (кроме блока 0 сектора 0, где хранится нестираемая информация завода-изготовителя). Запись/чтение данных производится по ключу и битам доступа.

Соответственно, если нам необходимо производить запись на карту, то для каждого заказа нам необходимо писать новую DLL, в В DLL прописывается Sector Trailer для всех секторов, и обращение к конкретному столбцу базы данных для записи переменной информации.

Существует SDK от производителя Maticard Pro, в котором есть некие примеры DLL + исходный код для них+ несколько обучающих видео.
На основании SDK необходимо разработать DLL под наши задачи, нам будет необходима как сама DLL, так и исходный код для нее.

-=-=-=-==
От соискателя ждем цены на подобные услуги.


Условия:
- желательно ИП/ООО;
- желательно Москва, область и ближайшие регионы т.к. вполне возможен приезд в Москву.