Lütfen aşağıdaki Lua betiğine bakın.Bir değişken Lua komut dosyasında işlevler arasında paylaşılıyor
Fikir, durumu değiştirmeden önce "getStateFlag()" diyerek ve "status" değişkenine atanarak mevcut durumu alıyorum. ChangeState1 veya ChangeState2 yöntemleri geçerli durumu değiştirebilir. Bu yüzden daha sonra ResetStatus yöntemini çağırırken, "status" değerinin depolanmış değerini atayarak eski duruma sıfırlayabilirim.
Ama mesele bu "durum" değişken her zaman için 0.
function Start()
status = 0
local flag = getStateFlag()
if(flag == 1) then
status = getCurrentStatus()
ChangeState1()
else if(flag == 2) then
status = getCurrentStatus()
ChangeState2()
else
ResetStatus(status)
end
end
function ChangeStatus1()
device::set_value(1)
end
function ChangeStatus1()
device::set_value(2)
end
function ResetStatus(status)
device::set_value(status)
end
İçinde bulunduğunuz ortamı açıklamak için sorunuzu düzenlemeyi düşünün (bir çeşit gömülü işlemci gibi görünüyor mu?). Diğer kullanıcıların deneyimleri varsa, fikirleri olabilir. – solublefish