DataVersion = 0.5
Sig_ST = {X = {10000, 10000, 10000, 10000}, Y = {10000, 10000, 10000, 10000}}
SignMess = "0"
gALSNSt = {X = "none", Y = "none"}
gDistSig = {X = 0, Y = 0}
pDistSig = {X = 0, Y = 0}
gID = {X = "", Y = ""}
ChFormat = {X = "none", Y = "none"}
Timer ("ALSN_IN", 0.01)
function OnCustomSignalMessage (ConsistMessage)
SignMess = ConsistMessage
SecurityDevicesLogic("code")
end
function SecurityDevicesLogic(argument)
if argument == "code" then -- прием и фильтрация кода. Добавить фильтр от других возможных кодов
local ChFormat_pos = string.find (SignMess, "[~*=+]")
local ChFormat_data = string.sub(SignMess, ChFormat_pos, ChFormat_pos)
ID = string.sub(SignMess,11, ChFormat_pos-1);
if DataVersion == "0.5" then
Code = tonumber(string.sub(SignMess,1,2))
Dist = tonumber(string.sub(SignMess,6,10))
table.insert (Sig_ST.X, 1, Dist)
table.remove (Sig_ST.X)
local pval = 9999
for k, val in ipairs (Sig_ST.X) do
if val < pval then
pval = val
end
end
if pval == Dist then
if Speed > -0.005 and not front then
ChFormat.Res = ChFormat_data
gALSNSt.Res, gDistSig.Res, gID.Res = Code, Dist, ID
Timer ("ALSN_IN", 3, "restart") -- контроль поступления сообщений
end
end
elseif DataVersion == "0.6" then --другие каналы дешифратора
elseif DataVersion == "0.7" then --другие каналы дешифратора
end
end
end
Если есть какие вопросы - без проблем, я помогу разобраться. Но расписывать построчно как-то не было желания - не факт, что кому-то этот модуль нужен, да и не тянет эта функция на завершенный блокi2GR писал(а):да...тяжеленько понять, что происходит))
Вернуться в [RW] Другие вопросы
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0