Difference between revisions of "Watchdog.Create"
(Created page with "{{infobox function |name=Create |object=Функции общего назначения |caption=Объект сторожевого пса |type=1 |status=2 |db=0 |excep...") |
m (1 revision imported) |
(No difference)
|
Latest revision as of 08:54, 7 February 2021
Create (Объект сторожевого пса) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция создает новый объект сторожевого пса с указанным режимом. Функция может использоваться только в консольном клиенте. Сторожевой пес создается в неактивном состоянии. Для активации необходимо использовать функцию Guard.
Синтаксис
Watchdog.Create(<Режим сторожевого пса (INT)>=0):<Новый объект сторожевого пса (Watchdog)>
Аргументы
<Режим сторожевого пса (INT)>
- Задает режим поведения пса, когда он обнаруживает вероятное зависание рабочего потока клиента:- 0 (по умолчанию) -- Производить перезагрузку консольного клиента при возникновении зависания
- 1 -- Производить завершение работы консольного клиента при возникновении зависания
Возвращаемое значение
Функция возвращает новый объект
Примеры
//Создаем новый объект пса с режимом перезагрузки wd:=WatchDog.Create(0); //Производим включение сторожевого пса с периодом в 30 сек. wd.Guard(30000); //В лог будет выведено "Отладка, активность/режим: 1/0" Message("Отладка, активность/режим: "+wd.Active+"/"+wd.Mode); //Создаем OLE-объект компоненты весов Try Уст:=CreateOLE("LP16DLLCOM.lp16"); Уст.ip:="192.168.0.1"; Уст.port:=8111; Уст.Connect(); Except Message("Не зарегистрирована компонента весов LP16DLLCOM.dll, либо весы не настроены, обратитесь к администратору!","!"); Exit 0; EndTry; //Производим выгрузку информации в весы. Компонента весов этой марки имеет тенденцию зависать, если во время выгрузки оператор попробует провести работу с весами. //Т -- текстовый файл с информацией в виде "PLU номер;Цена;Сообщение;Срок;Тара;Группа;Полное имя;Код;Лого;Текстовое Лого" For i:=1 to T.Size() Do s:=T.GetLine(i); If i%10=0 Then Message("Выгружено "+i+" из "+T.Size()); EndIf; Try //Выгружаем строку текстового файла -- один товар Уст.PLUNO:=Number(Trunc(tearStr(s,";"))); Уст.PRICE:=Number(Trunc(tearStr(s,";"))); Уст.MSG:=Number(Trunc(tearStr(s,";"))); Уст.LIFE:=Number(Trunc(tearStr(s,";"))); Уст.TARE:=Number(Trunc(tearStr(s,";"))); Уст.groupcode:=Number(Trunc(tearStr(s,";"))); //Имя размещается в одной или двух строках с максимальной длиной в 28 символов Стр:=Replace(tearStr(s,";"),"@",";"); s2:=Left(Стр,28); if Length(s2)=0 Then s2:=" "; EndIf; Уст.MSG1:=s2; s2:=Mid(Стр,29,28); if Length(s2)=0 Then s2:=" "; EndIf; Уст.MSG2:=s2; Уст.ITEM:=tearStr(s,";"); Уст.NumberLogo:=Number(Trunc(tearStr(s,";"))); s2:=tearStr(s,";"); if Length(s2)>0 Then Уст.LogoStr:=s2; EndIf; Уст.SendPLU(); Except Message("Не удалось отправить товар "+Стр+" в весы! Повторите выгрузку!","!"); Exit; EndTry; //После выгрузки одной строки производим обновление времени ожидания пса. //Если в момент вызова Уст.SendPLU() произошло зависание, пес, не дождавшись команды Feed() произведет перезагрузку клиента wd.Feed(); EndDo; Try Уст.Disconnect(); Except EndTry; //Выключаем сторожевого пса (система сделала бы это автоматически при выходе из текущей функции, так как переменная wd была бы уничтожена, // поэтому все инструкции Exit в данном примере не используют конструкцию Try ... Finally) wd.Sleep();