lignite 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -15,6 +15,7 @@ require "lignite/op_compiler"
15
15
  require "lignite/rbf_object"
16
16
  require "lignite/system_commands"
17
17
  require "lignite/variables"
18
+ require "lignite/version"
18
19
 
19
20
  module Lignite
20
21
  PORT_A = 1
@@ -35,6 +36,7 @@ module Lignite
35
36
  # empty class, just for documentation purposes
36
37
  end
37
38
 
39
+ # Represents an error returned by the robot
38
40
  class VMError < RuntimeError
39
41
  end
40
42
  end
@@ -61,7 +61,7 @@ module Lignite
61
61
  # FIXME: id is not written?!
62
62
  logger.debug "VMTHREAD #{id}"
63
63
  logger.debug " size #{bodyc.bytes.bytesize}"
64
- logger.debug " " + hexdump(bodyc.bytes)
64
+ logger.debug " " + bin_to_hex(bodyc.bytes)
65
65
  @objects << RbfObject.vmthread(body: bodyc.bytes, local_bytes: @locals.bytesize)
66
66
  end
67
67
  end
@@ -33,8 +33,16 @@ module Lignite
33
33
  s.unpack("e").first
34
34
  end
35
35
 
36
- def hexdump(s)
37
- s.unpack("H*").first
36
+ # @param hex [String] "413432"
37
+ # @return [ByteString] "A42"
38
+ def hex_to_bin(hex)
39
+ [hex].pack("H*")
40
+ end
41
+
42
+ # @param bin [ByteString] "A42"
43
+ # @return [String] "413432"
44
+ def bin_to_hex(bin)
45
+ bin.unpack("H*").first
38
46
  end
39
47
  end
40
48
  end
@@ -1,4 +1,7 @@
1
1
  module Lignite
2
+ # The communication channel to the robot.
3
+ # The callers use {#send} and {#receive}.
4
+ # Subclasses implement {#read}, {#write} and {#close}.
2
5
  class Connection
3
6
  include Bytes
4
7
  include Logger
@@ -25,6 +28,16 @@ module Lignite
25
28
  @buf = ""
26
29
  end
27
30
 
31
+ # @!group Subclasses must implement
32
+
33
+ # @!method read(maxlen)
34
+ # @param maxlen [Integer]
35
+
36
+ # @!method write(data)
37
+ # @param data [ByteString]
38
+
39
+ # @!endgroup
40
+
28
41
  def close
29
42
  Connection.reset
30
43
  end
@@ -52,11 +65,6 @@ module Lignite
52
65
  res
53
66
  end
54
67
 
55
- # @!group Subclasses must implement
56
- # @!method read(maxlen)
57
- # @!method write(data)
58
- # @!method close
59
-
60
68
  private
61
69
 
62
70
  # read must not be called with a too low value :-/
@@ -2,6 +2,7 @@ require "socket"
2
2
 
3
3
  module Lignite
4
4
  class Connection
5
+ # A {Connection} over Bluetooth
5
6
  class Bluetooth < Connection
6
7
  AF_BLUETOOTH = 31
7
8
  BTPROTO_RFCOMM = 3
@@ -2,12 +2,15 @@ require "yaml"
2
2
 
3
3
  module Lignite
4
4
  class Connection
5
+ # Errors that may happen when using a {Replay} connection.
5
6
  class ReplayError < RuntimeError
6
7
  end
7
8
 
8
9
  # Replays a recorded communication.
9
10
  # It checks that #send matches the stored sends, replays the #receive.
10
11
  class Replay < Connection
12
+ include Bytes
13
+
11
14
  def initialize(filename)
12
15
  @filename = filename
13
16
 
@@ -24,11 +27,14 @@ module Lignite
24
27
  # @param payload [ByteString]
25
28
  def send(payload)
26
29
  recorded = @stream.shift
27
- raise ReplayError, "Nothing left in the recording" if recorded.nil?
30
+ raise ReplayError, "Nothing left in the recording (#{@filename})" if recorded.nil?
28
31
  hex = recorded["SEND"]
29
32
  raise ReplayError, "Called SEND but the recording says RECV" if hex.nil?
30
33
  data = hex_to_bin(hex)
