The files contained in this repository can be downloaded to your computer using a svn client.
On Linux you simply type the command displayed below.

This URL has Read-Only access.

Statistics
| Revision:

root / trunk / DomotiGa / FToolsPLCBUSCmdr.class @ 672

History | View | Annotate | Download (2.8 kB)

1
' Gambas class file
2
3
' Description:
4
' FToolsPLCBUSCmdr.class
5
' PLCBUS Commander for testing and programming modules.
6
7
' Development Status:
8
' Works.
9
10
' DomotiGa - an open source home automation program.
11
' Copyright(C) 2008-2011 Ron Klinkien
12
13
' Read file called COPYING for license details.
14
15
PUBLIC rResultInterfaces AS Result
16
PUBLIC sCommand AS String
17
18
PUBLIC SUB Form_Open()
19
20
  ME.Move(FMain.X + 50, FMain.Y + 70)
21
22
END
23
24
PUBLIC SUB PLCBUSAddress() AS String
25
26
  RETURN cmbHouseCode.Text & Format(spDeviceCode.Value, "00")
27
28
END
29
30
PUBLIC SUB btnClose_Click()
31
32
  ME.Close
33
34
END
35
36
PUBLIC SUB btnAllLightsOn_Click()
37
38
  SendCmd("ALL_LIGHTS_ON", chkAck.Value)
39
40
END
41
42
PUBLIC SUB btnAllLightsOff_Click()
43
44
  SendCmd("ALL_LIGHTS_OFF", chkAck.Value)
45
46
END
47
48
PUBLIC SUB btnAllUnitsOn_Click()
49
50
  SendCmd("ALL_UNITS_ON", chkAck.Value)
51
52
END
53
54
PUBLIC SUB btnAllUnitsOff_Click()
55
56
  SendCmd("ALL_UNITS_OFF", chkAck.Value)
57
58
END
59
60
PUBLIC SUB btnOn_Click()
61
62
  SendCmd("ON", chkAck.Value)
63
64
END
65
66
PUBLIC SUB btnOff_Click()
67
68
  SendCmd("OFF", chkAck.Value)
69
70
END
71
72
PUBLIC SUB btnDim_Click()
73
74
  SendCmd("DIM " & spRate.Value, chkAck.Value)
75
76
END
77
78
PUBLIC SUB btnBright_Click()
79
80
  SendCmd("BRIGHT " & spRate.Value, chkAck.Value)
81
82
END
83
84
PUBLIC SUB btnGetID_Click()
85
86
  SendCmd("STATUS_REQUEST", FALSE)
87
88
END
89
90
PUBLIC SUB slDim_MouseUp()
91
92
  SendCmd("PRESETDIM " & slDim.Value & " " & spRate.Value, chkAck.Value)
93
94
END
95
96
PUBLIC SUB btnGetSignal_Click()
97
98
  SendCmd("GET_SIGNAL_STRENGTH", chkAck.Value)
99
100
END
101
102
PUBLIC SUB btnGetNoise_Click()
103
104
  SendCmd("GET_NOISE_STRENGTH", chkAck.Value)
105
106
END
107
108
PUBLIC SUB btnSceneSetup_Click()
109
110
  SendSceneCmd("SCENE_ADDR_SETUP", PLCBUSSceneCmd())
111
112
END
113
114
PUBLIC SUB btnEraseScene_Click()
115
116
  SELECT Message.Question("Are you sure that you want to delete scene " & PLCBUSSceneAddress() & "?", (" Yes "), (" No "))
117
    CASE 1
118
      SendSceneCmd("SCENE_ADDR_ERASE")
119
  END SELECT
120
121
END
122
123
PUBLIC SUB btnEraseSceneAll_Click()
124
125
  SELECT Message.Question("Are you sure that you want to delete all scenes?", ("Yes"), ("No"))
126
    CASE 1
127
      SendSceneCmd("ALL_SCENE_ADDR_ERASE")
128
  END SELECT
129
130
END
131
132
PUBLIC SUB PLCBUSSceneCmd() AS Byte
133
134
  SELECT cmbSceneCmd.Index
135
    CASE 0
136
      RETURN &H02
137
    CASE 1
138
      RETURN &H03
139
  END SELECT
140
141
END
142
143
PUBLIC SUB PLCBUSSceneAddress() AS String
144
145
  RETURN cmbSceneCode.Text & Format(spSceneDevice.Value, "00")
146
147
END
148
149
PRIVATE SUB SendCmd(sCmd AS String, bAck AS Boolean)
150
151
  IF Main.bServer AND IF Main.hPLCBUS THEN
152
    Main.hPLCBUS.PLCBUSTXCommand(PLCBUSAddress(), sCmd, bAck)
153
  ELSE
154
    XMLClient.PLCBUSTXCommand(PLCBUSAddress(), sCmd, bAck)
155
  ENDIF
156
157
END
158
159
PRIVATE SUB SendSceneCmd(sCmd AS String, OPTIONAL bData AS Byte)
160
161
  IF Main.bServer AND IF Main.hPLCBUS THEN
162
    Main.hPLCBUS.PLCBUSTXCommand(PLCBUSSceneAddress(), sCmd, FALSE, bData)
163
  ELSE
164
    XMLClient.PLCBUSTXCommand(PLCBUSSceneAddress(), sCmd, FALSE, bData)
165
  ENDIF
166
167
END