Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/lib/support/drivers/sec.lua
blob: e89646ba10bbdfd058923bcbff96e643093f354c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
local device = _G
local RD_VERSION    = string.char(0x00)
local GET_SEC       = string.char(0X01)
local INTRUSION     = string.char(0x02)
local RESET_FLAG    = string.char(0x03)
local CONT_INT      = string.char(0x04)
local MESS          = string.char(0x05)
local RESET         = string.char(0xFF)

api={}
api.read_version = {}
api.read_version.parameters = {} --no parameters
api.read_version.returns = {[1]={rname="version", rtype="number"}} --one return
api.read_version.call = function ()
        local get_read_version = RD_VERSION
        device:send(get_read_version)
        local version_response = device:read(4) 
        local raw_val = string.byte(version_response, 3) 
        --print("rawval, deg_temp: ", raw_val, deg_temp)
        return raw_val
end

api.get_sec = {}
api.get_sec.parameters = {} --no parameters
--api.get_sec.returns = {[1]={rname="error", rtype="string"},[2]={rname="SecSensorValue_1", rtype="number"},[3]={rname="SecSensorValue_2", rtype="number"}} 
api.get_sec.returns = {[1]={rname="SecSensorValue_1", rtype="number"},[2]={rname="SecSensorValue_2", rtype="number"}} 
api.get_sec.call = function ()
    local send_res, err
    send_res, err = device:send(GET_SEC)
    local ret = device:read(3)
    local SecSensorValue_1 = (string.byte(ret,2) or 0)
    local SecSensorValue_2 = (string.byte(ret,3) or 0)
--  local SecSensorValue_1 = (string.byte(ret,2))
--  local SecSensorValue_2 = (string.byte(ret,3))
        if ((SecSensorValue_1 == 0) and (SecSensorValue_2 == 0)) then
            alarma = "00"
        elseif ((SecSensorValue_1 == 0) and (SecSensorValue_2 == 1)) then
            alarma = "01"
        elseif ((SecSensorValue_1 == 1) and (SecSensorValue_2 == 0)) then
            alarma = "10"
        else
            alarma = "11"
        end
    return alarma
    --if ret then return true, SecSensorValue_1, SecSensorValue_2 else return false end
end

api.intrusion = {}
api.intrusion.parameters = {} --no parameters
api.intrusion.returns = {[1]={rname="alarma", rtype="number"}} --one return
api.intrusion.call = function ()
        local intrusion = INTRUSION
        device:send(intrusion)
        local alarma = device:read(1)
        if (alarma == string.char(0x00)) then
            alarma = 0
        else
            alarma = 1
        end
        return alarma
end

api.reset_flag = {}
api.reset_flag.parameters = {} --no parameters
api.reset_flag.returns = {[1]={rname="borrado", rtype="number"}} --one return
api.reset_flag.call = function ()
        local reset_flag = RESET_FLAG
        device:send(reset_flag)
        local borrado = device:read(1) 
        if (borrado == string.char(0x00)) then
            borrado = 0
        else
            borrado = 1
        end

        return borrado
end

api.cont_int = {}
api.cont_int.parameters = {} --no parameters
api.cont_int.returns = {[1]={rname="cantidad", rtype="number"}} --one return
api.cont_int.call = function ()
        local cont_int = CONT_INT
        device:send(cont_int)
        local cantidad = device:read(1) 
        return string.byte(cantidad)
end