31
- raise ReplayError, "Called SEND but the recorded data does not match" if data != payload
34
+ return if data == payload
35
+
36
+ details = "actual: #{bin_to_hex(payload)}, recorded: #{hex}"
37
+ raise ReplayError, "Called SEND but the recorded data does not match: #{details}"
32
38
  end
33
39
 
34
40
  # @return [ByteString] a complete message
@@ -44,14 +50,6 @@ module Lignite
44
50
  super
45
51
  raise ReplayError, "Called close but the recording has leftover data" unless @stream.empty?
46
52
  end
47
-
48
- private
49
-
50
- # @param hex [String] "413432"
51
- # @return [ByteString] "A42"
52
- def hex_to_bin(hex)
53
- [hex].pack("H*")
54
- end
55
53
  end
56
54
  end
57
55
  end
@@ -5,6 +5,8 @@ module Lignite
5
5
  # An adapter that delegates to another connection
6
6
  # and records the communication
7
7
  class Tap < Connection
8
+ include Bytes
9
+
8
10
  def initialize(conn, filename)
9
11
  raise "File #{filename} exists, will not overwrite" if File.exist?(filename)
10
12
  @conn = conn
@@ -32,14 +34,6 @@ module Lignite
32
34
  super
33
35
  @conn.close
34
36
  end
35
-
36
- private
37
-
38
- # @param bin [ByteString] "A42"
39
- # @return [String] "413432"
40
- def bin_to_hex(bin)
41
- bin.unpack("H*").first
42
- end
43
37
  end
44
38
  end
45
39
  end
@@ -2,10 +2,12 @@
2
2
  require "libusb"
3
3
 
4
4
  module Lignite
5
+ # No robot USB device was found
5
6
  class NoUsbDevice < RuntimeError
6
7
  end
7
8
 
8
9
  class Connection
10
+ # A {Connection} over a USB cable
9
11
  class Usb < Connection
10
12
  include Logger
11
13
 
