shtrih-m / fr_drv_ng_examples

Примеры использования https://github.com/shtrih-m/fr_drv_ng
10 stars 2 forks source link

Консольный драйвер и запись лицензий в ККТ. #29

Closed elchako closed 2 years ago

elchako commented 2 years ago

Добрый вечер! Возник вопрос по консольному драйверу и записи лицензий в ККТ. нужно ли записывать в ККТ лицензии если UIN цифровой? image

Пробую этот скрипт https://github.com/shtrih-m/fr_drv_ng_examples/blob/master/console_test/write_feature_licenses.sh

ФР и лицензии в файле найдены, но получаю ошибку image

echo $WRITE_STATE = 255 На ККТ стоят не стандартные адреса 100.100.1.1:7778 Пробовал $tcp поставить до лицензий и после, не помогло.

${EXE} write-feature-licenses $tcp "${LICENSE_FROM_FILE}" "${SIGNATURE_FROM_FILE}"
${EXE} write-feature-licenses "${LICENSE_FROM_FILE}" "${SIGNATURE_FROM_FILE}" $tcp

Вот мой скрипт

#!/bin/sh

EXE="/shtrih/libs.sh"
tcp="-a tcp://100.100.1.1:7778?timeout=100"
license="/shtrih/firmware/fw/license.slf"
license_log="/shtrih/firmware/logs/license.log"

date=$(date "+%Y-%m-%d %T")

STATUS=$(${EXE} status $tcp)
if [ $? -eq 0 ]
then
  echo $date ":: Получен статус ККТ!" #> $license_log
else
  BAD_STATE=$?
  echo $date ":: Невозможно получить статус ККТ" #>> $license_log
  exit ${BAD_STATE}
fi
SERIAL_NUMBER=$(${EXE} read 18.1.1 $tcp)
echo $date ":: Серийный номер: "${SERIAL_NUMBER} #>> $license_log

while IFS='' read -r line || [[ -n "$line" ]]; do
    SERIAL_FROM_FILE=$(echo "${line}"| cut -f1 )
    if [ "${SERIAL_NUMBER}" -eq  "${SERIAL_FROM_FILE}" ]
    then
      echo $date " :: Найдена функциональные лицензии" #>> $license_log
      LICENSE_FROM_FILE=$(echo "${line}"| cut -f2 )
      SIGNATURE_FROM_FILE=$(echo "${line}"| cut -f3 )
      echo ${LICENSE_FROM_FILE}
      echo ${SIGNATURE_FROM_FILE}
      ${EXE} write-feature-licenses "${LICENSE_FROM_FILE}" "${SIGNATURE_FROM_FILE}" $tcp 
      WRITE_STATE=$?
      echo $WRITE_STATE
      if [ ${WRITE_STATE} -eq 0 ]
        then
          echo $date ":: Лицензии успешно установлены" #>> $license_log
          exit 0
        else
          echo $date ":: Ошибка при записи лицензий" #>> $license_log
      fi
      exit ${WRITE_STATE}
    fi
done < $license

Возможна ли проблема из-за того что лицензия уже установлена? image

elchako commented 2 years ago

Вопрос снят, стоял слишком маленький таймаут Поставил timeout=5000