Форум OlegON > Ресурсы OlegON > Вопросы сервера > Архив > УКМ-2

Подскажите (кассиры выключают кассы) : УКМ-2

28.03.2024 22:55


10.06.2009 12:21
akonev
 
Цитата:
В файлик stop.bat поместил следующее:
c:\command.com /c c:\vc\vc.exe
Вот это точно неудачный вариант.
все-таки stop.lst отрабатывает не после завершения работы укм, а в процессе завершения.
если бы запустился VC - ты бы имел полную кашу в памяти: три(!) экземпляра command.com, укм2 и VC в придачу. оно тебе нада?
кстати, могло тупо не хватить памяти.
10.06.2009 12:32
Vovantus
 
Цитата:
Andrew_Konev Вот это точно неудачный вариант.
А зачем вообще вызывать отдельный батник, если можно всё прям в start.lst/stop.lst прописать, типа вот так:
Код:
c:\command.com /c "команда с параметрами" 
10.06.2009 13:57
akonev
 
Цитата:
Vovantus А зачем вообще вызывать отдельный батник...
можно и не вызывать. единственное:

если вызываем батник - один и тот же экземпляр command.com отрабатывает все команды из него (если, конечно, ты в батник не вписываешь снова вызовы command.com);

если ты будешь все внутренние команды прописывать в *.lst - для каждой из них будет грузиться command.com, отрабатывать и сразу выгружаться.

результат будет одинаковый
11.06.2009 06:53
Vovantus
 
Цитата:
HellBoy Konst, если не тайна, можешь поподробней расписать как сделать ваш вариант борьбы? (если можно то и утилитку выложить)
Утилитку писать не обязательно, можно и стандартными средствами всё организовать по похожей схеме. Например, самый простой вариант. На компе пишем батник, который будет в расшаренной для кассы папке, рано утром (или при включении компа), создавать какой-нить файл-флаг. Заметьте, для каждой кассы должен быть свой флаг. Далее, на кассе правим файлик autoexec.bat. Пишем там условие проверки файла-флага в расшаренной папке. Если флажок найден, значит удаляем его нафиг и спокойно грузимся. Если флаг не обнаружен, то через команду call вызываем другой батник, в котором пишем самую примитивную авторизацию через пароль. В итоге, самый первый раз касса грузиться нормально, все последующие запрашивает пароль. Но на мой взгляд, схема с паролями не очень эффективна. Всякое может произойти в течении рабочего дня и не всегда администратор на месте (у нас вчера гром гремел и при выгрузке одной из касс, она зависла). Поэтому, как я выше уже предлагал, делаем следующее.
Создаём файлы start.lst и stop.lst, помещаем туда команды:
Код:
c:\command.com /c echo Start Cash >> n:\StartStop.txt
и
Код:
c:\command.com /c echo Stop Cash >> n:\StartStop.txt
для каждого файла соответственно.
Переодически просматриваем их на предмет наличия пары записей включение - выключение. Таким образом бедет видно, когда кассу перезагрузили, а когда тупо вырубили. Но это не очень удобно.
Я пошёл ещё дальше и написал скрипт, который ведёт логи времени включения/выключения УКМ и при отсутствии записи о выключении, пишет в отдельный лог ошибку. Буду обкатывать, если кому интересно, могу поделиться скриптом для nnCron.
Осталось тока придумать, как фиксировать некорректное выключение кассы при временном отсутствии локальной сети, када касса будет находится в автономном режиме.
11.06.2009 07:00
akonev
 
Цитата:
Vovantus ...Осталось тока придумать, как фиксировать некорректное выключение кассы при временном отсутствии локальной сети..
про это я тебе еще на первой страничке сказал: надо лог писать на локальный диск, а следующей командой копировать его в сеть.
когда будет сеть - тогда и дойдут до тебя логи. но зафиксируется все
11.06.2009 07:04
Vovantus
 
Цитата:
Andrew_Konev про это я тебе еще на первой страничке сказал..
Это всё понятно. Но в этом случае, содержание лога должно формироваться на самой кассе, а не на компе. Что намного уложняет разбивку лога по дням, месяцам, времени. Получается, что все события тупо валятся в один лог. Не удобно так!
З.Ы. Представь себе, что тебя неделю не было. Предположим, есть 100 магазинов по 10 касс. В этом случае нужно перелапатить огромное количество логов. В моём случае, ты сразу будешь видеть по отдельному логу, в какой именно день и на какой кассе было несоответствие записи по включению-выключению.
З.Ы.Ы. Кстати, если не нужно видеть када касса включалась/выключалась, то можно прям на самой кассе делать вроверку соответствия записей и в случае расхождения, создавать лог ошибок.
11.06.2009 08:20
akonev
 
чес слово, на пустом месте проблему изобретаешь.
Код:
echo start >>c:\log.txt
if not exist n:\log.txt goto avtonom
copy n:\log.txt+c:\log.txt n:\log.txt
erase c:\log.txt
:avtonom
до кучи, чтобы самому не анализировать...
тебе же только некорректные перезагрузки нужны?
в стоп:
Код:
echo correct_off>>c:\flag.txt
в старт:
Код:
if exist c:\flag.txt goto no_log

echo non_correct_start >>c:\log.txt
if not exist n:\log.txt goto avtonom
copy n:\log.txt+c:\log.txt n:\log.txt
erase c:\log.txt
:avtonom

:no_log
erase c:\flag.txt
только это все надо в *.bat писать, не в *.lst
11.06.2009 08:50
Dim
 
Вопрос Отделу ККМ... А почему бы не сделать, чтоб УКМ2 сама анализировала некорректные перезагрузки?
11.06.2009 08:55
Vovantus
 
Цитата:
Andrew_Konev только это все надо в *.bat писать, не в *.lst
Ага, рабочая схема. Тока нуна убрать логирование включения/выключения, смысла нет от него, т.к. не видно када происходили эти события. Тупо, если нет флага на выключение, создаём файлик, пишем в него что-нить и при появлении сети копируем на сетевой диск. Будет видно, что были некорректные выключения, но опять же не видно, када именно они происходили.
11.06.2009 08:59
akonev
 
Цитата:
Dim Вопрос Отделу ККМ... А почему бы не сделать, чтоб УКМ2 сама анализировала некорректные перезагрузки?
дык он не тока анализирует, но еще и чек восстанавливает, так-то.
понятно, что это не совсем то, о чем ты говоришь, но все же.
Часовой пояс GMT +3, время: 22:55.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.