@@ -0,0 +1,244 @@
1
+ # This file is generated from its .erb template. DO NOT EDIT.
2
+
3
+ module Lignite
4
+ # Number of output ports in the system
5
+ OUTPUTS = 4
6
+
7
+ # Number of input ports in the system
8
+ INPUTS = 4
9
+
10
+ # Number of buttons in the system
11
+ BUTTONS = 6
12
+
13
+ # Number of LEDs in the system
14
+ LEDS = 4
15
+
16
+ # LCD horizontal pixels
17
+ LCD_WIDTH = 178
18
+
19
+ # LCD vertical pixels
20
+ LCD_HEIGHT = 128
21
+
22
+ # Top line vertical pixels
23
+ TOPLINE_HEIGHT = 10
24
+
25
+ # Store levels
26
+ LCD_STORE_LEVELS = 3
27
+
28
+ DEFAULT_VOLUME = 100
29
+
30
+ DEFAULT_SLEEPMINUTES = 30
31
+
32
+ # Forground color
33
+ FG_COLOR = 1
34
+
35
+ # Background color
36
+ BG_COLOR = 0
37
+
38
+ # Number of bricks in the USB daisy chain (master + slaves)
39
+ CHAIN_DEPT = 4
40
+
41
+ # Max path size excluding trailing forward slash including zero termination
42
+ PATHSIZE = 84
43
+
44
+ # Max name size including zero termination (must be divideable by 4)
45
+ NAMESIZE = 32
46
+
47
+ # Max extension size including dot and zero termination
48
+ EXTSIZE = 5
49
+
50
+ # Max filename size including path, name, extension and termination (must be divideable by 4)
51
+ FILENAMESIZE = 120
52
+
53
+ # Max WIFI MAC size including zero termination
54
+ MACSIZE = 18
55
+
56
+ # Max WIFI IP size including zero termination
57
+ IPSIZE = 16
58
+
59
+ # Max bluetooth address size including zero termination
60
+ BTADRSIZE = 13
61
+
62
+ # Inclusive zero termination
63
+ ERR_STRING_SIZE = 32
64
+
65
+ EVENT_NONE = 0
66
+
67
+ EVENT_BT_PIN = 1
68
+
69
+ EVENT_BT_REQ_CONF = 2
70
+
71
+ # Highest valid device type
72
+ MAX_VALID_TYPE = 101
73
+
74
+ # Folder for non volatile user programs/data
75
+ MEMORY_FOLDER = "/mnt/ramdisk".freeze
76
+
77
+ # Folder for On Brick Programming programs
78
+ PROGRAM_FOLDER = "../prjs/BrkProg_SAVE".freeze
79
+
80
+ # Folder for On Brick Data log files
81
+ DATALOG_FOLDER = "../prjs/BrkDL_SAVE".freeze
82
+
83
+ # Folder for SD card mount
84
+ SDCARD_FOLDER = "../prjs/SD_Card".freeze
85
+
86
+ # Folder for USB stick mount
87
+ USBSTICK_FOLDER = "../prjs/USB_Stick".freeze
88
+
89
+ # Project folder
90
+ PRJS_DIR = "../prjs".freeze
91
+
92
+ # Apps folder
93
+ APPS_DIR = "../apps".freeze
94
+
95
+ # Tools folder
96
+ TOOLS_DIR = "../tools".freeze
97
+
98
+ # Temporary folder
99
+ TMP_DIR = "../tmp".freeze
100
+
101
+ # Folder for non volatile settings
102
+ SETTINGS_DIR = "../sys/settings".freeze
103
+
104
+ # Max directory items allocated including "." and ".."
105
+ DIR_DEEPT = 127
106
+
107
+ # Last run filename
108
+ LASTRUN_FILE_NAME = "lastrun".freeze
109
+
110
+ # Calibration data filename
111
+ CALDATA_FILE_NAME = "caldata".freeze
112
+
113
+ # File used in "Sleep" app to save status
114
+ SLEEP_FILE_NAME = "Sleep".freeze
115
+
116
+ # File used in "Volume" app to save status
117
+ VOLUME_FILE_NAME = "Volume".freeze
118
+
119
+ # File used in "WiFi" app to save status
120
+ WIFI_FILE_NAME = "WiFi".freeze
121
+
122
+ # File used in "Bluetooth" app to save status
123
+ BLUETOOTH_FILE_NAME = "Bluetooth".freeze
124
+
125
+ # Robot Sound File
126
+ EXT_SOUND = ".rsf".freeze
127
+
128
+ # Robot Graphics File
129
+ EXT_GRAPHICS = ".rgf".freeze
130
+
131
+ # Robot Byte code File
132
+ EXT_BYTECODE = ".rbf".freeze
133
+
134
+ # Robot Text File
135
+ EXT_TEXT = ".rtf".freeze
136
+
137
+ # Robot Datalog File
138
+ EXT_DATALOG = ".rdf".freeze
139
+
140
+ # Robot Program File
141
+ EXT_PROGRAM = ".rpf".freeze
142
+
143
+ # Robot Configuration File
144
+ EXT_CONFIG = ".rcf".freeze
145
+
146
+ # Robot Archive File
147
+ EXT_ARCHIVE = ".raf".freeze
148
+
149
+ # Brick name maximal size (including zero termination)
150
+ BRICKNAMESIZE = 120
151
+
152
+ # Bluetooth pass key size (including zero termination)
153
+ BTPASSKEYSIZE = 7
154
+
155
+ # WiFi pass key size (including zero termination)
156
+ WIFIPASSKEYSIZE = 33
157
+
158
+ # Character set allowed in brick name and raw filenames
159
+ CHARSET_NAME = 1
160
+
161
+ # Character set allowed in file names
162
+ CHARSET_FILENAME = 2
163
+
164
+ # Character set allowed in bluetooth pass key
165
+ CHARSET_BTPASSKEY = 4
166
+
167
+ # Character set allowed in WiFi pass key
168
+ CHARSET_WIFIPASSKEY = 8
169
+
170
+ # Character set allowed in WiFi ssid
171
+ CHARSET_WIFISSID = 16
172
+
173
+ # DATA8 negative limit
174
+ DATA8_MIN = -127
175
+
176
+ # DATA8 positive limit
177
+ DATA8_MAX = 127
178
+
179
+ # DATA16 negative limit
180
+ DATA16_MIN = -32767
181
+
182
+ # DATA16 positive limit
183
+ DATA16_MAX = 32767
184
+
185
+ # DATA32 negative limit
186
+ DATA32_MIN = -2147483647
187
+
188
+ # DATA32 positive limit
189
+ DATA32_MAX = 2147483647
190
+
191
+ # DATAF negative limit
192
+ DATAF_MIN = -2147483647
193
+
194
+ # DATAF positive limit
195
+ DATAF_MAX = 2147483647
196
+
197
+ DATA8_NAN = 128
198
+
199
+ DATA16_NAN = 32768
200
+
201
+ DATA32_NAN = 2147483648
202
+
203
+ DATAF_NAN = 2143289344
204
+
205
+ PULSE_GUI_BACKGROUND = 1
206
+
207
+ PULSE_BROWSER = 2
208
+
209
+ PULSE_KEY = 4
210
+
211
+ POP3_ABS_X = 16
212
+
213
+ POP3_ABS_Y = 50
214
+
215
+ POP3_ABS_WARN_ICON_X = 64
216
+
217
+ POP3_ABS_WARN_ICON_X1 = 40
218
+
219
+ POP3_ABS_WARN_ICON_X2 = 72
220
+
221
+ POP3_ABS_WARN_ICON_X3 = 104
222
+
223
+ POP3_ABS_WARN_ICON_Y = 60
224
+
225
+ POP3_ABS_WARN_SPEC_ICON_X = 88
226
+
227
+ POP3_ABS_WARN_SPEC_ICON_Y = 60
228
+
229
+ POP3_ABS_WARN_TEXT_X = 80
230
+
231
+ POP3_ABS_WARN_TEXT_Y = 68
232
+
233
+ POP3_ABS_WARN_YES_X = 72
234
+
235
+ POP3_ABS_WARN_YES_Y = 90
236
+
237
+ POP3_ABS_WARN_LINE_X = 21
238
+
239
+ POP3_ABS_WARN_LINE_Y = 89
240
+
241
+ POP3_ABS_WARN_LINE_ENDX = 155
242
+
243
+ # .
244
+ end
@@ -0,0 +1,14 @@
1
+ <%# This ERB template uses Ruby to generate Ruby. -%>
2
+ module Lignite
3
+ <% yml["defines"].each do |dname, ddata| -%>
4
+ <% desc = ddata["desc"] -%>
5
+ <% if desc -%>
6
+ # <%= desc %>
7
+ <% end -%>
8
+ <% dvalue = ddata["value"].inspect -%>
9
+ <% dvalue += ".freeze" if dvalue[0] == '"' -%>
10
+ <%= dname %> = <%= dvalue %>
11
+
12
+ <% end -%>
13
+ # .
14
+ end
@@ -1,4 +1,5 @@
1
1
  module Lignite
