Как самостоятельно создать или изменить прошивку для терминала сбора данных CipherLab 8000/8001

Программист Управленческий учет Торговля и дистрибуция
← На главную

Терминалы сбора данных CipherLab 8000 и 8001 являются классическими представителями мобильных устройств для складского учета. Несмотря на их солидный возраст, они остаются востребованными благодаря своей надежности и низкому энергопотреблению. Однако стандартные настройки не всегда удовлетворяют потребностям бизнеса, особенно когда речь идет об объемах справочников товаров. Разберем подробно, как устроена программная часть этих устройств, как создать собственную логику работы и оптимизировать память для загрузки больших баз данных.

Архитектура программного обеспечения CipherLab

Прежде чем приступать к разработке, проанализируем, что именно понимается под термином "прошивка" в контексте данных устройств. ТСД CipherLab серии 8000 работают на базе проприетарной операционной системы. Программное обеспечение обычно состоит из двух уровней:

  1. Ядро (Kernel): Низкоуровневая часть, отвечающая за работу железа. Обновляется редко.
  2. Задача (Application/Runtime): Это файл с расширением SHX, который определяет логику работы терминала: какие меню отображать, какие штрихкоды считывать и в какие поля записывать данные. Именно этот файл пользователи обычно называют "прошивкой".

Рассмотрим три способа создания такого файла, от простого к сложному.

Способ 1: Использование Генератора Приложений (Application Generator)

Это самый доступный метод, не требующий навыков программирования. Мы используем визуальный конструктор, чтобы определить последовательность действий пользователя.

Рассмотрим основные шаги работы в Генераторе Приложений:

  1. Настройка форм: Мы создаем экранные формы (до 10 штук), где указываем, какие данные должен вводить пользователь (например, "Штрихкод", "Количество", "Номер склада").
  2. Структура данных: Мы определяем, какие поля будут сохраняться в памяти. Здесь важно понимать, что память устройства (обычно 2 Мб) жестко ограничена.
  3. Компиляция: После настройки всех параметров утилита генерирует файл SHX.

Выясним причину популярности этого метода: он позволяет быстро создать рабочее решение, которое будет совместимо со стандартными драйверами от компании Сканкод или Атол. Однако, как отмечалось в обсуждении, Генератор Приложений не позволяет реализовать сложные циклы или ветвления "если-то".

Способ 2: Программирование на языке BASIC

Если возможностей визуального конструктора недостаточно, проанализируем вариант с BASIC Compiler. Это позволяет писать полноценный код. Для этого потребуется специальная среда разработки от CipherLab.

Пример простой логики на языке Basic может выглядеть следующим образом:


WHILE (1)
    GET_BARCODE(code$)
    IF code$ <> "" THEN
        BEEP(1)
        DISPLAY_TEXT(1, 1, "Код: " + code$)
    END IF
WEND

Важный нюанс: Использование коммерческого компилятора Basic часто требует приобретения лицензии. В некоторых случаях именно это становится барьером, о котором упоминали участники форума при обсуждении стоимости решений.

Способ 3: Разработка на языке C (C SDK)

Для максимально глубокой настройки мы можем использовать C SDK. Это позволяет работать с памятью напрямую, реализовывать собственные протоколы обмена данными и создавать интерфейсы любой сложности. Это уровень системного программиста, где результат также компилируется в формат SHX.

Как увеличить размер базы загружаемых товаров

Один из главных вопросов автора темы касается увеличения объема базы товаров. В ТСД CipherLab 8000 используется статическая память (SRAM). Посмотрим, как мы можем оптимизировать ее использование через Application Generator или прямое редактирование структуры данных.

Разберем по шагам методику оптимизации:

  1. Сокращение длины полей: По умолчанию поле "Наименование" может быть настроено на 30 или даже 60 символов. Если в вашей учетной системе названия товаров короткие, уменьшите длину поля до 15-20 символов. Это позволит пропорционально увеличить количество записей.
  2. Удаление неиспользуемых данных: Если терминал используется только для инвентаризации, нам не обязательно хранить в нем "Цену" или "Остаток". Удаление этих полей из структуры Lookup File освобождает значительное пространство.
  3. Типизация данных: Штрихкод в формате строки занимает больше места, чем числовое представление (если это поддерживается конкретной версией ПО).

Проанализируем пример: Если у нас есть 2 Мб памяти и запись о товаре занимает 100 байт, мы загрузим 20 000 позиций. Сократив длину записи до 50 байт, мы получим уже 40 000 позиций.

Взаимодействие с 1С и драйверами

Многие пользователи опасаются, что после изменения прошивки придется писать свой драйвер для 1С. Разберем, так ли это.

Если вы используете Генератор Приложений от Сканкод, то структура передаваемых данных остается стандартной. В 1С подключается внешняя компонента (ВК), которая "общается" с терминалом через COM-порт (или эмуляцию USB-COM). Пока формат выгрузки (последовательность полей в CSV-подобном виде) соответствует тому, что ожидает драйвер, переписывать код в 1С не потребуется.

Если же вы полностью меняете логику обмена (например, переходите на свой протокол через C SDK), вам действительно придется:

Загрузка прошивки в терминал

Чтобы отправить созданный файл SHX в устройство, выполним следующие действия:

  1. Переведем ТСД в режим загрузки. Для этого используем комбинацию клавиш 7 + 9 + Power (для входа в системное меню) или 1 + 7 + Power (для входа в режим Kernel).
  2. Выберем пункт Load Program.
  3. На компьютере запустим утилиту Download.exe или ProgLoad.exe, выберем нужный COM-порт, скорость (обычно 115200) и укажем путь к файлу SHX.
  4. Поместим терминал в подставку (кредл) и запустим процесс передачи.

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

Таким образом, создание собственной "прошивки" для CipherLab 8000 — задача вполне реальная. Для большинства задач достаточно Генератора Приложений, который позволяет гибко настроить структуру полей и увеличить объем хранимых данных без необходимости глубокого программирования.

← На главную