-
Notifications
You must be signed in to change notification settings - Fork 44
Expand file tree
/
Copy pathgraph.dot
More file actions
1956 lines (1954 loc) · 131 KB
/
graph.dot
File metadata and controls
1956 lines (1954 loc) · 131 KB
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#!/usr/local/bin/dot
#
# Class diagram
# Generated by UMLGraph version R5_6-24-gf6e263 (http://www.umlgraph.org/)
#
digraph G {
edge [fontname="Helvetica",fontsize=10,labelfontname="Helvetica",labelfontsize=10];
node [fontname="Helvetica",fontsize=10,shape=plaintext];
nodesep=0.25;
ranksep=0.5;
// ev3dev.actuators.LCD
c0 [label=<<table title="ev3dev.actuators.LCD" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> LCD </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + LCD() </td></tr>
<tr><td align="left" balign="left"> + getInstance() : GraphicsLCD </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.actuators.LCDJessie
c1 [label=<<table title="ev3dev.actuators.LCDJessie" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> LCDJessie </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - log : Logger </td></tr>
<tr><td align="left" balign="left"> + EV3DEV_EV3_DEVICES_PATH : String </td></tr>
<tr><td align="left" balign="left"> + EV3DEV_EV3_LCD_NAME : String </td></tr>
<tr><td align="left" balign="left"> + EV3DEV_EV3_LCD_PATH : String </td></tr>
<tr><td align="left" balign="left"> + EV3DEV_LCD_KEY : String </td></tr>
<tr><td align="left" balign="left"> + FB_PATH : String </td></tr>
<tr><td align="left" balign="left"> - SCREEN_WIDTH : int </td></tr>
<tr><td align="left" balign="left"> - SCREEN_HEIGHT : int </td></tr>
<tr><td align="left" balign="left"> - LINE_LEN : int </td></tr>
<tr><td align="left" balign="left"> - BUFFER_SIZE : int </td></tr>
<tr><td align="left" balign="left"> + EV3_SCREEN_WIDTH : int </td></tr>
<tr><td align="left" balign="left"> + EV3_SCREEN_HEIGHT : int </td></tr>
<tr><td align="left" balign="left"> + EV3_LINE_LEN : int </td></tr>
<tr><td align="left" balign="left"> + EV3_ROWS : int </td></tr>
<tr><td align="left" balign="left"> + EV3_BUFFER_SIZE : int </td></tr>
<tr><td align="left" balign="left"> - image : BufferedImage </td></tr>
<tr><td align="left" balign="left"> - g2d : Graphics2D </td></tr>
<tr><td align="left" balign="left"> - instance : GraphicsLCD </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - LCDJessie() </td></tr>
<tr><td align="left" balign="left"> + getInstance() : GraphicsLCD </td></tr>
<tr><td align="left" balign="left"> - init(width : int, height : int, lineLength : int, bufferSize : int) </td></tr>
<tr><td align="left" balign="left"> + getImage() : BufferedImage </td></tr>
<tr><td align="left" balign="left"> + flush() </td></tr>
<tr><td align="left" balign="left"> + translate(x : int, y : int) </td></tr>
<tr><td align="left" balign="left"> + getFont() : Font </td></tr>
<tr><td align="left" balign="left"> + setFont(font : Font) </td></tr>
<tr><td align="left" balign="left"> + getTranslateX() : int </td></tr>
<tr><td align="left" balign="left"> + getTranslateY() : int </td></tr>
<tr><td align="left" balign="left"> + setColor(color : int) </td></tr>
<tr><td align="left" balign="left"> + setColor(i : int, i1 : int, i2 : int) </td></tr>
<tr><td align="left" balign="left"> + setPixel(i : int, i1 : int, i2 : int) </td></tr>
<tr><td align="left" balign="left"> + getPixel(i : int, i1 : int) : int </td></tr>
<tr><td align="left" balign="left"> + drawString(s : String, i : int, i1 : int, i2 : int, b : boolean) </td></tr>
<tr><td align="left" balign="left"> + drawString(s : String, i : int, i1 : int, i2 : int) </td></tr>
<tr><td align="left" balign="left"> + drawSubstring(s : String, i : int, i1 : int, i2 : int, i3 : int, i4 : int) </td></tr>
<tr><td align="left" balign="left"> + drawChar(c : char, i : int, i1 : int, i2 : int) </td></tr>
<tr><td align="left" balign="left"> + drawChars(chars : char[], i : int, i1 : int, i2 : int, i3 : int, i4 : int) </td></tr>
<tr><td align="left" balign="left"> + getStrokeStyle() : int </td></tr>
<tr><td align="left" balign="left"> + setStrokeStyle(i : int) </td></tr>
<tr><td align="left" balign="left"> + drawRegionRop(image : Image, i : int, i1 : int, i2 : int, i3 : int, i4 : int, i5 : int, i6 : int, i7 : int) </td></tr>
<tr><td align="left" balign="left"> + drawRegionRop(image : Image, i : int, i1 : int, i2 : int, i3 : int, i4 : int, i5 : int, i6 : int, i7 : int, i8 : int) </td></tr>
<tr><td align="left" balign="left"> + drawRegion(image : Image, i : int, i1 : int, i2 : int, i3 : int, i4 : int, i5 : int, i6 : int, i7 : int) </td></tr>
<tr><td align="left" balign="left"> + drawImage(image : Image, i : int, i1 : int, i2 : int) </td></tr>
<tr><td align="left" balign="left"> + drawLine(x1 : int, y1 : int, x2 : int, y2 : int) </td></tr>
<tr><td align="left" balign="left"> + fillRect(x : int, y : int, width : int, height : int) </td></tr>
<tr><td align="left" balign="left"> + copyArea(i : int, i1 : int, i2 : int, i3 : int, i4 : int, i5 : int, i6 : int) </td></tr>
<tr><td align="left" balign="left"> + drawRoundRect(x : int, y : int, width : int, height : int, arcWidth : int, arcHeight : int) </td></tr>
<tr><td align="left" balign="left"> + drawRect(x : int, y : int, width : int, height : int) </td></tr>
<tr><td align="left" balign="left"> + drawArc(x : int, y : int, width : int, height : int, startAngle : int, arcAngle : int) </td></tr>
<tr><td align="left" balign="left"> + fillArc(x : int, y : int, width : int, height : int, startAngle : int, arcAngle : int) </td></tr>
<tr><td align="left" balign="left"> + refresh() </td></tr>
<tr><td align="left" balign="left"> + clear() </td></tr>
<tr><td align="left" balign="left"> + getWidth() : int </td></tr>
<tr><td align="left" balign="left"> + getHeight() : int </td></tr>
<tr><td align="left" balign="left"> + getDisplay() : byte[] </td></tr>
<tr><td align="left" balign="left"> + getHWDisplay() : byte[] </td></tr>
<tr><td align="left" balign="left"> + setContrast(i : int) </td></tr>
<tr><td align="left" balign="left"> + bitBlt(bytes : byte[], i : int, i1 : int, i2 : int, i3 : int, i4 : int, i5 : int, i6 : int, i7 : int, i8 : int) </td></tr>
<tr><td align="left" balign="left"> + bitBlt(bytes : byte[], i : int, i1 : int, i2 : int, i3 : int, bytes1 : byte[], i4 : int, i5 : int, i6 : int, i7 : int, i8 : int, i9 : int, i10 : int) </td></tr>
<tr><td align="left" balign="left"> + setAutoRefresh(b : boolean) </td></tr>
<tr><td align="left" balign="left"> + setAutoRefreshPeriod(i : int) : int </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.actuators.LCDStretch
c2 [label=<<table title="ev3dev.actuators.LCDStretch" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> LCDStretch </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + EV3DEV_LCD_KEY : String </td></tr>
<tr><td align="left" balign="left"> + EV3DEV_LCD_DEFAULT : String </td></tr>
<tr><td align="left" balign="left"> + EV3DEV_LCD_MODE_KEY : String </td></tr>
<tr><td align="left" balign="left"> - log : Logger </td></tr>
<tr><td align="left" balign="left"> - fb : JavaFramebuffer </td></tr>
<tr><td align="left" balign="left"> - image : BufferedImage </td></tr>
<tr><td align="left" balign="left"> - g2d : Graphics2D </td></tr>
<tr><td align="left" balign="left"> - timer : Timer </td></tr>
<tr><td align="left" balign="left"> - timer_run : boolean </td></tr>
<tr><td align="left" balign="left"> - timer_msec : int </td></tr>
<tr><td align="left" balign="left"> - stroke : int </td></tr>
<tr><td align="left" balign="left"> - instance : LCDStretch </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - LCDStretch() </td></tr>
<tr><td align="left" balign="left"> + getInstance() : GraphicsLCD </td></tr>
<tr><td align="left" balign="left"> + getFramebuffer() : JavaFramebuffer </td></tr>
<tr><td align="left" balign="left"> + flush() </td></tr>
<tr><td align="left" balign="left"> + translate(x : int, y : int) </td></tr>
<tr><td align="left" balign="left"> + getFont() : Font </td></tr>
<tr><td align="left" balign="left"> + setFont(font : Font) </td></tr>
<tr><td align="left" balign="left"> + getTranslateX() : int </td></tr>
<tr><td align="left" balign="left"> + getTranslateY() : int </td></tr>
<tr><td align="left" balign="left"> + setColor(rgb : int) </td></tr>
<tr><td align="left" balign="left"> + setColor(r : int, g : int, b : int) </td></tr>
<tr><td align="left" balign="left"> + setPixel(x : int, y : int, color : int) </td></tr>
<tr><td align="left" balign="left"> + getPixel(x : int, y : int) : int </td></tr>
<tr><td align="left" balign="left"> + drawString(str : String, x : int, y : int, anchor : int, inverted : boolean) </td></tr>
<tr><td align="left" balign="left"> + drawString(str : String, x : int, y : int, anchor : int) </td></tr>
<tr><td align="left" balign="left"> + drawSubstring(str : String, offset : int, len : int, x : int, y : int, anchor : int) </td></tr>
<tr><td align="left" balign="left"> + drawChar(character : char, x : int, y : int, anchor : int) </td></tr>
<tr><td align="left" balign="left"> + drawChars(data : char[], offset : int, length : int, x : int, y : int, anchor : int) </td></tr>
<tr><td align="left" balign="left"> + getStrokeStyle() : int </td></tr>
<tr><td align="left" balign="left"> + setStrokeStyle(i : int) </td></tr>
<tr><td align="left" balign="left"> + drawRegionRop(src : Image, sx : int, sy : int, w : int, h : int, x : int, y : int, anchor : int, rop : int) </td></tr>
<tr><td align="left" balign="left"> + drawRegionRop(src : Image, sx : int, sy : int, w : int, h : int, transform : int, x : int, y : int, anchor : int, rop : int) </td></tr>
<tr><td align="left" balign="left"> + drawRegion(src : Image, sx : int, sy : int, w : int, h : int, transform : int, x : int, y : int, anchor : int) </td></tr>
<tr><td align="left" balign="left"> + drawImage(image : Image, i : int, i1 : int, i2 : int) </td></tr>
<tr><td align="left" balign="left"> + drawLine(x1 : int, y1 : int, x2 : int, y2 : int) </td></tr>
<tr><td align="left" balign="left"> + fillRect(x : int, y : int, width : int, height : int) </td></tr>
<tr><td align="left" balign="left"> + copyArea(sx : int, sy : int, w : int, h : int, x : int, y : int, anchor : int) </td></tr>
<tr><td align="left" balign="left"> - adjustX(x : int, w : int, anchor : int) : int </td></tr>
<tr><td align="left" balign="left"> - adjustY(y : int, h : int, anchor : int) : int </td></tr>
<tr><td align="left" balign="left"> + drawRoundRect(x : int, y : int, width : int, height : int, arcWidth : int, arcHeight : int) </td></tr>
<tr><td align="left" balign="left"> + drawRect(x : int, y : int, width : int, height : int) </td></tr>
<tr><td align="left" balign="left"> + drawArc(x : int, y : int, width : int, height : int, startAngle : int, arcAngle : int) </td></tr>
<tr><td align="left" balign="left"> + fillArc(x : int, y : int, width : int, height : int, startAngle : int, arcAngle : int) </td></tr>
<tr><td align="left" balign="left"> + refresh() </td></tr>
<tr><td align="left" balign="left"> + clear() </td></tr>
<tr><td align="left" balign="left"> + getWidth() : int </td></tr>
<tr><td align="left" balign="left"> + getHeight() : int </td></tr>
<tr><td align="left" balign="left"> + getDisplay() : byte[] </td></tr>
<tr><td align="left" balign="left"> + getHWDisplay() : byte[] </td></tr>
<tr><td align="left" balign="left"> + setContrast(i : int) </td></tr>
<tr><td align="left" balign="left"> - lejos2rgb(src : byte[], width : int, height : int) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> - any2rgb(img : Image) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> - any2lejos(img : BufferedImage) : byte[] </td></tr>
<tr><td align="left" balign="left"> - java_lejos_flip(in : BufferedImage, out : BufferedImage) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> + bitBlt(src : byte[], sw : int, sh : int, sx : int, sy : int, dx : int, dy : int, w : int, h : int, rop : int) </td></tr>
<tr><td align="left" balign="left"> + bitBlt(src : byte[], sw : int, sh : int, sx : int, sy : int, dst : byte[], dw : int, dh : int, dx : int, dy : int, w : int, h : int, rop : int) </td></tr>
<tr><td align="left" balign="left"> - bitBlt(src : BufferedImage, sx : int, sy : int, dst : BufferedImage, dx : int, dy : int, w : int, h : int, rop : int) </td></tr>
<tr><td align="left" balign="left"> + setAutoRefresh(b : boolean) </td></tr>
<tr><td align="left" balign="left"> + setAutoRefreshPeriod(i : int) : int </td></tr>
<tr><td align="left" balign="left"> - timerUpdate() </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.actuators.LCDStretch.Flusher
c3 [label=<<table title="ev3dev.actuators.LCDStretch.Flusher" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> Flusher </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - Flusher() </td></tr>
<tr><td align="left" balign="left"> + run() </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.actuators.Sound
c4 [label=<<table title="ev3dev.actuators.Sound" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> Sound </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - LOGGER : Logger </td></tr>
<tr><td align="left" balign="left"> - EV3_PHYSICAL_SOUND_PATH : String </td></tr>
<tr><td align="left" balign="left"> + EV3DEV_SOUND_KEY : String </td></tr>
<tr><td align="left" balign="left"> - EV3_SOUND_PATH : String </td></tr>
<tr><td align="left" balign="left"> - CMD_BEEP : String </td></tr>
<tr><td align="left" balign="left"> + VOLUME : String </td></tr>
<tr><td align="left" balign="left"> - VOLUME_PATH : String </td></tr>
<tr><td align="left" balign="left"> - DISABLED_FEATURE_MESSAGE : String </td></tr>
<tr><td align="left" balign="left"> - CURRENT_DISTRO : EV3DevDistro </td></tr>
<tr><td align="left" balign="left"> - instance : Sound </td></tr>
<tr><td align="left" balign="left"> - volume : int </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - Sound() </td></tr>
<tr><td align="left" balign="left"> + getInstance() : Sound </td></tr>
<tr><td align="left" balign="left"> + beep() </td></tr>
<tr><td align="left" balign="left"> + twoBeeps() </td></tr>
<tr><td align="left" balign="left"> + playTone(frequency : int, duration : int, volume : int) </td></tr>
<tr><td align="left" balign="left"> + playTone(frequency : int, duration : int) </td></tr>
<tr><td align="left" balign="left"> + playSample(file : File, volume : int) </td></tr>
<tr><td align="left" balign="left"> + playSample(file : File) </td></tr>
<tr><td align="left" balign="left"> + setVolume(volume : int) </td></tr>
<tr><td align="left" balign="left"> + getVolume() : int </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.actuators.ev3.EV3Led
c5 [label=<<table title="ev3dev.actuators.ev3.EV3Led" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> EV3Led </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - log : Logger </td></tr>
<tr><td align="left" balign="left"> + LEFT : int </td></tr>
<tr><td align="left" balign="left"> + RIGHT : int </td></tr>
<tr><td align="left" balign="left"> - direction : int </td></tr>
<tr><td align="left" balign="left"> - LED_LEFT_RED : String </td></tr>
<tr><td align="left" balign="left"> - LED_LEFT_GREEN : String </td></tr>
<tr><td align="left" balign="left"> - LED_RIGHT_RED : String </td></tr>
<tr><td align="left" balign="left"> - LED_RIGHT_GREEN : String </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + EV3Led(button : int) </td></tr>
<tr><td align="left" balign="left"> + setPattern(pattern : int) </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.actuators.lego.motors.BaseRegulatedMotor
c6 [label=<<table title="ev3dev.actuators.lego.motors.BaseRegulatedMotor" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"><font face="Helvetica-Oblique"> BaseRegulatedMotor </font></td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - log : Logger </td></tr>
<tr><td align="left" balign="left"> # MAX_SPEED_AT_9V : int </td></tr>
<tr><td align="left" balign="left"> - speed : int </td></tr>
<tr><td align="left" balign="left"> # acceleration : int </td></tr>
<tr><td align="left" balign="left"> - regulationFlag : boolean </td></tr>
<tr><td align="left" balign="left"> - listenerList : List<RegulatedMotorListener> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + BaseRegulatedMotor(motorPort : Port, moveP : float, moveI : float, moveD : float, holdP : float, holdI : float, holdD : float, offset : int, maxSpeed : int) </td></tr>
<tr><td align="left" balign="left"> + suspendRegulation() : boolean </td></tr>
<tr><td align="left" balign="left"> + getTachoCount() : int </td></tr>
<tr><td align="left" balign="left"> + getPosition() : float </td></tr>
<tr><td align="left" balign="left"> + forward() </td></tr>
<tr><td align="left" balign="left"> + backward() </td></tr>
<tr><td align="left" balign="left"> + flt(b : boolean) </td></tr>
<tr><td align="left" balign="left"> + flt() </td></tr>
<tr><td align="left" balign="left"> + coast() </td></tr>
<tr><td align="left" balign="left"> + brake() </td></tr>
<tr><td align="left" balign="left"> + hold() </td></tr>
<tr><td align="left" balign="left"> + stop() </td></tr>
<tr><td align="left" balign="left"> + stop(b : boolean) </td></tr>
<tr><td align="left" balign="left"> + isMoving() : boolean </td></tr>
<tr><td align="left" balign="left"> + setSpeed(speed : int) </td></tr>
<tr><td align="left" balign="left"> + resetTachoCount() </td></tr>
<tr><td align="left" balign="left"> + rotate(angle : int, immediateReturn : boolean) </td></tr>
<tr><td align="left" balign="left"> + rotate(angle : int) </td></tr>
<tr><td align="left" balign="left"> + rotateTo(limitAngle : int, immediateReturn : boolean) </td></tr>
<tr><td align="left" balign="left"> + rotateTo(limitAngle : int) </td></tr>
<tr><td align="left" balign="left"> + getSpeed() : int </td></tr>
<tr><td align="left" balign="left"> + isStalled() : boolean </td></tr>
<tr><td align="left" balign="left"> + getRotationSpeed() : int </td></tr>
<tr><td align="left" balign="left"> + addListener(regulatedMotorListener : RegulatedMotorListener) </td></tr>
<tr><td align="left" balign="left"> + removeListener() : RegulatedMotorListener </td></tr>
<tr><td align="left" balign="left"> + waitComplete() </td></tr>
<tr><td align="left" balign="left"> + getMaxSpeed() : float </td></tr>
<tr><td align="left" balign="left"> + setAcceleration(acceleration : int) </td></tr>
<tr><td align="left" balign="left"> + synchronizeWith(regulatedMotors : RegulatedMotor[]) </td></tr>
<tr><td align="left" balign="left"> + startSynchronization() </td></tr>
<tr><td align="left" balign="left"> + endSynchronization() </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.actuators.lego.motors.BasicMotor
c7 [label=<<table title="ev3dev.actuators.lego.motors.BasicMotor" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"><font face="Helvetica-Oblique"> BasicMotor </font></td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - log : Logger </td></tr>
<tr><td align="left" balign="left"> - power : int </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + BasicMotor(motorPort : Port) </td></tr>
<tr><td align="left" balign="left"> + setPower(power : int) </td></tr>
<tr><td align="left" balign="left"> + getPower() : int </td></tr>
<tr><td align="left" balign="left"> # updateState(newMode : String) </td></tr>
<tr><td align="left" balign="left"> + forward() </td></tr>
<tr><td align="left" balign="left"> + backward() </td></tr>
<tr><td align="left" balign="left"> + isMoving() : boolean </td></tr>
<tr><td align="left" balign="left"> + flt() </td></tr>
<tr><td align="left" balign="left"> + stop() </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.actuators.lego.motors.EV3LargeRegulatedMotor
c8 [label=<<table title="ev3dev.actuators.lego.motors.EV3LargeRegulatedMotor" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> EV3LargeRegulatedMotor </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - MOVE_P : float </td></tr>
<tr><td align="left" balign="left"> - MOVE_I : float </td></tr>
<tr><td align="left" balign="left"> - MOVE_D : float </td></tr>
<tr><td align="left" balign="left"> - HOLD_P : float </td></tr>
<tr><td align="left" balign="left"> - HOLD_I : float </td></tr>
<tr><td align="left" balign="left"> - HOLD_D : float </td></tr>
<tr><td align="left" balign="left"> - OFFSET : int </td></tr>
<tr><td align="left" balign="left"> - MAX_SPEED : int </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + EV3LargeRegulatedMotor(motorPort : Port) </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.actuators.lego.motors.EV3MediumRegulatedMotor
c9 [label=<<table title="ev3dev.actuators.lego.motors.EV3MediumRegulatedMotor" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> EV3MediumRegulatedMotor </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - MOVE_P : float </td></tr>
<tr><td align="left" balign="left"> - MOVE_I : float </td></tr>
<tr><td align="left" balign="left"> - MOVE_D : float </td></tr>
<tr><td align="left" balign="left"> - HOLD_P : float </td></tr>
<tr><td align="left" balign="left"> - HOLD_I : float </td></tr>
<tr><td align="left" balign="left"> - HOLD_D : float </td></tr>
<tr><td align="left" balign="left"> - OFFSET : int </td></tr>
<tr><td align="left" balign="left"> - MAX_SPEED : int </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + EV3MediumRegulatedMotor(motorPort : Port) </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.actuators.lego.motors.Motor
c10 [label=<<table title="ev3dev.actuators.lego.motors.Motor" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> Motor </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + A : RegulatedMotor </td></tr>
<tr><td align="left" balign="left"> + B : RegulatedMotor </td></tr>
<tr><td align="left" balign="left"> + C : RegulatedMotor </td></tr>
<tr><td align="left" balign="left"> + D : RegulatedMotor </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - Motor() </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.actuators.lego.motors.NXTRegulatedMotor
c11 [label=<<table title="ev3dev.actuators.lego.motors.NXTRegulatedMotor" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> NXTRegulatedMotor </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - MOVE_P : float </td></tr>
<tr><td align="left" balign="left"> - MOVE_I : float </td></tr>
<tr><td align="left" balign="left"> - MOVE_D : float </td></tr>
<tr><td align="left" balign="left"> - HOLD_P : float </td></tr>
<tr><td align="left" balign="left"> - HOLD_I : float </td></tr>
<tr><td align="left" balign="left"> - HOLD_D : float </td></tr>
<tr><td align="left" balign="left"> - OFFSET : int </td></tr>
<tr><td align="left" balign="left"> - MAX_SPEED : int </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + NXTRegulatedMotor(motorPort : Port) </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.actuators.lego.motors.UnregulatedMotor
c12 [label=<<table title="ev3dev.actuators.lego.motors.UnregulatedMotor" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> UnregulatedMotor </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + UnregulatedMotor(portName : Port) </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.EV3DevDevice
c13 [label=<<table title="ev3dev.hardware.EV3DevDevice" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"><font face="Helvetica-Oblique"> EV3DevDevice </font></td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - LOGGER : Logger </td></tr>
<tr><td align="left" balign="left"> # ev3DevProperties : Properties </td></tr>
<tr><td align="left" balign="left"> # CURRENT_PLATFORM : EV3DevPlatform </td></tr>
<tr><td align="left" balign="left"> # LEGO_PORT : String </td></tr>
<tr><td align="left" balign="left"> # ADDRESS : String </td></tr>
<tr><td align="left" balign="left"> # LEGO_SENSOR : String </td></tr>
<tr><td align="left" balign="left"> # MODE : String </td></tr>
<tr><td align="left" balign="left"> # DEVICE : String </td></tr>
<tr><td align="left" balign="left"> # PATH_DEVICE : File </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + EV3DevDevice() </td></tr>
<tr><td align="left" balign="left"> # detect(type : String, portName : String) </td></tr>
<tr><td align="left" balign="left"> # getStringAttribute(attribute : String) : String </td></tr>
<tr><td align="left" balign="left"> # getIntegerAttribute(attribute : String) : int </td></tr>
<tr><td align="left" balign="left"> # setStringAttribute(attribute : String, value : String) </td></tr>
<tr><td align="left" balign="left"> # setIntegerAttribute(attribute : String, value : int) </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.EV3DevDistro
c14 [label=<<table title="ev3dev.hardware.EV3DevDistro" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> «enumeration» </td></tr>
<tr><td align="center" balign="center"> EV3DevDistro </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> JESSIE </td></tr>
<tr><td align="left" balign="left"> STRETCH </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.EV3DevDistros
c15 [label=<<table title="ev3dev.hardware.EV3DevDistros" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> EV3DevDistros </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - LOGGER : Logger </td></tr>
<tr><td align="left" balign="left"> - instance : EV3DevDistros </td></tr>
<tr><td align="left" balign="left"> - DEBIAN_DISTRO_DETECTION_QUERY : String </td></tr>
<tr><td align="left" balign="left"> - JESSIE_DISTRO_DETECTION_PATTERN : String </td></tr>
<tr><td align="left" balign="left"> - STRETCH_DISTRO_DETECTION_PATTERN : String </td></tr>
<tr><td align="left" balign="left"> - DEBIAN_DISTRO_DETECTION_KEY : String </td></tr>
<tr><td align="left" balign="left"> - DEBIAN_DISTRO_DETECTION_JESSIE : String </td></tr>
<tr><td align="left" balign="left"> - DEBIAN_DISTRO_DETECTION_STRETCH : String </td></tr>
<tr><td align="left" balign="left"> - CURRENT_DISTRO : EV3DevDistro </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - EV3DevDistros() </td></tr>
<tr><td align="left" balign="left"> + getInstance() : EV3DevDistros </td></tr>
<tr><td align="left" balign="left"> - setStretch() </td></tr>
<tr><td align="left" balign="left"> - setJessie() </td></tr>
<tr><td align="left" balign="left"> + getDistro() : EV3DevDistro </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.EV3DevFileSystem
c16 [label=<<table title="ev3dev.hardware.EV3DevFileSystem" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> EV3DevFileSystem </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - LOGGER : Logger </td></tr>
<tr><td align="left" balign="left"> + EV3DEV_TESTING_KEY : String </td></tr>
<tr><td align="left" balign="left"> + EV3DEV_ROOT_PATH : String </td></tr>
<tr><td align="left" balign="left"> - CURRENT_ROOT_PATH : String </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + EV3DevFileSystem() </td></tr>
<tr><td align="left" balign="left"> - retrieveRootPath() : String </td></tr>
<tr><td align="left" balign="left"> + getRootPath() : String </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.EV3DevMotorDevice
c17 [label=<<table title="ev3dev.hardware.EV3DevMotorDevice" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"><font face="Helvetica-Oblique"> EV3DevMotorDevice </font></td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> # TACHO_MOTOR : String </td></tr>
<tr><td align="left" balign="left"> # DC_MOTOR : String </td></tr>
<tr><td align="left" balign="left"> # AUTO_MODE : String </td></tr>
<tr><td align="left" balign="left"> # POSITION_SP : String </td></tr>
<tr><td align="left" balign="left"> # POSITION : String </td></tr>
<tr><td align="left" balign="left"> # SPEED : String </td></tr>
<tr><td align="left" balign="left"> # DUTY_CYCLE : String </td></tr>
<tr><td align="left" balign="left"> # COMMAND : String </td></tr>
<tr><td align="left" balign="left"> # RUN_FOREVER : String </td></tr>
<tr><td align="left" balign="left"> # RUN_DIRECT : String </td></tr>
<tr><td align="left" balign="left"> # RUN_TO_REL_POS : String </td></tr>
<tr><td align="left" balign="left"> # RUN_TO_ABS_POS : String </td></tr>
<tr><td align="left" balign="left"> # STOP_COMMAND : String </td></tr>
<tr><td align="left" balign="left"> # COAST : String </td></tr>
<tr><td align="left" balign="left"> # BRAKE : String </td></tr>
<tr><td align="left" balign="left"> # HOLD : String </td></tr>
<tr><td align="left" balign="left"> # STOP : String </td></tr>
<tr><td align="left" balign="left"> # RESET : String </td></tr>
<tr><td align="left" balign="left"> # STATE : String </td></tr>
<tr><td align="left" balign="left"> # STATE_RUNNING : String </td></tr>
<tr><td align="left" balign="left"> # STATE_STALLED : String </td></tr>
<tr><td align="left" balign="left"> # POWER : String </td></tr>
<tr><td align="left" balign="left"> # POLARITY : String </td></tr>
<tr><td align="left" balign="left"> # POLARITY_NORMAL : String </td></tr>
<tr><td align="left" balign="left"> # POLARITY_INVERSED : String </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + EV3DevMotorDevice() </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.EV3DevPlatform
c18 [label=<<table title="ev3dev.hardware.EV3DevPlatform" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> «enumeration» </td></tr>
<tr><td align="center" balign="center"> EV3DevPlatform </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - platform : String </td></tr>
<tr><td align="left" balign="left"> - propNamespace : String </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> EV3BRICK </td></tr>
<tr><td align="left" balign="left"> PISTORMS </td></tr>
<tr><td align="left" balign="left"> BRICKPI </td></tr>
<tr><td align="left" balign="left"> BRICKPI3 </td></tr>
<tr><td align="left" balign="left"> UNKNOWN </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.EV3DevPlatforms
c19 [label=<<table title="ev3dev.hardware.EV3DevPlatforms" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> EV3DevPlatforms </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - instance : EV3DevPlatforms </td></tr>
<tr><td align="left" balign="left"> - platform : EV3DevPlatform </td></tr>
<tr><td align="left" balign="left"> - propPrefix : String </td></tr>
<tr><td align="left" balign="left"> - props : Properties </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - EV3DevPlatforms() </td></tr>
<tr><td align="left" balign="left"> + getInstance() : EV3DevPlatforms </td></tr>
<tr><td align="left" balign="left"> - batteryTest(batteryDir : String, propPrefix : String) : boolean </td></tr>
<tr><td align="left" balign="left"> - throwNoPlatform() : RuntimeException </td></tr>
<tr><td align="left" balign="left"> + getPlatform() : EV3DevPlatform </td></tr>
<tr><td align="left" balign="left"> + getMotorPort(port : Port) : String </td></tr>
<tr><td align="left" balign="left"> + getSensorPort(port : Port) : String </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.EV3DevPropertyLoader
c20 [label=<<table title="ev3dev.hardware.EV3DevPropertyLoader" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> EV3DevPropertyLoader </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - LOGGER : Logger </td></tr>
<tr><td align="left" balign="left"> - ev3DevProperties : Properties </td></tr>
<tr><td align="left" balign="left"> - STRETCH_PROPERTY_FILENAME : String </td></tr>
<tr><td align="left" balign="left"> - JESSIE_PROPERTY_FILENAME : String </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + EV3DevPropertyLoader() </td></tr>
<tr><td align="left" balign="left"> + getEV3DevProperties() : Properties </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.EV3DevSensorDevice
c21 [label=<<table title="ev3dev.hardware.EV3DevSensorDevice" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"><font face="Helvetica-Oblique"> EV3DevSensorDevice </font></td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - log : Logger </td></tr>
<tr><td align="left" balign="left"> # LEGO_UART_SENSOR : String </td></tr>
<tr><td align="left" balign="left"> # LEGO_ANALOG_SENSOR : String </td></tr>
<tr><td align="left" balign="left"> # LEGO_I2C : String </td></tr>
<tr><td align="left" balign="left"> # SENSOR_MODES : String </td></tr>
<tr><td align="left" balign="left"> # SENSOR_MODE : String </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> # EV3DevSensorDevice(portName : Port, mode : String, device : String) </td></tr>
<tr><td align="left" balign="left"> # EV3DevSensorDevice(portName : Port, mode : String) </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.BitFramebuffer
c22 [label=<<table title="ev3dev.hardware.display.BitFramebuffer" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> BitFramebuffer </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + BitFramebuffer(fb : NativeFramebuffer, disp : DisplayInterface) </td></tr>
<tr><td align="left" balign="left"> + createCompatibleBuffer(width : int, height : int) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> + createCompatibleBuffer(width : int, height : int, stride : int, backed : byte[]) : BufferedImage </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.BitFramebufferProvider
c23 [label=<<table title="ev3dev.hardware.display.BitFramebufferProvider" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> BitFramebufferProvider </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + BitFramebufferProvider() </td></tr>
<tr><td align="left" balign="left"> + createFramebuffer(fb : NativeFramebuffer, disp : DisplayInterface) : JavaFramebuffer </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.DisplayInterface
c24 [label=<<table title="ev3dev.hardware.display.DisplayInterface" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"><font face="Helvetica-Oblique"> DisplayInterface </font></td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> # fbInstance : JavaFramebuffer </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + DisplayInterface() </td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + switchToGraphicsMode() </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + switchToTextMode() </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + openFramebuffer() : JavaFramebuffer </font></td></tr>
<tr><td align="left" balign="left"> + releaseFramebuffer(fb : JavaFramebuffer) </td></tr>
<tr><td align="left" balign="left"> # closeFramebuffer() </td></tr>
<tr><td align="left" balign="left"> # initializeFramebuffer(backend : NativeFramebuffer, enable : boolean) </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.ImageUtils
c25 [label=<<table title="ev3dev.hardware.display.ImageUtils" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> ImageUtils </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + ImageUtils() </td></tr>
<tr><td align="left" balign="left"> + createXRGBImage(w : int, h : int) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> + createXRGBImage(w : int, h : int, stride : int) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> + createXRGBImage(width : int, height : int, stride : int, buffer : byte[]) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> + createXRGBImage(width : int, height : int, stride : int, offsets : int[], buffer : byte[]) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> + getDefaultComponentOffsets() : int[] </td></tr>
<tr><td align="left" balign="left"> + createBWImage(width : int, height : int, zeroBlack : boolean) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> + createBWImage(width : int, height : int, zeroBlack : boolean, backed : byte[]) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> + createBWImage(width : int, height : int, stride : int, zeroBlack : boolean) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> + createBWImage(width : int, height : int, stride : int, zeroBlack : boolean, backed : byte[]) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> + getImageBytes(image : BufferedImage) : byte[] </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.JavaFramebuffer
c26 [label=<<table title="ev3dev.hardware.display.JavaFramebuffer" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> «interface» </td></tr>
<tr><td align="center" balign="center"> JavaFramebuffer </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + getWidth() : int </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + getHeight() : int </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + getStride() : int </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + createCompatibleBuffer() : BufferedImage </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + createCompatibleBuffer(width : int, height : int) : BufferedImage </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + createCompatibleBuffer(width : int, height : int, stride : int) : BufferedImage </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + createCompatibleBuffer(width : int, height : int, stride : int, backed : byte[]) : BufferedImage </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + flushScreen(compatible : BufferedImage) </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + setFlushEnabled(rly : boolean) </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + storeData() </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + restoreData() </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + clear() </font></td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + getDisplay() : DisplayInterface </font></td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.LinuxFramebuffer
c27 [label=<<table title="ev3dev.hardware.display.LinuxFramebuffer" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"><font face="Helvetica-Oblique"> LinuxFramebuffer </font></td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - fixinfo : NativeFramebuffer.fb_fix_screeninfo </td></tr>
<tr><td align="left" balign="left"> - varinfo : NativeFramebuffer.fb_var_screeninfo </td></tr>
<tr><td align="left" balign="left"> - device : NativeFramebuffer </td></tr>
<tr><td align="left" balign="left"> - videomem : Pointer </td></tr>
<tr><td align="left" balign="left"> - flushEnabled : boolean </td></tr>
<tr><td align="left" balign="left"> - backup : byte[] </td></tr>
<tr><td align="left" balign="left"> - blank : BufferedImage </td></tr>
<tr><td align="left" balign="left"> - closeDevice : boolean </td></tr>
<tr><td align="left" balign="left"> - display : DisplayInterface </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + LinuxFramebuffer(fb : NativeFramebuffer, disp : DisplayInterface) </td></tr>
<tr><td align="left" balign="left"> # initializeMemory() </td></tr>
<tr><td align="left" balign="left"> + close() </td></tr>
<tr><td align="left" balign="left"> + getWidth() : int </td></tr>
<tr><td align="left" balign="left"> + getHeight() : int </td></tr>
<tr><td align="left" balign="left"> + getStride() : int </td></tr>
<tr><td align="left" balign="left"> + createCompatibleBuffer() : BufferedImage </td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + createCompatibleBuffer(width : int, height : int) : BufferedImage </font></td></tr>
<tr><td align="left" balign="left"> + createCompatibleBuffer(width : int, height : int, stride : int) : BufferedImage </td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + createCompatibleBuffer(width : int, height : int, stride : int, backed : byte[]) : BufferedImage </font></td></tr>
<tr><td align="left" balign="left"> + flushScreen(compatible : BufferedImage) </td></tr>
<tr><td align="left" balign="left"> + setFlushEnabled(rly : boolean) </td></tr>
<tr><td align="left" balign="left"> + storeData() </td></tr>
<tr><td align="left" balign="left"> + restoreData() </td></tr>
<tr><td align="left" balign="left"> + clear() </td></tr>
<tr><td align="left" balign="left"> + getDisplay() : DisplayInterface </td></tr>
<tr><td align="left" balign="left"> + getFixedInfo() : NativeFramebuffer.fb_fix_screeninfo </td></tr>
<tr><td align="left" balign="left"> + getVariableInfo() : NativeFramebuffer.fb_var_screeninfo </td></tr>
<tr><td align="left" balign="left"> + getDevice() : NativeFramebuffer </td></tr>
<tr><td align="left" balign="left"> + getMemory() : Pointer </td></tr>
<tr><td align="left" balign="left"> + getBufferSize() : long </td></tr>
<tr><td align="left" balign="left"> # setDeviceClose(rly : boolean) </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.OwnedDisplay
c28 [label=<<table title="ev3dev.hardware.display.OwnedDisplay" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> OwnedDisplay </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - libc : ILibc </td></tr>
<tr><td align="left" balign="left"> - fbPath : String </td></tr>
<tr><td align="left" balign="left"> - ttyfd : NativeTTY </td></tr>
<tr><td align="left" balign="left"> - old_kbmode : int </td></tr>
<tr><td align="left" balign="left"> - deinitializer : Thread </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + OwnedDisplay(libc : ILibc) </td></tr>
<tr><td align="left" balign="left"> - initialize() </td></tr>
<tr><td align="left" balign="left"> + close() </td></tr>
<tr><td align="left" balign="left"> - deinitialize() </td></tr>
<tr><td align="left" balign="left"> + switchToGraphicsMode() </td></tr>
<tr><td align="left" balign="left"> + switchToTextMode() </td></tr>
<tr><td align="left" balign="left"> + openFramebuffer() : JavaFramebuffer </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.RGBFramebuffer
c29 [label=<<table title="ev3dev.hardware.display.RGBFramebuffer" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> RGBFramebuffer </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + RGBFramebuffer(fb : NativeFramebuffer, disp : DisplayInterface) </td></tr>
<tr><td align="left" balign="left"> + createCompatibleBuffer(width : int, height : int) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> + createCompatibleBuffer(width : int, height : int, stride : int, buffer : byte[]) : BufferedImage </td></tr>
<tr><td align="left" balign="left"> - getComponentOffsets() : int[] </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.RGBFramebufferProvider
c30 [label=<<table title="ev3dev.hardware.display.RGBFramebufferProvider" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> RGBFramebufferProvider </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + RGBFramebufferProvider() </td></tr>
<tr><td align="left" balign="left"> + createFramebuffer(fb : NativeFramebuffer, disp : DisplayInterface) : JavaFramebuffer </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.StolenDisplay
c31 [label=<<table title="ev3dev.hardware.display.StolenDisplay" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> StolenDisplay </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - libc : ILibc </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + StolenDisplay(libc : ILibc) </td></tr>
<tr><td align="left" balign="left"> + switchToGraphicsMode() </td></tr>
<tr><td align="left" balign="left"> + switchToTextMode() </td></tr>
<tr><td align="left" balign="left"> + close() </td></tr>
<tr><td align="left" balign="left"> + openFramebuffer() : JavaFramebuffer </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.SystemDisplay
c32 [label=<<table title="ev3dev.hardware.display.SystemDisplay" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> SystemDisplay </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - SystemDisplay() </td></tr>
<tr><td align="left" balign="left"> + initializeRealDisplay() : DisplayInterface </td></tr>
<tr><td align="left" balign="left"> + initializeRealFramebuffer() : JavaFramebuffer </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.spi.AllImplFailedException
c33 [label=<<table title="ev3dev.hardware.display.spi.AllImplFailedException" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> AllImplFailedException </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + AllImplFailedException() </td></tr>
<tr><td align="left" balign="left"> + AllImplFailedException(message : String) </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.hardware.display.spi.FramebufferProvider
c34 [label=<<table title="ev3dev.hardware.display.spi.FramebufferProvider" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> «interface» </td></tr>
<tr><td align="center" balign="center"> FramebufferProvider </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + load(fb : NativeFramebuffer, disp : DisplayInterface) : JavaFramebuffer </td></tr>
<tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + createFramebuffer(fb : NativeFramebuffer, disp : DisplayInterface) : JavaFramebuffer </font></td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.robotics.tts.Espeak
c35 [label=<<table title="ev3dev.robotics.tts.Espeak" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> Espeak </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - log : Logger </td></tr>
<tr><td align="left" balign="left"> - ESPEAK : String </td></tr>
<tr><td align="left" balign="left"> - CMD_APLAY : String </td></tr>
<tr><td align="left" balign="left"> + VOICE_ENGLISH : String </td></tr>
<tr><td align="left" balign="left"> + VOICE_SPANISH : String </td></tr>
<tr><td align="left" balign="left"> + DEFAULT_SPEED_READING : int </td></tr>
<tr><td align="left" balign="left"> + DEFAULT_PITCH : int </td></tr>
<tr><td align="left" balign="left"> - voice : String </td></tr>
<tr><td align="left" balign="left"> - volume : int </td></tr>
<tr><td align="left" balign="left"> - speedReading : int </td></tr>
<tr><td align="left" balign="left"> - pitch : int </td></tr>
<tr><td align="left" balign="left"> - message : String </td></tr>
<tr><td align="left" balign="left"> - filePath : String </td></tr>
<tr><td align="left" balign="left"> - command : String </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + Espeak() </td></tr>
<tr><td align="left" balign="left"> + setVoice(voice : String) </td></tr>
<tr><td align="left" balign="left"> + setVolume(volume : int) </td></tr>
<tr><td align="left" balign="left"> + setSpeedReading(speed : int) </td></tr>
<tr><td align="left" balign="left"> + setPitch(pitch : int) </td></tr>
<tr><td align="left" balign="left"> + setMessage(message : String) </td></tr>
<tr><td align="left" balign="left"> + setFilePath(filePath : String) </td></tr>
<tr><td align="left" balign="left"> - build() </td></tr>
<tr><td align="left" balign="left"> + say() </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.sensors.BaseSensor
c36 [label=<<table title="ev3dev.sensors.BaseSensor" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> BaseSensor </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + SWITCH_DELAY : int </td></tr>
<tr><td align="left" balign="left"> - modeList : ArrayList<String> </td></tr>
<tr><td align="left" balign="left"> # currentMode : int </td></tr>
<tr><td align="left" balign="left"> # modes : SensorMode[] </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + BaseSensor(sensorPort : Port, mode : String, device : String) </td></tr>
<tr><td align="left" balign="left"> + BaseSensor(sensorPort : Port, mode : String) </td></tr>
<tr><td align="left" balign="left"> # setModes(m : SensorMode[]) </td></tr>
<tr><td align="left" balign="left"> + getAvailableModes() : ArrayList<String> </td></tr>
<tr><td align="left" balign="left"> + getMode(mode : int) : SensorMode </td></tr>
<tr><td align="left" balign="left"> + getMode(modeName : String) : SensorMode </td></tr>
<tr><td align="left" balign="left"> - modeInvalid(mode : int) : boolean </td></tr>
<tr><td align="left" balign="left"> - getIndex(modeName : String) : int </td></tr>
<tr><td align="left" balign="left"> + getName() : String </td></tr>
<tr><td align="left" balign="left"> + sampleSize() : int </td></tr>
<tr><td align="left" balign="left"> + fetchSample(sample : float[], offset : int) </td></tr>
<tr><td align="left" balign="left"> + setCurrentMode(mode : int) </td></tr>
<tr><td align="left" balign="left"> + getCurrentMode() : int </td></tr>
<tr><td align="left" balign="left"> + setCurrentMode(modeName : String) </td></tr>
<tr><td align="left" balign="left"> + getModeCount() : int </td></tr>
<tr><td align="left" balign="left"> # getSystemMode() : String </td></tr>
<tr><td align="left" balign="left"> - setSystemMode(mode : String) </td></tr>
<tr><td align="left" balign="left"> + switchMode(newMode : String, switchDelay : long) </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.sensors.Battery
c37 [label=<<table title="ev3dev.sensors.Battery" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> Battery </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - LOGGER : Logger </td></tr>
<tr><td align="left" balign="left"> - BATTERY : String </td></tr>
<tr><td align="left" balign="left"> - BATTERY_EV3 : String </td></tr>
<tr><td align="left" balign="left"> - BATTERY_PISTORMS : String </td></tr>
<tr><td align="left" balign="left"> - BATTERY_BRICKPI : String </td></tr>
<tr><td align="left" balign="left"> - BATTERY_BRICKPI3 : String </td></tr>
<tr><td align="left" balign="left"> - BATTERY_PATH : String </td></tr>
<tr><td align="left" balign="left"> - VOLTAGE : String </td></tr>
<tr><td align="left" balign="left"> - CURRENT : String </td></tr>
<tr><td align="left" balign="left"> - BATTERY_PATH_LOCAL : String </td></tr>
<tr><td align="left" balign="left"> - instance : Battery </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - Battery() </td></tr>
<tr><td align="left" balign="left"> + getInstance() : Battery </td></tr>
<tr><td align="left" balign="left"> + getVoltageMilliVolt() : int </td></tr>
<tr><td align="left" balign="left"> + getVoltage() : float </td></tr>
<tr><td align="left" balign="left"> + getBatteryCurrent() : float </td></tr>
<tr><td align="left" balign="left"> + getMotorCurrent() : float </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.sensors.Button
c38 [label=<<table title="ev3dev.sensors.Button" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> Button </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - log : Logger </td></tr>
<tr><td align="left" balign="left"> + ENTER : Key </td></tr>
<tr><td align="left" balign="left"> + LEFT : Key </td></tr>
<tr><td align="left" balign="left"> + RIGHT : Key </td></tr>
<tr><td align="left" balign="left"> + ESCAPE : Key </td></tr>
<tr><td align="left" balign="left"> + UP : Key </td></tr>
<tr><td align="left" balign="left"> + DOWN : Key </td></tr>
<tr><td align="left" balign="left"> - ALL : Key </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + Button() </td></tr>
<tr><td align="left" balign="left"> + waitForAnyEvent() : int </td></tr>
<tr><td align="left" balign="left"> + waitForAnyEvent(timeout : int) : int </td></tr>
<tr><td align="left" balign="left"> + waitForAnyPress(timeout : int) : int </td></tr>
<tr><td align="left" balign="left"> + waitForAnyPress() : int </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.sensors.EV3Key
c39 [label=<<table title="ev3dev.sensors.EV3Key" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> EV3Key </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - log : Logger </td></tr>
<tr><td align="left" balign="left"> + BUTTON_UP : int </td></tr>
<tr><td align="left" balign="left"> + BUTTON_DOWN : int </td></tr>
<tr><td align="left" balign="left"> + BUTTON_LEFT : int </td></tr>
<tr><td align="left" balign="left"> + BUTTON_RIGHT : int </td></tr>
<tr><td align="left" balign="left"> + BUTTON_ENTER : int </td></tr>
<tr><td align="left" balign="left"> + BUTTON_BACKSPACE : int </td></tr>
<tr><td align="left" balign="left"> + BUTTON_ESCAPE : int </td></tr>
<tr><td align="left" balign="left"> + BUTTON_ALL : int </td></tr>
<tr><td align="left" balign="left"> ~ STATE_KEY_DOWN : byte </td></tr>
<tr><td align="left" balign="left"> ~ STATE_KEY_UP : byte </td></tr>
<tr><td align="left" balign="left"> - EVENT_BUFFER_LEN : int </td></tr>
<tr><td align="left" balign="left"> - KEY_ID_INDEX : int </td></tr>
<tr><td align="left" balign="left"> - KEY_STATE_INDEX : int </td></tr>
<tr><td align="left" balign="left"> - keyBits : byte </td></tr>
<tr><td align="left" balign="left"> - keyListeners : Map<EV3Key.KeyType, Set<KeyListener>> </td></tr>
<tr><td align="left" balign="left"> - keyEventReader : Thread </td></tr>
<tr><td align="left" balign="left"> - keyType : EV3Key.KeyType </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> + EV3Key(keyType : EV3Key.KeyType) </td></tr>
<tr><td align="left" balign="left"> + EV3Key(id : int) </td></tr>
<tr><td align="left" balign="left"> + getId() : int </td></tr>
<tr><td align="left" balign="left"> + isDown() : boolean </td></tr>
<tr><td align="left" balign="left"> + isUp() : boolean </td></tr>
<tr><td align="left" balign="left"> + waitForPress() </td></tr>
<tr><td align="left" balign="left"> + waitForPressAndRelease() </td></tr>
<tr><td align="left" balign="left"> + addKeyListener(keyListener : KeyListener) </td></tr>
<tr><td align="left" balign="left"> + removeKeyListener(keyListener : KeyListener) </td></tr>
<tr><td align="left" balign="left"> + simulateEvent(i : int) </td></tr>
<tr><td align="left" balign="left"> + getName() : String </td></tr>
<tr><td align="left" balign="left"> + equals(obj : Object) : boolean </td></tr>
<tr><td align="left" balign="left"> + hashCode() : int </td></tr>
<tr><td align="left" balign="left"> + toString() : String </td></tr>
<tr><td align="left" balign="left"> ~ processKeyEvent(keyId : byte, keyState : byte) </td></tr>
<tr><td align="left" balign="left"> - broadcastToListeners(keyType : EV3Key.KeyType, notificationMethod : BiConsumer<KeyListener, Key>) </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.sensors.EV3Key.KeyType
c40 [label=<<table title="ev3dev.sensors.EV3Key.KeyType" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> «enumeration» </td></tr>
<tr><td align="center" balign="center"> KeyType </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - LOOKUP : Map<Byte, EV3Key.KeyType> </td></tr>
<tr><td align="left" balign="left"> - name : String </td></tr>
<tr><td align="left" balign="left"> - id : byte </td></tr>
<tr><td align="left" balign="left"> - bitMask : byte </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> UP </td></tr>
<tr><td align="left" balign="left"> DOWN </td></tr>
<tr><td align="left" balign="left"> LEFT </td></tr>
<tr><td align="left" balign="left"> RIGHT </td></tr>
<tr><td align="left" balign="left"> ENTER </td></tr>
<tr><td align="left" balign="left"> ESCAPE </td></tr>
<tr><td align="left" balign="left"> ALL </td></tr>
</table></td></tr>
</table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ev3dev.sensors.GenericMode
c41 [label=<<table title="ev3dev.sensors.GenericMode" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p">
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="center" balign="center"> GenericMode </td></tr>
</table></td></tr>
<tr><td><table border="0" cellspacing="0" cellpadding="1">
<tr><td align="left" balign="left"> - pathDevice : File </td></tr>