2
+ # This enables sending commands without wrapping them in a .rbf program
2
3
  class DirectCommands
3
4
  include Bytes
4
5
 
@@ -0,0 +1,659 @@
1
+ # This file is generated from its .erb template. DO NOT EDIT.
2
+
3
+ module Lignite
4
+ # enum: TYPE
5
+ # Type values for byte codes
6
+
7
+ # Mode value that won't change mode in byte codes (convenient place to define)
8
+ MODE_KEEP = -1
9
+
10
+ # Type value that won't change type in byte codes
11
+ TYPE_KEEP = 0
12
+
13
+ # Device is NXT touch sensor
14
+ TYPE_NXT_TOUCH = 1
15
+
16
+ # Device is NXT light sensor
17
+ TYPE_NXT_LIGHT = 2
18
+
19
+ # Device is NXT sound sensor
20
+ TYPE_NXT_SOUND = 3
21
+
22
+ # Device is NXT color sensor
23
+ TYPE_NXT_COLOR = 4
24
+
25
+ # Device is NXT ultra sonic sensor
26
+ TYPE_NXT_ULTRASONIC = 5
27
+
28
+ # Device is NXT temperature sensor
29
+ TYPE_NXT_TEMPERATURE = 6
30
+
31
+ # Device is EV3/NXT tacho motor
32
+ TYPE_TACHO = 7
33
+
34
+ # Device is EV3 mini tacho motor
35
+ TYPE_MINITACHO = 8
36
+
37
+ # Device is EV3 new tacho motor
38
+ TYPE_NEWTACHO = 9
39
+
40
+ # Device is EV3 touch sensor
41
+ TYPE_TOUCH = 16
42
+
43
+ # Device is EV3 color sensor
44
+ TYPE_COLOR = 29
45
+
46
+ # Device is EV3 ultra sonic sensor
47
+ TYPE_ULTRASONIC = 30
48
+
49
+ # Device is EV3 gyro sensor
50
+ TYPE_GYRO = 32
51
+
52
+ # Device is EV3 IR sensor
53
+ TYPE_IR = 33
54
+
55
+ TYPE_THIRD_PARTY_START = 50
56
+
57
+ TYPE_THIRD_PARTY_END = 98
58
+
59
+ # Device is energy meter
60
+ TYPE_ENERGYMETER = 99
61
+
62
+ # Device type is not known yet
63
+ TYPE_IIC_UNKNOWN = 100
64
+
65
+ # Device is a NXT ADC test sensor
66
+ TYPE_NXT_TEST = 101
67
+
68
+ # Device is NXT IIC sensor
69
+ TYPE_NXT_IIC = 123
70
+
71
+ # Port is connected to a terminal
72
+ TYPE_TERMINAL = 124
73
+
74
+ # Port not empty but type has not been determined
75
+ TYPE_UNKNOWN = 125
76
+
77
+ # Port empty or not available
78
+ TYPE_NONE = 126
79
+
80
+ # Port not empty and type is invalid
81
+ TYPE_ERROR = 127
82
+
83
+ # enum: SLOT
84
+ # Program ID's (Slots)
85
+
86
+ # Program slot reserved for executing the user interface
87
+ GUI_SLOT = 0
88
+
89
+ # Program slot used to execute user projects, apps and tools
90
+ USER_SLOT = 1
91
+
92
+ # Program slot used for direct commands coming from c_com
93
+ CMD_SLOT = 2
94
+
95
+ # Program slot used for direct commands coming from c_ui
96
+ TERM_SLOT = 3
97
+
98
+ # Program slot used to run the debug ui
99
+ DEBUG_SLOT = 4
100
+
101
+ # Maximum slots supported by the VM
102
+ SLOTS = 5
103
+
104
+ CURRENT_SLOT = -1
105
+
106
+ # enum: BUTTONTYPE
107
+ # Button
108
+
109
+ NO_BUTTON = 0
110
+
111
+ UP_BUTTON = 1
112
+
113
+ ENTER_BUTTON = 2
114
+
115
+ DOWN_BUTTON = 3
116
+
117
+ RIGHT_BUTTON = 4
118
+
119
+ LEFT_BUTTON = 5
120
+
121
+ BACK_BUTTON = 6
122
+
123
+ ANY_BUTTON = 7
124
+
125
+ BUTTONTYPES = 8
126
+
127
+ # enum: BROWSERTYPE
128
+ # Browser Types Avaliable
129
+
130
+ # Browser for folders
131
+ BROWSE_FOLDERS = 0
132
+
133
+ # Browser for folders and files
134
+ BROWSE_FOLDS_FILES = 1
135
+
136
+ # Browser for cached / recent files
137
+ BROWSE_CACHE = 2
138
+
139
+ # Browser for files
140
+ BROWSE_FILES = 3
141
+
142
+ # Maximum browser types supported by the VM
143
+ BROWSERTYPES = 4
144
+
145
+ # enum: FONTTYPE
146
+ # Font Types Avaliable
147
+
148
+ NORMAL_FONT = 0
149
+
150
+ SMALL_FONT = 1
151
+
152
+ LARGE_FONT = 2
153
+
154
+ TINY_FONT = 3
155
+
156
+ # Maximum font types supported by the VM
157
+ FONTTYPES = 4
158
+
159
+ # enum: ICONTYPE
160
+ # Icon Types Avaliable
161
+
162
+ # 24x12_Files_Folders_Settings.bmp
163
+ NORMAL_ICON = 0
164
+
165
+ SMALL_ICON = 1
166
+
167
+ # 24x22_Yes_No_OFF_FILEOps.bmp
168
+ LARGE_ICON = 2
169
+
170
+ MENU_ICON = 3
171
+
172
+ # 8x12_miniArrows.bmp
173
+ ARROW_ICON = 4
174
+
175
+ # Maximum icon types supported by the VM
176
+ ICONTYPES = 5
177
+
178
+ # enum: S_ICON_NO
179
+
180
+ SICON_CHARGING = 0
181
+
182
+ SICON_BATT_4 = 1
183
+
184
+ SICON_BATT_3 = 2
185
+
186
+ SICON_BATT_2 = 3
187
+
188
+ SICON_BATT_1 = 4
189
+
190
+ SICON_BATT_0 = 5
191
+
192
+ SICON_WAIT1 = 6
193
+
194
+ SICON_WAIT2 = 7
195
+
196
+ SICON_BT_ON = 8
197
+
198
+ SICON_BT_VISIBLE = 9
199
+
200
+ SICON_BT_CONNECTED = 10
201
+
202
+ SICON_BT_CONNVISIB = 11
203
+
204
+ SICON_WIFI_3 = 12
205
+
206
+ SICON_WIFI_2 = 13
207
+
208
+ SICON_WIFI_1 = 14
209
+
210
+ SICON_WIFI_CONNECTED = 15
211
+
212
+ SICON_USB = 21
213
+
214
+ S_ICON_NOS = 22
215
+
216
+ # enum: N_ICON_NO
217
+
218
+ ICON_NONE = -1
219
+
220
+ ICON_RUN = 0
221
+
222
+ ICON_FOLDER = 1
223
+
224
+ ICON_FOLDER2 = 2
225
+
226
+ ICON_USB = 3
227
+
228
+ ICON_SD = 4
229
+
230
+ ICON_SOUND = 5
231
+
232
+ ICON_IMAGE = 6
233
+
234
+ ICON_SETTINGS = 7
235
+
236
+ ICON_ONOFF = 8
237
+
238
+ ICON_SEARCH = 9
239
+
240
+ ICON_WIFI = 10
241
+
242
+ ICON_CONNECTIONS = 11
243
+
244
+ ICON_ADD_HIDDEN = 12
245
+
246
+ ICON_TRASHBIN = 13
247
+
248
+ ICON_VISIBILITY = 14
249
+
250
+ ICON_KEY = 15
251
+
252
+ ICON_CONNECT = 16
253
+
254
+ ICON_DISCONNECT = 17
255
+
256
+ ICON_UP = 18
257
+
258
+ ICON_DOWN = 19
259
+
260
+ ICON_WAIT1 = 20
261
+
262
+ ICON_WAIT2 = 21
263
+
264
+ ICON_BLUETOOTH = 22
265
+
266
+ ICON_INFO = 23
267
+
268
+ ICON_TEXT = 24
269
+
270
+ ICON_QUESTIONMARK = 27
271
+
272
+ ICON_INFO_FILE = 28
273
+
274
+ ICON_DISC = 29
275
+
276
+ ICON_CONNECTED = 30
277
+
278
+ ICON_OBP = 31
279
+
280
+ ICON_OBD = 32
281
+
282
+ ICON_OPENFOLDER = 33
283
+
284
+ ICON_BRICK1 = 34
285
+
286
+ N_ICON_NOS = 35
287
+
288
+ # enum: L_ICON_NO
289
+
290
+ YES_NOTSEL = 0
291
+
292
+ YES_SEL = 1
293
+
294
+ NO_NOTSEL = 2
295
+
296
+ NO_SEL = 3
297
+
298
+ OFF = 4
299
+
300
+ WAIT_VERT = 5
301
+
302
+ WAIT_HORZ = 6
303
+
304
+ TO_MANUAL = 7
305
+
306
+ WARNSIGN = 8
307
+
308
+ WARN_BATT = 9
309
+
310
+ WARN_POWER = 10
311
+
312
+ WARN_TEMP = 11
313
+
314
+ NO_USBSTICK = 12
315
+
316
+ TO_EXECUTE = 13
317
+
318
+ TO_BRICK = 14
319
+
320
+ TO_SDCARD = 15
321
+
322
+ TO_USBSTICK = 16
323
+
324
+ TO_BLUETOOTH = 17
325
+
326
+ TO_WIFI = 18
327
+
328
+ TO_TRASH = 19
329
+
330
+ TO_COPY = 20
331
+
332
+ TO_FILE = 21
333
+
334
+ CHAR_ERROR = 22
335
+
336
+ COPY_ERROR = 23
337
+
338
+ PROGRAM_ERROR = 24
339
+
340
+ WARN_MEMORY = 27
341
+
342
+ L_ICON_NOS = 28
343
+
344
+ # enum: M_ICON_NO
345
+
346
+ ICON_STAR = 0
347
+
348
+ ICON_LOCKSTAR = 1
349
+
350
+ ICON_LOCK = 2
351
+
352
+ # Bluetooth type PC
353
+ ICON_PC = 3
354
+
355
+ # Bluetooth type PHONE
356
+ ICON_PHONE = 4
357
+
358
+ # Bluetooth type BRICK
359
+ ICON_BRICK = 5
360
+
361
+ # Bluetooth type UNKNOWN
362
+ ICON_UNKNOWN = 6
363
+
364
+ ICON_FROM_FOLDER = 7
365
+
366
+ ICON_CHECKBOX = 8
367
+
368
+ ICON_CHECKED = 9
369
+
370
+ ICON_XED = 10
371
+
372
+ M_ICON_NOS = 11
373
+
374
+ # enum: A_ICON_NO
375
+
376
+ ICON_LEFT = 1
377
+
378
+ ICON_RIGHT = 2
379
+
380
+ A_ICON_NOS = 3
381
+
382
+ # enum: BTTYPE
383
+ # Bluetooth Device Types
384
+
385
+ # Bluetooth type PC
386
+ BTTYPE_PC = 3
387
+
388
+ # Bluetooth type PHONE
389
+ BTTYPE_PHONE = 4
390
+
391
+ # Bluetooth type BRICK
392
+ BTTYPE_BRICK = 5
393
+
394
+ # Bluetooth type UNKNOWN
395
+ BTTYPE_UNKNOWN = 6
396
+
397
+ BTTYPES = 7
398
+
399
+ # enum: LEDPATTERN
400
+ # LED Pattern
401
+
402
+ LED_BLACK = 0
403
+
404
+ LED_GREEN = 1
405
+
406
+ LED_RED = 2
407
+
408
+ LED_ORANGE = 3
409
+
410
+ LED_GREEN_FLASH = 4
411
+
412
+ LED_RED_FLASH = 5
413
+
414
+ LED_ORANGE_FLASH = 6
415
+
416
+ LED_GREEN_PULSE = 7
417
+
418
+ LED_RED_PULSE = 8
419
+
420
+ LED_ORANGE_PULSE = 9
421
+
422
+ LEDPATTERNS = 10
423
+
424
+ # enum: LEDTYPE
425
+
426
+ # All LEDs
427
+ LED_ALL = 0
428
+
429
+ # Right red
430
+ LED_RR = 1
431
+
432
+ # Right green
433
+ LED_RG = 2
434
+
435
+ # Left red
436
+ LED_LR = 3
437
+
438
+ # Left green
439
+ LED_LG = 4
440
+
441
+ # enum: FILETYPE
442
+ # File Types Avaliable
443
+
444
+ FILETYPE_UNKNOWN = 0
445
+
446
+ TYPE_FOLDER = 1
447
+
448
+ TYPE_SOUND = 2
449
+
450
+ TYPE_BYTECODE = 3
451
+
452
+ TYPE_GRAPHICS = 4
453
+
454
+ TYPE_DATALOG = 5
455
+
456
+ TYPE_PROGRAM = 6
457
+
458
+ TYPE_TEXT = 7
459
+
460
+ TYPE_SDCARD = 16
461
+
462
+ TYPE_USBSTICK = 32
463
+
464
+ FILETYPES = 33
465
+
466
+ TYPE_RESTART_BROWSER = -1
467
+
468
+ TYPE_REFRESH_BROWSER = -2
469
+
470
+ # enum: RESULT
471
+ # Describes result from executing functions
472
+
473
+ # No errors to report
474
+ OK = 0
475
+
476
+ # Busy - try again
477
+ BUSY = 1
478
+
479
+ # Something failed
480
+ FAIL = 2
481
+
482
+ # Stopped
483
+ STOP = 4
484
+
485
+ # Start
486
+ START = 8
487
+
488
+ # enum: DATA_FORMAT
489
+ # Data formats used in device type formats
490
+
491
+ # DATA8
492
+ DATA_8 = 0
493
+
494
+ # DATA16
495
+ DATA_16 = 1
496
+
497
+ # DATA32
498
+ DATA_32 = 2
499
+
500
+ # DATAF
501
+ DATA_F = 3
502
+
503
+ # Zero terminated string
504
+ DATA_S = 4
505
+
506
+ # Array handle
507
+ DATA_A = 5
508
+
509
+ # Variable type
510
+ DATA_V = 7
511
+
512
+ # Percent
513
+ DATA_PCT = 16
514
+
515
+ # Raw
516
+ DATA_RAW = 18
517
+
518
+ # SI unit
519
+ DATA_SI = 19
520
+
521
+ DATA_FORMATS = 20
522
+
523
+ # enum: DEL
524
+ # Delimiter codes used to define how data is separated in files
525
+
526
+ # No delimiter at all
527
+ DEL_NONE = 0
528
+
529
+ # Use tab as delimiter
530
+ DEL_TAB = 1
531
+
532
+ # Use space as delimiter
533
+ DEL_SPACE = 2
534
+
535
+ # Use return as delimiter
536
+ DEL_RETURN = 3
537
+
538
+ # Use colon as delimiter
539
+ DEL_COLON = 4
540
+
541
+ # Use comma as delimiter
542
+ DEL_COMMA = 5
543
+
544
+ # Use line feed as delimiter
545
+ DEL_LINEFEED = 6
546
+
547
+ # Use return+line feed as delimiter
548
+ DEL_CRLF = 7
549
+
550
+ DELS = 8
551
+
552
+ # enum: HWTYPE
553
+ # Hardware Transport Layer
554
+
555
+ HW_USB = 1
556
+
557
+ HW_BT = 2
558
+
559
+ HW_WIFI = 3
560
+
561
+ HWTYPES = 4
562
+
563
+ # enum: ENCRYPT
564
+ # Encryption Types
565
+
566
+ ENCRYPT_NONE = 0
567
+
568
+ ENCRYPT_WPA2 = 1
569
+
570
+ ENCRYPTS = 2
571
+
572
+ # enum: LMS_ENCRYPT
573
+ # Encryption Types
574
+
575
+ LMS_ENCRYPT_NONE = 0
576
+
577
+ LMS_ENCRYPT_WPA2 = 1
578
+
579
+ LMS_ENCRYPTS = 2
580
+
581
+ # enum: COLOR
582
+
583
+ RED = 0
584
+
585
+ GREEN = 1
586
+
587
+ BLUE = 2
588
+
589
+ BLANK = 3
590
+
591
+ COLORS = 4
592
+
593
+ # enum: NXTCOLOR
594
+ # Constants related to color sensor value using Color sensor as color detector
595
+
596
+ BLACKCOLOR = 1
597
+
598
+ BLUECOLOR = 2
599
+
600
+ GREENCOLOR = 3
601
+
602
+ YELLOWCOLOR = 4
603
+
604
+ REDCOLOR = 5
605
+
606
+ WHITECOLOR = 6
607
+
608
+ # enum: WARNING
609
+ # Warnings
610
+
611
+ WARNING_TEMP = 1
612
+
613
+ WARNING_CURRENT = 2
614
+
615
+ WARNING_VOLTAGE = 4
616
+
617
+ WARNING_MEMORY = 8
618
+
619
+ WARNING_DSPSTAT = 16
620
+
621
+ WARNING_RAM = 32
622
+
623
+ WARNING_BATTLOW = 64
624
+
625
+ WARNING_BUSY = 128
626
+
627
+ WARNINGS = 63
628
+
629
+ # enum: OBJSTAT
630
+ # Values used to describe an object's status
631
+
632
+ # Object code is running
633
+ RUNNING = 16
634
+
635
+ # Object is waiting for final trigger
636
+ WAITING = 32
637
+
638
+ # Object is stopped or not triggered yet
639
+ STOPPED = 64
640
+
641
+ # Object is halted because a call is in progress
642
+ HALTED = 128
643
+
644
+ # enum: DEVCMD
645
+ # Device commands used to control (UART sensors) devices
646
+
647
+ # UART device reset
648
+ DEVCMD_RESET = 17
649
+
650
+ # UART device fire (ultrasonic)
651
+ DEVCMD_FIRE = 17
652
+
653
+ # UART device channel (IR seeker)
654
+ DEVCMD_CHANNEL = 18
655
+
656
+ DEVCMDS = 19
657
+
658
+ # .
659
+ end