lignite 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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