diff --git a/documentation/app_class_diagram.mdj b/documentation/app_class_diagram.mdj index 4d36aaf..773e1ce 100644 --- a/documentation/app_class_diagram.mdj +++ b/documentation/app_class_diagram.mdj @@ -48,8 +48,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 720, - "top": 848, + "left": 656, + "top": 960, "height": 13 }, { @@ -59,9 +59,9 @@ "$ref": "AAAAAAFpHqCuVb5vsnk=" }, "font": "Arial;13;1", - "left": 917, - "top": 703, - "width": 311, + "left": 885, + "top": 759, + "width": 570.4765625, "height": 13, "text": "SAB" }, @@ -73,8 +73,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 720, - "top": 848, + "left": 656, + "top": 960, "width": 73.67724609375, "height": 13, "text": "(from Model)" @@ -87,16 +87,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 720, - "top": 848, + "left": 656, + "top": 960, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 912, - "top": 696, - "width": 321, + "left": 880, + "top": 752, + "width": 580.4765625, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAFpHqCuVb5wRwE=" @@ -131,9 +131,9 @@ "$ref": "AAAAAAFpHqcQSr6h450=" }, "font": "Arial;13;0", - "left": 917, - "top": 726, - "width": 311, + "left": 885, + "top": 782, + "width": 570.4765625, "height": 13, "text": "-display: Adafruit_SSD1306", "horizontalAlignment": 0 @@ -148,19 +148,36 @@ "$ref": "AAAAAAFpHuue8sDpcoQ=" }, "font": "Arial;13;0", - "left": 917, - "top": 741, - "width": 311, + "left": 885, + "top": 797, + "width": 570.4765625, "height": 13, - "text": "-rtc: RTC_DS3231", + "text": "-rtc: const RTC_DS3231", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpIJy3Sg3AUD8=", + "_parent": { + "$ref": "AAAAAAFpHqCuVb50ZmE=" + }, + "model": { + "$ref": "AAAAAAFpIJy3HQ29knI=" + }, + "font": "Arial;13;0", + "left": 885, + "top": 812, + "width": 570.4765625, + "height": 13, + "text": "-error: unsigned char", "horizontalAlignment": 0 } ], "font": "Arial;13;0", - "left": 912, - "top": 721, - "width": 321, - "height": 38 + "left": 880, + "top": 777, + "width": 580.4765625, + "height": 53 }, { "_type": "UMLOperationCompartmentView", @@ -172,6 +189,40 @@ "$ref": "AAAAAAFpHqCuU75sfJc=" }, "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpHvkxqMYrJDA=", + "_parent": { + "$ref": "AAAAAAFpHqCuVb51X+k=" + }, + "model": { + "$ref": "AAAAAAFpHvkxbsYot4M=" + }, + "font": "Arial;13;0", + "left": 885, + "top": 835, + "width": 570.4765625, + "height": 13, + "text": "+SAB()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpHvoxhccNYoY=", + "_parent": { + "$ref": "AAAAAAFpHqCuVb51X+k=" + }, + "model": { + "$ref": "AAAAAAFpHvoxW8cKCvI=" + }, + "font": "Arial;13;0", + "left": 885, + "top": 850, + "width": 570.4765625, + "height": 13, + "text": "+SAB(pinConfig: const PinMapping, screenConfig: const ScreenConfig)", + "horizontalAlignment": 0 + }, { "_type": "UMLOperationView", "_id": "AAAAAAFpHukSfMAVu2g=", @@ -182,11 +233,11 @@ "$ref": "AAAAAAFpHukSSsASC8A=" }, "font": "Arial;13;0", - "left": 917, - "top": 764, - "width": 311, + "left": 885, + "top": 865, + "width": 570.4765625, "height": 13, - "text": "+getScreenManager(): &ScreenManager", + "text": "+const getScreenManager(): &ScreenManager", "horizontalAlignment": 0 }, { @@ -199,19 +250,70 @@ "$ref": "AAAAAAFpHuy+acEXKRg=" }, "font": "Arial;13;0", - "left": 917, - "top": 779, - "width": 311, + "left": 885, + "top": 880, + "width": 570.4765625, "height": 13, - "text": "+getRtcManager(): &RTCManager", + "text": "+const getRtcManager(): &RTCManager", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpH8TLqegwKOg=", + "_parent": { + "$ref": "AAAAAAFpHqCuVb51X+k=" + }, + "model": { + "$ref": "AAAAAAFpH8TLd+gtxdc=" + }, + "font": "Arial;13;0", + "left": 885, + "top": 895, + "width": 570.4765625, + "height": 13, + "text": "+const getPinConfig(): PinMapping", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpH9CaFvSfnhk=", + "_parent": { + "$ref": "AAAAAAFpHqCuVb51X+k=" + }, + "model": { + "$ref": "AAAAAAFpH9CZ7fScusk=" + }, + "font": "Arial;13;0", + "left": 885, + "top": 910, + "width": 570.4765625, + "height": 13, + "text": "+const getScreenConfig(): ScreenConfig", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpIJ1AmQ4/JFc=", + "_parent": { + "$ref": "AAAAAAFpHqCuVb51X+k=" + }, + "model": { + "$ref": "AAAAAAFpIJ1Abg48fno=" + }, + "font": "Arial;13;0", + "left": 885, + "top": 925, + "width": 570.4765625, + "height": 13, + "text": "+const getError(): unsigned char", "horizontalAlignment": 0 } ], "font": "Arial;13;0", - "left": 912, - "top": 759, - "width": 321, - "height": 38 + "left": 880, + "top": 830, + "width": 580.4765625, + "height": 113 }, { "_type": "UMLReceptionCompartmentView", @@ -224,8 +326,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 360, - "top": 424, + "left": 328, + "top": 480, "width": 10, "height": 10 }, @@ -240,17 +342,17 @@ }, "visible": false, "font": "Arial;13;0", - "left": 360, - "top": 424, + "left": 328, + "top": 480, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 912, - "top": 696, - "width": 321, + "left": 880, + "top": 752, + "width": 580.4765625, "height": 249, "nameCompartment": { "$ref": "AAAAAAFpHqCuVb5vsnk=" @@ -296,8 +398,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -912, - "top": -592, + "left": -1056, + "top": -576, "height": 13 }, { @@ -307,9 +409,9 @@ "$ref": "AAAAAAFpHq11gr6ruDw=" }, "font": "Arial;13;1", - "left": 293, - "top": 743, - "width": 440.2353515625, + "left": 221, + "top": 751, + "width": 523.16748046875, "height": 13, "text": "ScreenManager" }, @@ -321,8 +423,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -912, - "top": -592, + "left": -1056, + "top": -576, "width": 73.67724609375, "height": 13, "text": "(from Model)" @@ -335,16 +437,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": -912, - "top": -592, + "left": -1056, + "top": -576, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 288, - "top": 736, - "width": 450.2353515625, + "left": 216, + "top": 744, + "width": 533.16748046875, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAFpHq11g76sXQE=" @@ -368,11 +470,64 @@ "model": { "$ref": "AAAAAAFpHq11gr6oq4M=" }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpIK8zuRHtihI=", + "_parent": { + "$ref": "AAAAAAFpHq11g76wgf4=" + }, + "model": { + "$ref": "AAAAAAFpIK8zeBHqtks=" + }, + "font": "Arial;13;0", + "left": 221, + "top": 774, + "width": 523.16748046875, + "height": 13, + "text": "-displayRef: Adafruit_SSD1306", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpIVOrQBm14Rc=", + "_parent": { + "$ref": "AAAAAAFpHq11g76wgf4=" + }, + "model": { + "$ref": "AAAAAAFpIVOrExmy4PM=" + }, + "font": "Arial;13;0", + "left": 221, + "top": 789, + "width": 523.16748046875, + "height": 13, + "text": "-viewLinkedList: ViewLinkedList", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpIXK7rh7m5ok=", + "_parent": { + "$ref": "AAAAAAFpHq11g76wgf4=" + }, + "model": { + "$ref": "AAAAAAFpIXK7gR7jCLw=" + }, + "font": "Arial;13;0", + "left": 221, + "top": 804, + "width": 523.16748046875, + "height": 13, + "text": "-error: unsigned char", + "horizontalAlignment": 0 + } + ], "font": "Arial;13;0", - "left": 288, - "top": 761, - "width": 450.2353515625, - "height": 10 + "left": 216, + "top": 769, + "width": 533.16748046875, + "height": 53 }, { "_type": "UMLOperationCompartmentView", @@ -394,9 +549,9 @@ "$ref": "AAAAAAFpHq4kf77UUiM=" }, "font": "Arial;13;0", - "left": 293, - "top": 776, - "width": 440.2353515625, + "left": 221, + "top": 827, + "width": 523.16748046875, "height": 13, "text": "#ScreenManager(&display: Adafruit_SSD1306)", "horizontalAlignment": 0 @@ -411,11 +566,11 @@ "$ref": "AAAAAAFpHrx2a773c7c=" }, "font": "Arial;13;0", - "left": 293, - "top": 791, - "width": 440.2353515625, + "left": 221, + "top": 842, + "width": 523.16748046875, "height": 13, - "text": "+addView(*logic_function, *p_data: void, UID: const unsigned char): boolean", + "text": "+addView(*logic_function: boolean, *pData: void, UID: const unsigned char): boolean", "horizontalAlignment": 0 }, { @@ -428,9 +583,9 @@ "$ref": "AAAAAAFpHr3Ger7+mNc=" }, "font": "Arial;13;0", - "left": 293, - "top": 806, - "width": 440.2353515625, + "left": 221, + "top": 857, + "width": 523.16748046875, "height": 13, "text": "+removeView(UID: const unsigned char): boolean", "horizontalAlignment": 0 @@ -445,11 +600,11 @@ "$ref": "AAAAAAFpHuGHYr8WkXQ=" }, "font": "Arial;13;0", - "left": 293, - "top": 821, - "width": 440.2353515625, + "left": 221, + "top": 872, + "width": 523.16748046875, "height": 13, - "text": "+view2Display(UID: const unsigned char): boolean", + "text": "+displayView(UID: const unsigned char): boolean", "horizontalAlignment": 0 }, { @@ -462,9 +617,9 @@ "$ref": "AAAAAAFpHuK2fL8ilKQ=" }, "font": "Arial;13;0", - "left": 293, - "top": 836, - "width": 440.2353515625, + "left": 221, + "top": 887, + "width": 523.16748046875, "height": 13, "text": "+invertDisplay(inverted: boolean): void", "horizontalAlignment": 0 @@ -479,19 +634,87 @@ "$ref": "AAAAAAFpHuZoKb8sWRY=" }, "font": "Arial;13;0", - "left": 293, - "top": 851, - "width": 440.2353515625, + "left": 221, + "top": 902, + "width": 523.16748046875, "height": 13, "text": "+dimDisplay(dimmed: boolean): void", "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpIVRhdRpw9pk=", + "_parent": { + "$ref": "AAAAAAFpHq11g76xBiU=" + }, + "model": { + "$ref": "AAAAAAFpIVRhRxptGlk=" + }, + "font": "Arial;13;0", + "left": 221, + "top": 917, + "width": 523.16748046875, + "height": 13, + "text": "-createEmptyList(): void *", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpIXL2wB+wB2Y=", + "_parent": { + "$ref": "AAAAAAFpHq11g76xBiU=" + }, + "model": { + "$ref": "AAAAAAFpIXL2kx+t5Ww=" + }, + "font": "Arial;13;0", + "left": 221, + "top": 932, + "width": 523.16748046875, + "height": 13, + "text": "+const getError(): unsigned char", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpIV356hs9rsQ=", + "_parent": { + "$ref": "AAAAAAFpHq11g76xBiU=" + }, + "model": { + "$ref": "AAAAAAFpIV35vBs6xGk=" + }, + "font": "Arial;13;0", + "left": 221, + "top": 947, + "width": 523.16748046875, + "height": 13, + "text": "-addNewLinkAtTheEnd(ViewLinkedList *viewLinkedList, ViewLink viewLink): boolean", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpIWCsUx0AT98=", + "_parent": { + "$ref": "AAAAAAFpHq11g76xBiU=" + }, + "model": { + "$ref": "AAAAAAFpIWCsJhz9LOI=" + }, + "font": "Arial;13;0", + "left": 221, + "top": 962, + "width": 523.16748046875, + "height": 13, + "text": "-isListEmpty(ViewLinkedList viewLinkedList): boolean", + "horizontalAlignment": 0 } ], "font": "Arial;13;0", - "left": 288, - "top": 771, - "width": 450.2353515625, - "height": 98 + "left": 216, + "top": 822, + "width": 533.16748046875, + "height": 158 }, { "_type": "UMLReceptionCompartmentView", @@ -504,8 +727,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -456, - "top": -296, + "left": -528, + "top": -288, "width": 10, "height": 10 }, @@ -520,18 +743,18 @@ }, "visible": false, "font": "Arial;13;0", - "left": -456, - "top": -296, + "left": -528, + "top": -288, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 288, - "top": 736, - "width": 450.2353515625, - "height": 169, + "left": 216, + "top": 744, + "width": 533.16748046875, + "height": 236, "nameCompartment": { "$ref": "AAAAAAFpHq11gr6ruDw=" }, @@ -569,8 +792,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 823, - "top": 829, + "left": 813, + "top": 876, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -590,8 +813,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 823, - "top": 844, + "left": 813, + "top": 891, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -611,8 +834,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 824, - "top": 799, + "left": 814, + "top": 847, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -632,8 +855,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 885, - "top": 828, + "left": 852, + "top": 878, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -653,8 +876,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 882, - "top": 842, + "left": 850, + "top": 891, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -674,8 +897,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 889, - "top": 801, + "left": 857, + "top": 851, "height": 13, "alpha": -0.5235987755982988, "distance": 25, @@ -694,8 +917,8 @@ "$ref": "AAAAAAFpHucSu788r0g=" }, "font": "Arial;13;0", - "left": 748, - "top": 831, + "left": 758, + "top": 880, "width": 94.65625, "height": 13, "alpha": -0.3058788210270264, @@ -716,8 +939,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 766, - "top": 842, + "left": 776, + "top": 889, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -736,8 +959,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 759, - "top": 801, + "left": 770, + "top": 849, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -782,7 +1005,7 @@ "$ref": "AAAAAAFpHqCuVb5uVUA=" }, "lineStyle": 1, - "points": "911:820;738:820", + "points": "879:870;749:867", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAFpHucSvL8/DjI=" @@ -846,8 +1069,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -320, - "top": -832, + "left": -272, + "top": -992, "height": 13 }, { @@ -857,9 +1080,9 @@ "$ref": "AAAAAAFpHutgsMCCzzk=" }, "font": "Arial;13;1", - "left": 293, - "top": 623, - "width": 244.5498046875, + "left": 317, + "top": 543, + "width": 272.009765625, "height": 13, "text": "RTCManager" }, @@ -871,8 +1094,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -320, - "top": -832, + "left": -272, + "top": -992, "width": 73.67724609375, "height": 13, "text": "(from Model)" @@ -885,16 +1108,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": -320, - "top": -832, + "left": -272, + "top": -992, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 288, - "top": 616, - "width": 254.5498046875, + "left": 312, + "top": 536, + "width": 282.009765625, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAFpHutgsMCDHAA=" @@ -918,11 +1141,30 @@ "model": { "$ref": "AAAAAAFpHutgsMB/AXY=" }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpH/ODPP4RFzY=", + "_parent": { + "$ref": "AAAAAAFpHutgsMCHkFU=" + }, + "model": { + "$ref": "AAAAAAFpH/ODAP4LtlA=" + }, + "font": "Arial;13;0", + "left": 317, + "top": 566, + "width": 272.009765625, + "height": 13, + "text": "-rtcRef: const RTC_DS3231&", + "horizontalAlignment": 0 + } + ], "font": "Arial;13;0", - "left": 288, - "top": 641, - "width": 254.5498046875, - "height": 10 + "left": 312, + "top": 561, + "width": 282.009765625, + "height": 23 }, { "_type": "UMLOperationCompartmentView", @@ -944,11 +1186,11 @@ "$ref": "AAAAAAFpHvDyGMK4m84=" }, "font": "Arial;13;0", - "left": 293, - "top": 656, - "width": 244.5498046875, + "left": 317, + "top": 589, + "width": 272.009765625, "height": 13, - "text": "#RTCManager(&rtc: RTC_DS3231)", + "text": "#RTCManager(rtc: const RTC_DS3231&)", "horizontalAlignment": 0 }, { @@ -961,9 +1203,9 @@ "$ref": "AAAAAAFpHu5r+8HWdi4=" }, "font": "Arial;13;0", - "left": 293, - "top": 671, - "width": 244.5498046875, + "left": 317, + "top": 604, + "width": 272.009765625, "height": 13, "text": "+getDateTime(): DateTime", "horizontalAlignment": 0 @@ -978,9 +1220,9 @@ "$ref": "AAAAAAFpHu9y08IShm0=" }, "font": "Arial;13;0", - "left": 293, - "top": 686, - "width": 244.5498046875, + "left": 317, + "top": 619, + "width": 272.009765625, "height": 13, "text": "+setDate(dateTime: const DateTime): void", "horizontalAlignment": 0 @@ -995,19 +1237,53 @@ "$ref": "AAAAAAFpHvBWMsJbZm4=" }, "font": "Arial;13;0", - "left": 293, - "top": 701, - "width": 244.5498046875, + "left": 317, + "top": 634, + "width": 272.009765625, "height": 13, "text": "+setTime(dateTime: const DateTime): void", "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpIGi9QAF0YEQ=", + "_parent": { + "$ref": "AAAAAAFpHutgsMCIdZ0=" + }, + "model": { + "$ref": "AAAAAAFpIGi9CwFu+kg=" + }, + "font": "Arial;13;0", + "left": 317, + "top": 649, + "width": 272.009765625, + "height": 13, + "text": "+setDateTime(dateTime: const DateTime): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpIHTdtQOiFNA=", + "_parent": { + "$ref": "AAAAAAFpHutgsMCIdZ0=" + }, + "model": { + "$ref": "AAAAAAFpIHTdiQOcTyY=" + }, + "font": "Arial;13;0", + "left": 317, + "top": 664, + "width": 272.009765625, + "height": 13, + "text": "+const hasLostPower(): boolean", + "horizontalAlignment": 0 } ], "font": "Arial;13;0", - "left": 288, - "top": 651, - "width": 254.5498046875, - "height": 68 + "left": 312, + "top": 584, + "width": 282.009765625, + "height": 98 }, { "_type": "UMLReceptionCompartmentView", @@ -1020,8 +1296,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -160, - "top": -416, + "left": -136, + "top": -496, "width": 10, "height": 10 }, @@ -1036,18 +1312,18 @@ }, "visible": false, "font": "Arial;13;0", - "left": -160, - "top": -416, + "left": -136, + "top": -496, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 288, - "top": 616, - "width": 254.5498046875, - "height": 103, + "left": 312, + "top": 536, + "width": 282.009765625, + "height": 161, "nameCompartment": { "$ref": "AAAAAAFpHutgsMCCzzk=" }, @@ -1148,8 +1424,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 881, - "top": 774, + "left": 849, + "top": 765, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -1169,8 +1445,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 875, - "top": 786, + "left": 842, + "top": 777, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -1190,8 +1466,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 893, - "top": 748, + "left": 863, + "top": 741, "height": 13, "alpha": -0.5235987755982988, "distance": 25, @@ -1210,8 +1486,8 @@ "$ref": "AAAAAAFpHvH4IcMhRrE=" }, "font": "Arial;13;0", - "left": 555, - "top": 680, + "left": 603, + "top": 653, "width": 70.078125, "height": 13, "alpha": -0.4067887261263693, @@ -1232,8 +1508,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 571, - "top": 688, + "left": 618, + "top": 659, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -1252,8 +1528,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 564, - "top": 647, + "left": 617, + "top": 618, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -1298,7 +1574,7 @@ "$ref": "AAAAAAFpHqCuVb5uVUA=" }, "lineStyle": 1, - "points": "911:773;840:752;840:664;543:666", + "points": "879:767;840:752;840:664;594:634", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAFpHvH4IcMkhUs=" @@ -1333,6 +1609,2311 @@ "headQualifiersCompartment": { "$ref": "AAAAAAFpHvH4IsMuwBg=" } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFpHwleMcfmuyU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFpHwleMcfnrk4=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfmuyU=" + }, + "model": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFpHwleMcfoeXM=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfnrk4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -656, + "top": -1632, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFpHwleMcfp2VA=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfnrk4=" + }, + "font": "Arial;13;1", + "left": 621, + "top": 231, + "width": 839, + "height": 13, + "text": "PinMapping" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFpHwleMcfqEVM=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfnrk4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -656, + "top": -1632, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFpHwleMcfr9PY=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfnrk4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -656, + "top": -1632, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 616, + "top": 224, + "width": 849, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFpHwleMcfoeXM=" + }, + "nameLabel": { + "$ref": "AAAAAAFpHwleMcfp2VA=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFpHwleMcfqEVM=" + }, + "propertyLabel": { + "$ref": "AAAAAAFpHwleMcfr9PY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFpHwleMcfsKOA=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfmuyU=" + }, + "model": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpHxWNO83LAoE=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfsKOA=" + }, + "model": { + "$ref": "AAAAAAFpHxWNDM3CwW4=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 254, + "width": 839, + "height": 13, + "text": "-I2C_sda: const Pin", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpHxWxsc4TCKQ=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfsKOA=" + }, + "model": { + "$ref": "AAAAAAFpHxWxhM4KT3Y=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 269, + "width": 839, + "height": 13, + "text": "-I2C_scl: const Pin", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpHxW3HM43syA=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfsKOA=" + }, + "model": { + "$ref": "AAAAAAFpHxW27c4uwMQ=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 284, + "width": 839, + "height": 13, + "text": "-SPI_mosi: const Pin", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpHxW5i85b/F8=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfsKOA=" + }, + "model": { + "$ref": "AAAAAAFpHxW5Xs5SeKk=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 299, + "width": 839, + "height": 13, + "text": "-SPI_miso: const Pin", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpHxW7785/DhE=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfsKOA=" + }, + "model": { + "$ref": "AAAAAAFpHxW7ws52m1s=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 314, + "width": 839, + "height": 13, + "text": "-SPI_clk: const Pin", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpHxW9hc6j68s=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfsKOA=" + }, + "model": { + "$ref": "AAAAAAFpHxW9Ws6a3bg=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 329, + "width": 839, + "height": 13, + "text": "-SPI_sdCard_cs: const Pin", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 616, + "top": 249, + "width": 849, + "height": 98 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFpHwleMsftuqM=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfmuyU=" + }, + "model": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpHwx3Z8lWH3M=", + "_parent": { + "$ref": "AAAAAAFpHwleMsftuqM=" + }, + "model": { + "$ref": "AAAAAAFpHwx3KslNYmM=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 352, + "width": 839, + "height": 13, + "text": "+PinMapping(I2C_sda: const Pin, I2C_scl: const Pin, SPI_mosi: const Pin, SPI_miso: const Pin, SPI_clk: const Pin, SPI_sdCard_cs: const Pin)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpHxEtdcsTiQc=", + "_parent": { + "$ref": "AAAAAAFpHwleMsftuqM=" + }, + "model": { + "$ref": "AAAAAAFpHxEtRssKuqE=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 367, + "width": 839, + "height": 13, + "text": "+PinMapping()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpHxHw5ctWBxo=", + "_parent": { + "$ref": "AAAAAAFpHwleMsftuqM=" + }, + "model": { + "$ref": "AAAAAAFpHxHwuctNKJA=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 382, + "width": 839, + "height": 13, + "text": "+const getI2C_sda(): Pin", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpHxLIUsuhm+s=", + "_parent": { + "$ref": "AAAAAAFpHwleMsftuqM=" + }, + "model": { + "$ref": "AAAAAAFpHxLIJ8uYETA=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 397, + "width": 839, + "height": 13, + "text": "+const getI2C_scl(): Pin", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpHxLeVMvagpE=", + "_parent": { + "$ref": "AAAAAAFpHwleMsftuqM=" + }, + "model": { + "$ref": "AAAAAAFpHxLeIMvRHpI=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 412, + "width": 839, + "height": 13, + "text": "+const getSPI_mosi(): Pin", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpHxMmu8wTyw0=", + "_parent": { + "$ref": "AAAAAAFpHwleMsftuqM=" + }, + "model": { + "$ref": "AAAAAAFpHxMmd8wK/mQ=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 427, + "width": 839, + "height": 13, + "text": "+const getSPI_miso(): Pin", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpHxM+OMxMqrA=", + "_parent": { + "$ref": "AAAAAAFpHwleMsftuqM=" + }, + "model": { + "$ref": "AAAAAAFpHxM+A8xDhwQ=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 442, + "width": 839, + "height": 13, + "text": "+constgetSPI_clk(): Pin", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpHxNZrMyFp4s=", + "_parent": { + "$ref": "AAAAAAFpHwleMsftuqM=" + }, + "model": { + "$ref": "AAAAAAFpHxNZe8x8mJQ=" + }, + "font": "Arial;13;0", + "left": 621, + "top": 457, + "width": 839, + "height": 13, + "text": "+const getSPI_sdCard_cs(): Pin", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 616, + "top": 347, + "width": 849, + "height": 128 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFpHwleMsfuhkg=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfmuyU=" + }, + "model": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -328, + "top": -816, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFpHwleMsfvsKc=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfmuyU=" + }, + "model": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -328, + "top": -816, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 616, + "top": 224, + "width": 849, + "height": 251, + "nameCompartment": { + "$ref": "AAAAAAFpHwleMcfnrk4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFpHwleMcfsKOA=" + }, + "operationCompartment": { + "$ref": "AAAAAAFpHwleMsftuqM=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFpHwleMsfuhkg=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFpHwleMsfvsKc=" + } + }, + { + "_type": "UMLEnumerationView", + "_id": "AAAAAAFpH1AzldJtOUA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFpH1AzldJufPc=", + "_parent": { + "$ref": "AAAAAAFpH1AzldJtOUA=" + }, + "model": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFpH1AzldJvFxU=", + "_parent": { + "$ref": "AAAAAAFpH1AzldJufPc=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 189, + "width": 116.34619140625, + "height": 13, + "text": "«enumeration»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFpH1AzldJwyvc=", + "_parent": { + "$ref": "AAAAAAFpH1AzldJufPc=" + }, + "font": "Arial;13;1", + "left": 165, + "top": 204, + "width": 116.34619140625, + "height": 13, + "text": "Pin" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFpH1AzldJxjlY=", + "_parent": { + "$ref": "AAAAAAFpH1AzldJufPc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -560, + "top": 80, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFpH1AzldJyMlM=", + "_parent": { + "$ref": "AAAAAAFpH1AzldJufPc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -560, + "top": 80, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 160, + "top": 184, + "width": 126.34619140625, + "height": 38, + "stereotypeLabel": { + "$ref": "AAAAAAFpH1AzldJvFxU=" + }, + "nameLabel": { + "$ref": "AAAAAAFpH1AzldJwyvc=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFpH1AzldJxjlY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFpH1AzldJyMlM=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFpH1AzldJzXLY=", + "_parent": { + "$ref": "AAAAAAFpH1AzldJtOUA=" + }, + "model": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -280, + "top": 40, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFpH1AzldJ0VU8=", + "_parent": { + "$ref": "AAAAAAFpH1AzldJtOUA=" + }, + "model": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -280, + "top": 40, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFpH1AzltJ1fZU=", + "_parent": { + "$ref": "AAAAAAFpH1AzldJtOUA=" + }, + "model": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -280, + "top": 40, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFpH1AzltJ26/o=", + "_parent": { + "$ref": "AAAAAAFpH1AzldJtOUA=" + }, + "model": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -280, + "top": 40, + "width": 10, + "height": 10 + }, + { + "_type": "UMLEnumerationLiteralCompartmentView", + "_id": "AAAAAAFpH1AzltJ32RU=", + "_parent": { + "$ref": "AAAAAAFpH1AzldJtOUA=" + }, + "model": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "subViews": [ + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1JM6dZqPnU=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1JMrdZh60Q=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 227, + "width": 116.34619140625, + "height": 13, + "text": "GPIO_0", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1PzktdZz5Y=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1PzZNdQilU=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 242, + "width": 116.34619140625, + "height": 13, + "text": "GPIO_1_TX", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1P6JdeKeAs=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1P559eBvu8=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 257, + "width": 116.34619140625, + "height": 13, + "text": "GPIO_2", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1P/jde733A=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1P/WNeyk4w=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 272, + "width": 116.34619140625, + "height": 13, + "text": "GPIO_3_RX", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1QEWdfsODI=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1QEI9fjJE0=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 287, + "width": 116.34619140625, + "height": 13, + "text": "GPIO_4_SDA", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1SZ6djoj0o=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1SZtNjf3S8=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 302, + "width": 116.34619140625, + "height": 13, + "text": "GPIO_5_SCL", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1XCU9rWCtE=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1XCJNrNu6o=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 317, + "width": 116.34619140625, + "height": 13, + "text": "GPIO_10", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1XrVdsrCgo=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1XrJ9si6fc=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 332, + "width": 116.34619140625, + "height": 13, + "text": "GPIO_12_MISO", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1YZtttuNxc=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1YZidtlNY0=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 347, + "width": 116.34619140625, + "height": 13, + "text": "GPIO_13_MOSI", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1YxldufW48=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1YxWtuWoBg=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 362, + "width": 116.34619140625, + "height": 13, + "text": "GPIO_14_CLK", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1ZUz9v0i5U=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1ZUoNvrAyQ=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 377, + "width": 116.34619140625, + "height": 13, + "text": "GPIO_15", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1ZrZdwlpAs=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1ZrK9wcSWI=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 392, + "width": 116.34619140625, + "height": 13, + "text": "GPIO_16", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH1aDNdxWcfE=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH1aC+txNiU8=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 407, + "width": 116.34619140625, + "height": 13, + "text": "ADC", + "horizontalAlignment": 0 + }, + { + "_type": "UMLEnumerationLiteralView", + "_id": "AAAAAAFpH6EPid95lgc=", + "_parent": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + }, + "model": { + "$ref": "AAAAAAFpH6EPVd9wq4I=" + }, + "font": "Arial;13;0", + "left": 165, + "top": 422, + "width": 116.34619140625, + "height": 13, + "text": "DEFAULT_PIN", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 160, + "top": 222, + "width": 126.34619140625, + "height": 218 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 160, + "top": 184, + "width": 126.34619140625, + "height": 256, + "nameCompartment": { + "$ref": "AAAAAAFpH1AzldJufPc=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAFpH1AzldJzXLY=" + }, + "operationCompartment": { + "$ref": "AAAAAAFpH1AzldJ0VU8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFpH1AzltJ1fZU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFpH1AzltJ26/o=" + }, + "enumerationLiteralCompartment": { + "$ref": "AAAAAAFpH1AzltJ32RU=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFpH1V7ttpdUp8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAFpH1V7tdpbBsw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH1V7ttpeRrc=", + "_parent": { + "$ref": "AAAAAAFpH1V7ttpdUp8=" + }, + "model": { + "$ref": "AAAAAAFpH1V7tdpbBsw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 449, + "top": 329, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFpH1V7ttpdUp8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH1V7ttpfUMU=", + "_parent": { + "$ref": "AAAAAAFpH1V7ttpdUp8=" + }, + "model": { + "$ref": "AAAAAAFpH1V7tdpbBsw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 448, + "top": 344, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFpH1V7ttpdUp8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH1V7ttpgjSQ=", + "_parent": { + "$ref": "AAAAAAFpH1V7ttpdUp8=" + }, + "model": { + "$ref": "AAAAAAFpH1V7tdpbBsw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 450, + "top": 300, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFpH1V7ttpdUp8=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFpH1AzldJtOUA=" + }, + "tail": { + "$ref": "AAAAAAFpHwleMcfmuyU=" + }, + "lineStyle": 1, + "points": "615:329;286:314", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFpH1V7ttpeRrc=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFpH1V7ttpfUMU=" + }, + "propertyLabel": { + "$ref": "AAAAAAFpH1V7ttpgjSQ=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFpH7XLpOOHm9M=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAFpH7XLo+ODIeg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH7XLpOOIErM=", + "_parent": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "model": { + "$ref": "AAAAAAFpH7XLo+ODIeg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1089, + "top": 610, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH7XLpOOJ8CY=", + "_parent": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "model": { + "$ref": "AAAAAAFpH7XLo+ODIeg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1074, + "top": 613, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH7XLpOOKsjg=", + "_parent": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "model": { + "$ref": "AAAAAAFpH7XLo+ODIeg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1118, + "top": 603, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH7XLpOOL7YA=", + "_parent": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "model": { + "$ref": "AAAAAAFpH7XLo+OEKpg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1117, + "top": 723, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH7XLpOOMTZw=", + "_parent": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "model": { + "$ref": "AAAAAAFpH7XLo+OEKpg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1103, + "top": 724, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH7XLpOONnJs=", + "_parent": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "model": { + "$ref": "AAAAAAFpH7XLo+OEKpg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1145, + "top": 721, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH7XLpOOO4yQ=", + "_parent": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "model": { + "$ref": "AAAAAAFpH7XLo+OFwdw=" + }, + "font": "Arial;13;0", + "left": 1085, + "top": 476, + "width": 106.22802734375, + "height": 13, + "alpha": 1.216775001420921, + "distance": 67.89698078707183, + "hostEdge": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "text": "-const pinMapping" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH7XLpOOPD9o=", + "_parent": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "model": { + "$ref": "AAAAAAFpH7XLo+OFwdw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1050, + "top": 503, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH7XLpOOQ7UM=", + "_parent": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "model": { + "$ref": "AAAAAAFpH7XLo+OFwdw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1088, + "top": 487, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFpH7XLpOORZ5g=", + "_parent": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "model": { + "$ref": "AAAAAAFpH7XLo+OEKpg=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFpH7XLpOOSGCU=", + "_parent": { + "$ref": "AAAAAAFpH7XLpOOHm9M=" + }, + "model": { + "$ref": "AAAAAAFpH7XLo+OFwdw=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFpHwleMcfmuyU=" + }, + "tail": { + "$ref": "AAAAAAFpHqCuVb5uVUA=" + }, + "lineStyle": 1, + "points": "1138:751;1071:475", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFpH7XLpOOIErM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFpH7XLpOOJ8CY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFpH7XLpOOKsjg=" + }, + "tailRoleNameLabel": { + "$ref": "AAAAAAFpH7XLpOOL7YA=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAFpH7XLpOOMTZw=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAFpH7XLpOONnJs=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAFpH7XLpOOO4yQ=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAFpH7XLpOOPD9o=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAFpH7XLpOOQ7UM=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAFpH7XLpOORZ5g=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAFpH7XLpOOSGCU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFpH8Z66uitImI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFpH8Z66uiuDq0=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uitImI=" + }, + "model": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFpH8Z66uivGWM=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uiuDq0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -544, + "top": -208, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFpH8Z66uiwBv0=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uiuDq0=" + }, + "font": "Arial;13;1", + "left": 1205, + "top": 503, + "width": 590.7763671875, + "height": 13, + "text": "ScreenConfig" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFpH8Z66uix6eY=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uiuDq0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -544, + "top": -208, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFpH8Z66+iyfHM=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uiuDq0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -544, + "top": -208, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1200, + "top": 496, + "width": 600.7763671875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFpH8Z66uivGWM=" + }, + "nameLabel": { + "$ref": "AAAAAAFpH8Z66uiwBv0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFpH8Z66uix6eY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFpH8Z66+iyfHM=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFpH8Z66+izOWQ=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uitImI=" + }, + "model": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpH82Iu+1JX9Q=", + "_parent": { + "$ref": "AAAAAAFpH8Z66+izOWQ=" + }, + "model": { + "$ref": "AAAAAAFpH82Ih+09tx4=" + }, + "font": "Arial;13;0", + "left": 1205, + "top": 526, + "width": 590.7763671875, + "height": 13, + "text": "-width: const unsigned char", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpH83n4e3II9g=", + "_parent": { + "$ref": "AAAAAAFpH8Z66+izOWQ=" + }, + "model": { + "$ref": "AAAAAAFpH83nqO28n7I=" + }, + "font": "Arial;13;0", + "left": 1205, + "top": 541, + "width": 590.7763671875, + "height": 13, + "text": "-height: const unsigned char", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpH84nUO5HeJs=", + "_parent": { + "$ref": "AAAAAAFpH8Z66+izOWQ=" + }, + "model": { + "$ref": "AAAAAAFpH84nIu47m8U=" + }, + "font": "Arial;13;0", + "left": 1205, + "top": 556, + "width": 590.7763671875, + "height": 13, + "text": "-address: const unsigned char", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1200, + "top": 521, + "width": 600.7763671875, + "height": 53 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFpH8Z66+i0Du8=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uitImI=" + }, + "model": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpH8dhmep8zNM=", + "_parent": { + "$ref": "AAAAAAFpH8Z66+i0Du8=" + }, + "model": { + "$ref": "AAAAAAFpH8dhYOpwjuY=" + }, + "font": "Arial;13;0", + "left": 1205, + "top": 579, + "width": 590.7763671875, + "height": 13, + "text": "+ScreenConfig(width: const unsigned char, height: const unsigned char, address: const unsigned char)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpH9ZtZvXXZQk=", + "_parent": { + "$ref": "AAAAAAFpH8Z66+i0Du8=" + }, + "model": { + "$ref": "AAAAAAFpH9ZtN/XLblU=" + }, + "font": "Arial;13;0", + "left": 1205, + "top": 594, + "width": 590.7763671875, + "height": 13, + "text": "+const getWidth(): unsigned char", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpH9bNwPZYVGA=", + "_parent": { + "$ref": "AAAAAAFpH8Z66+i0Du8=" + }, + "model": { + "$ref": "AAAAAAFpH9bNjPZM25I=" + }, + "font": "Arial;13;0", + "left": 1205, + "top": 609, + "width": 590.7763671875, + "height": 13, + "text": "+const getHeight(): unsigned char", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAFpH9cIMPbZTCo=", + "_parent": { + "$ref": "AAAAAAFpH8Z66+i0Du8=" + }, + "model": { + "$ref": "AAAAAAFpH9cH/fbN6iY=" + }, + "font": "Arial;13;0", + "left": 1205, + "top": 624, + "width": 590.7763671875, + "height": 13, + "text": "+const getAddress(): unsigned char", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1200, + "top": 574, + "width": 600.7763671875, + "height": 68 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFpH8Z66+i1aOU=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uitImI=" + }, + "model": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": -104, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFpH8Z66+i2uWQ=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uitImI=" + }, + "model": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": -104, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1200, + "top": 496, + "width": 600.7763671875, + "height": 161, + "nameCompartment": { + "$ref": "AAAAAAFpH8Z66uiuDq0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFpH8Z66+izOWQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAFpH8Z66+i0Du8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFpH8Z66+i1aOU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFpH8Z66+i2uWQ=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFpH8b/0elhdeg=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAFpH8b/0eld3R8=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH8b/0eliwzQ=", + "_parent": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "model": { + "$ref": "AAAAAAFpH8b/0eld3R8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1347, + "top": 686, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH8b/0eljrdE=", + "_parent": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "model": { + "$ref": "AAAAAAFpH8b/0eld3R8=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1337, + "top": 675, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH8b/0elk8X0=", + "_parent": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "model": { + "$ref": "AAAAAAFpH8b/0eld3R8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1368, + "top": 709, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH8b/0ell9o4=", + "_parent": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "model": { + "$ref": "AAAAAAFpH8b/0eleqFY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1316, + "top": 716, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH8b/0elmPpw=", + "_parent": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "model": { + "$ref": "AAAAAAFpH8b/0eleqFY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1308, + "top": 705, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH8b/0elnDbY=", + "_parent": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "model": { + "$ref": "AAAAAAFpH8b/0eleqFY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1331, + "top": 739, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH8b/0elo+RM=", + "_parent": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "model": { + "$ref": "AAAAAAFpH8b/0elfarA=" + }, + "font": "Arial;13;0", + "left": 1412, + "top": 659, + "width": 115.60986328125, + "height": 13, + "alpha": 2.256838422176435, + "distance": 60.207972893961475, + "hostEdge": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "text": "-const screenConfig" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH8b/0elpYQ4=", + "_parent": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "model": { + "$ref": "AAAAAAFpH8b/0elfarA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1370, + "top": 649, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpH8b/0elq8c8=", + "_parent": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "model": { + "$ref": "AAAAAAFpH8b/0elfarA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1402, + "top": 674, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFpH8b/0elrdgs=", + "_parent": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "model": { + "$ref": "AAAAAAFpH8b/0eleqFY=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFpH8b/0elsWuc=", + "_parent": { + "$ref": "AAAAAAFpH8b/0elhdeg=" + }, + "model": { + "$ref": "AAAAAAFpH8b/0elfarA=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFpH8Z66uitImI=" + }, + "tail": { + "$ref": "AAAAAAFpHqCuVb5uVUA=" + }, + "lineStyle": 1, + "points": "1307:751;1410:657", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFpH8b/0eliwzQ=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFpH8b/0eljrdE=" + }, + "propertyLabel": { + "$ref": "AAAAAAFpH8b/0elk8X0=" + }, + "tailRoleNameLabel": { + "$ref": "AAAAAAFpH8b/0ell9o4=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAFpH8b/0elmPpw=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAFpH8b/0elnDbY=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAFpH8b/0elo+RM=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAFpH8b/0elpYQ4=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAFpH8b/0elq8c8=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAFpH8b/0elrdgs=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAFpH8b/0elsWuc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFpIVCNABPX6Iw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAFpIVCM/xPV/bU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFpIVCNABPYowM=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPX6Iw=" + }, + "model": { + "$ref": "AAAAAAFpIVCM/xPV/bU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFpIVCNABPZ2lE=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPYowM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -80, + "top": 112, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFpIVCNABPahJQ=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPYowM=" + }, + "font": "Arial;13;1", + "left": 381, + "top": 1055, + "width": 153.55615234375, + "height": 13, + "text": "ViewLinkedList" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFpIVCNABPbWF0=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPYowM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -80, + "top": 112, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFpIVCNABPcGZg=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPYowM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -80, + "top": 112, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 376, + "top": 1048, + "width": 163.55615234375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFpIVCNABPZ2lE=" + }, + "nameLabel": { + "$ref": "AAAAAAFpIVCNABPahJQ=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFpIVCNABPbWF0=" + }, + "propertyLabel": { + "$ref": "AAAAAAFpIVCNABPcGZg=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFpIVCNABPdys4=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPX6Iw=" + }, + "model": { + "$ref": "AAAAAAFpIVCM/xPV/bU=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpIVFwFBYnFOQ=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPdys4=" + }, + "model": { + "$ref": "AAAAAAFpIVFv0xYYyKo=" + }, + "font": "Arial;13;0", + "left": 381, + "top": 1078, + "width": 153.55615234375, + "height": 13, + "text": "+*pData: void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpIVHZpBbEDb4=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPdys4=" + }, + "model": { + "$ref": "AAAAAAFpIVHZcha1vLw=" + }, + "font": "Arial;13;0", + "left": 381, + "top": 1093, + "width": 153.55615234375, + "height": 13, + "text": "+*logic_function: boolean", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpIVKzERf5N3g=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPdys4=" + }, + "model": { + "$ref": "AAAAAAFpIVKy4BfqLR4=" + }, + "font": "Arial;13;0", + "left": 381, + "top": 1108, + "width": 153.55615234375, + "height": 13, + "text": "+UID: const unsigned char", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAFpIVL7rhiWd3M=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPdys4=" + }, + "model": { + "$ref": "AAAAAAFpIVL7ehiHAoI=" + }, + "font": "Arial;13;0", + "left": 381, + "top": 1123, + "width": 153.55615234375, + "height": 13, + "text": "+next: ViewLink*", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 376, + "top": 1073, + "width": 163.55615234375, + "height": 68 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFpIVCNABPe5uo=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPX6Iw=" + }, + "model": { + "$ref": "AAAAAAFpIVCM/xPV/bU=" + }, + "font": "Arial;13;0", + "left": 376, + "top": 1141, + "width": 163.55615234375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFpIVCNABPfqj8=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPX6Iw=" + }, + "model": { + "$ref": "AAAAAAFpIVCM/xPV/bU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -40, + "top": 56, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFpIVCNABPg/dc=", + "_parent": { + "$ref": "AAAAAAFpIVCNABPX6Iw=" + }, + "model": { + "$ref": "AAAAAAFpIVCM/xPV/bU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -40, + "top": 56, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 376, + "top": 1048, + "width": 163.55615234375, + "height": 133, + "nameCompartment": { + "$ref": "AAAAAAFpIVCNABPYowM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFpIVCNABPdys4=" + }, + "operationCompartment": { + "$ref": "AAAAAAFpIVCNABPe5uo=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFpIVCNABPfqj8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFpIVCNABPg/dc=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFpIVDGIBS4GVk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAFpIVDGIBS0BiA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpIVDGIBS5fjw=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "model": { + "$ref": "AAAAAAFpIVDGIBS0BiA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 481, + "top": 1008, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpIVDGIBS65lY=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "model": { + "$ref": "AAAAAAFpIVDGIBS0BiA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 496, + "top": 1009, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpIVDGIBS7ZI8=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "model": { + "$ref": "AAAAAAFpIVDGIBS0BiA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 452, + "top": 1005, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpIVDGIBS8rJ4=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "model": { + "$ref": "AAAAAAFpIVDGIBS1iZ8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 482, + "top": 1001, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpIVDGIBS9E8E=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "model": { + "$ref": "AAAAAAFpIVDGIBS1iZ8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 495, + "top": 1004, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpIVDGIBS+yh0=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "model": { + "$ref": "AAAAAAFpIVDGIBS1iZ8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 455, + "top": 994, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpIVDGIBS/uUU=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "model": { + "$ref": "AAAAAAFpIVDGIBS2Di0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 481, + "top": 1016, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpIVDGIBTAFoA=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "model": { + "$ref": "AAAAAAFpIVDGIBS2Di0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 494, + "top": 1015, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFpIVDGIBTB/+s=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "model": { + "$ref": "AAAAAAFpIVDGIBS2Di0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 453, + "top": 1018, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFpIVDGIBTCgy0=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "model": { + "$ref": "AAAAAAFpIVDGIBS1iZ8=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFpIVDGIRTDqEk=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS4GVk=" + }, + "model": { + "$ref": "AAAAAAFpIVDGIBS2Di0=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFpIVCNABPX6Iw=" + }, + "tail": { + "$ref": "AAAAAAFpHq11gr6quCs=" + }, + "lineStyle": 1, + "points": "470:980;464:1047", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFpIVDGIBS5fjw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFpIVDGIBS65lY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFpIVDGIBS7ZI8=" + }, + "tailRoleNameLabel": { + "$ref": "AAAAAAFpIVDGIBS8rJ4=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAFpIVDGIBS9E8E=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAFpIVDGIBS+yh0=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAFpIVDGIBS/uUU=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAFpIVDGIBTAFoA=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAFpIVDGIBTB/+s=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAFpIVDGIBTCgy0=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAFpIVDGIRTDqEk=" + } } ] }, @@ -1403,6 +3984,109 @@ }, "visibility": "private" } + }, + { + "_type": "UMLDependency", + "_id": "AAAAAAFpHwu1qch8V5g=", + "_parent": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "source": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "target": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAFpH7XLo+ODIeg=", + "_parent": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFpH7XLo+OEKpg=", + "_parent": { + "$ref": "AAAAAAFpH7XLo+ODIeg=" + }, + "reference": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "navigable": false + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFpH7XLo+OFwdw=", + "_parent": { + "$ref": "AAAAAAFpH7XLo+ODIeg=" + }, + "name": "const pinMapping", + "reference": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "visibility": "private" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAFpH8b/0eld3R8=", + "_parent": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFpH8b/0eleqFY=", + "_parent": { + "$ref": "AAAAAAFpH8b/0eld3R8=" + }, + "reference": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "navigable": false + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFpH8b/0elfarA=", + "_parent": { + "$ref": "AAAAAAFpH8b/0eld3R8=" + }, + "name": "const screenConfig", + "reference": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "visibility": "private" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAFpH9BNKfMrW5s=", + "_parent": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFpH9BNKfMsCU4=", + "_parent": { + "$ref": "AAAAAAFpH9BNKfMrW5s=" + }, + "reference": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "navigable": false + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFpH9BNKfMtPsA=", + "_parent": { + "$ref": "AAAAAAFpH9BNKfMrW5s=" + }, + "name": "const RtcConfig", + "reference": { + "$ref": "AAAAAAFpH86Nr+8bFQc=" + }, + "visibility": "private" + } } ], "attributes": [ @@ -1424,17 +4108,63 @@ }, "name": "rtc", "visibility": "private", - "type": "RTC_DS3231" + "type": "const RTC_DS3231" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpIJy3HQ29knI=", + "_parent": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "name": "error", + "visibility": "private", + "type": "unsigned char" } ], "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFpHvkxbsYot4M=", + "_parent": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "name": "SAB" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpHvoxW8cKCvI=", + "_parent": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "name": "SAB", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHvq/rcdgsi4=", + "_parent": { + "$ref": "AAAAAAFpHvoxW8cKCvI=" + }, + "name": "pinConfig", + "type": "const PinMapping" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAFpH9mCc/njrBU=", + "_parent": { + "$ref": "AAAAAAFpHvoxW8cKCvI=" + }, + "name": "screenConfig", + "type": "const ScreenConfig" + } + ] + }, { "_type": "UMLOperation", "_id": "AAAAAAFpHukSSsASC8A=", "_parent": { "$ref": "AAAAAAFpHqCuU75sfJc=" }, - "name": "getScreenManager", + "name": "const getScreenManager", "parameters": [ { "_type": "UMLParameter", @@ -1453,7 +4183,7 @@ "_parent": { "$ref": "AAAAAAFpHqCuU75sfJc=" }, - "name": "getRtcManager", + "name": "const getRtcManager", "parameters": [ { "_type": "UMLParameter", @@ -1465,6 +4195,67 @@ "direction": "return" } ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpH8TLd+gtxdc=", + "_parent": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "name": "const getPinConfig", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpH8Yfxuh8C90=", + "_parent": { + "$ref": "AAAAAAFpH8TLd+gtxdc=" + }, + "type": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpH9CZ7fScusk=", + "_parent": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "name": "const getScreenConfig", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpH9DU6/TuDy8=", + "_parent": { + "$ref": "AAAAAAFpH9CZ7fScusk=" + }, + "type": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpIJ1Abg48fno=", + "_parent": { + "$ref": "AAAAAAFpHqCuU75sfJc=" + }, + "name": "const getError", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpIJ170Q5/Gtk=", + "_parent": { + "$ref": "AAAAAAFpIJ1Abg48fno=" + }, + "type": "unsigned char", + "direction": "return" + } + ] } ] }, @@ -1475,6 +4266,70 @@ "$ref": "AAAAAAFF+qBWK6M3Z8Y=" }, "name": "ScreenManager", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAFpIVDGIBS0BiA=", + "_parent": { + "$ref": "AAAAAAFpHq11gr6oq4M=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFpIVDGIBS1iZ8=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS0BiA=" + }, + "reference": { + "$ref": "AAAAAAFpHq11gr6oq4M=" + }, + "navigable": false + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFpIVDGIBS2Di0=", + "_parent": { + "$ref": "AAAAAAFpIVDGIBS0BiA=" + }, + "reference": { + "$ref": "AAAAAAFpIVCM/xPV/bU=" + } + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpIK8zeBHqtks=", + "_parent": { + "$ref": "AAAAAAFpHq11gr6oq4M=" + }, + "name": "displayRef", + "visibility": "private", + "type": "Adafruit_SSD1306" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpIVOrExmy4PM=", + "_parent": { + "$ref": "AAAAAAFpHq11gr6oq4M=" + }, + "name": "viewLinkedList", + "visibility": "private", + "type": { + "$ref": "AAAAAAFpIVCM/xPV/bU=" + } + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpIXK7gR7jCLw=", + "_parent": { + "$ref": "AAAAAAFpHq11gr6oq4M=" + }, + "name": "error", + "visibility": "private", + "type": "unsigned char" + } + ], "operations": [ { "_type": "UMLOperation", @@ -1510,7 +4365,8 @@ "_parent": { "$ref": "AAAAAAFpHrx2a773c7c=" }, - "name": "*logic_function" + "name": "*logic_function", + "type": "boolean" }, { "_type": "UMLParameter", @@ -1518,7 +4374,7 @@ "_parent": { "$ref": "AAAAAAFpHrx2a773c7c=" }, - "name": "*p_data", + "name": "*pData", "type": "void" }, { @@ -1575,7 +4431,7 @@ "_parent": { "$ref": "AAAAAAFpHq11gr6oq4M=" }, - "name": "view2Display", + "name": "displayView", "parameters": [ { "_type": "UMLParameter", @@ -1652,6 +4508,110 @@ "direction": "return" } ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpIVRhRxptGlk=", + "_parent": { + "$ref": "AAAAAAFpHq11gr6oq4M=" + }, + "name": "createEmptyList", + "visibility": "private", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpIVT1KxreD08=", + "_parent": { + "$ref": "AAAAAAFpIVRhRxptGlk=" + }, + "type": "void *", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpIXL2kx+t5Ww=", + "_parent": { + "$ref": "AAAAAAFpHq11gr6oq4M=" + }, + "name": "const getError", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpIXNfEiA9Uxg=", + "_parent": { + "$ref": "AAAAAAFpIXL2kx+t5Ww=" + }, + "type": "unsigned char", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpIV35vBs6xGk=", + "_parent": { + "$ref": "AAAAAAFpHq11gr6oq4M=" + }, + "name": "addNewLinkAtTheEnd", + "visibility": "private", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpIV43txuMIfA=", + "_parent": { + "$ref": "AAAAAAFpIV35vBs6xGk=" + }, + "name": "ViewLinkedList *viewLinkedList" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAFpIV43txuNeUw=", + "_parent": { + "$ref": "AAAAAAFpIV35vBs6xGk=" + }, + "name": "ViewLink viewLink" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAFpIV43txuONps=", + "_parent": { + "$ref": "AAAAAAFpIV35vBs6xGk=" + }, + "type": "boolean", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpIWCsJhz9LOI=", + "_parent": { + "$ref": "AAAAAAFpHq11gr6oq4M=" + }, + "name": "isListEmpty", + "visibility": "private", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpIWDphB1PioU=", + "_parent": { + "$ref": "AAAAAAFpIWCsJhz9LOI=" + }, + "type": "boolean", + "direction": "return" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAFpIWGkox2scSo=", + "_parent": { + "$ref": "AAAAAAFpIWCsJhz9LOI=" + }, + "name": "ViewLinkedList viewLinkedList", + "type": "" + } + ] } ] }, @@ -1662,6 +4622,18 @@ "$ref": "AAAAAAFF+qBWK6M3Z8Y=" }, "name": "RTCManager", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpH/ODAP4LtlA=", + "_parent": { + "$ref": "AAAAAAFpHutgsMB/AXY=" + }, + "name": "rtcRef", + "visibility": "private", + "type": "const RTC_DS3231&" + } + ], "operations": [ { "_type": "UMLOperation", @@ -1678,8 +4650,8 @@ "_parent": { "$ref": "AAAAAAFpHvDyGMK4m84=" }, - "name": "&rtc", - "type": "RTC_DS3231" + "name": "rtc", + "type": "const RTC_DS3231&" } ] }, @@ -1757,6 +4729,702 @@ "direction": "return" } ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpIGi9CwFu+kg=", + "_parent": { + "$ref": "AAAAAAFpHutgsMB/AXY=" + }, + "name": "setDateTime", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpIGjd1QIaTEQ=", + "_parent": { + "$ref": "AAAAAAFpIGi9CwFu+kg=" + }, + "name": "dateTime", + "type": "const DateTime" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAFpIGjd1gIbsg8=", + "_parent": { + "$ref": "AAAAAAFpIGi9CwFu+kg=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpIHTdiQOcTyY=", + "_parent": { + "$ref": "AAAAAAFpHutgsMB/AXY=" + }, + "name": "const hasLostPower", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpIHVXsgPu6og=", + "_parent": { + "$ref": "AAAAAAFpIHTdiQOcTyY=" + }, + "type": "boolean", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFpHwleMcfk8SY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "PinMapping", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFpH1V7tdpbBsw=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "source": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "target": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpHxWNDM3CwW4=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "I2C_sda", + "visibility": "private", + "type": "const Pin" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpHxWxhM4KT3Y=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "I2C_scl", + "visibility": "private", + "type": "const Pin" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpHxW27c4uwMQ=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "SPI_mosi", + "visibility": "private", + "type": "const Pin" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpHxW5Xs5SeKk=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "SPI_miso", + "visibility": "private", + "type": "const Pin" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpHxW7ws52m1s=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "SPI_clk", + "visibility": "private", + "type": "const Pin" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpHxW9Ws6a3bg=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "SPI_sdCard_cs", + "visibility": "private", + "type": "const Pin" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFpHwx3KslNYmM=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "PinMapping", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHw2tpsm7w/E=", + "_parent": { + "$ref": "AAAAAAFpHwx3KslNYmM=" + }, + "name": "I2C_sda", + "type": "const Pin" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHw7EVsoHqI8=", + "_parent": { + "$ref": "AAAAAAFpHwx3KslNYmM=" + }, + "name": "I2C_scl", + "type": "const Pin" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHw7EVsoI0LQ=", + "_parent": { + "$ref": "AAAAAAFpHwx3KslNYmM=" + }, + "name": "SPI_mosi", + "type": "const Pin" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHw9IRMokMvM=", + "_parent": { + "$ref": "AAAAAAFpHwx3KslNYmM=" + }, + "name": "SPI_miso", + "type": "const Pin" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHxAaIMpwNNE=", + "_parent": { + "$ref": "AAAAAAFpHwx3KslNYmM=" + }, + "name": "SPI_clk", + "type": "const Pin" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHxAaIcpx6vU=", + "_parent": { + "$ref": "AAAAAAFpHwx3KslNYmM=" + }, + "name": "SPI_sdCard_cs", + "type": "const Pin" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpHxEtRssKuqE=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "PinMapping" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpHxHwuctNKJA=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "const getI2C_sda", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHxK3cctyIYg=", + "_parent": { + "$ref": "AAAAAAFpHxHwuctNKJA=" + }, + "type": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpHxLIJ8uYETA=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "const getI2C_scl", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHxLdssu9h4Y=", + "_parent": { + "$ref": "AAAAAAFpHxLIJ8uYETA=" + }, + "type": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpHxLeIMvRHpI=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "const getSPI_mosi", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHxMl8cv2L+U=", + "_parent": { + "$ref": "AAAAAAFpHxLeIMvRHpI=" + }, + "type": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpHxMmd8wK/mQ=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "const getSPI_miso", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHxM9e8wv0to=", + "_parent": { + "$ref": "AAAAAAFpHxMmd8wK/mQ=" + }, + "type": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpHxM+A8xDhwQ=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "constgetSPI_clk", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHxNY+MxoSqk=", + "_parent": { + "$ref": "AAAAAAFpHxM+A8xDhwQ=" + }, + "type": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpHxNZe8x8mJQ=", + "_parent": { + "$ref": "AAAAAAFpHwleMcfk8SY=" + }, + "name": "const getSPI_sdCard_cs", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpHxST7M1+nQU=", + "_parent": { + "$ref": "AAAAAAFpHxNZe8x8mJQ=" + }, + "type": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLEnumeration", + "_id": "AAAAAAFpH1AzlNJrhO0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Pin", + "literals": [ + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1JMrdZh60Q=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "GPIO_0" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1PzZNdQilU=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "GPIO_1_TX" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1P559eBvu8=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "GPIO_2" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1P/WNeyk4w=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "GPIO_3_RX" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1QEI9fjJE0=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "GPIO_4_SDA" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1SZtNjf3S8=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "GPIO_5_SCL" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1XCJNrNu6o=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "GPIO_10" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1XrJ9si6fc=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "GPIO_12_MISO" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1YZidtlNY0=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "GPIO_13_MOSI" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1YxWtuWoBg=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "GPIO_14_CLK" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1ZUoNvrAyQ=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "GPIO_15" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1ZrK9wcSWI=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "GPIO_16" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH1aC+txNiU8=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "ADC" + }, + { + "_type": "UMLEnumerationLiteral", + "_id": "AAAAAAFpH6EPVd9wq4I=", + "_parent": { + "$ref": "AAAAAAFpH1AzlNJrhO0=" + }, + "name": "DEFAULT_PIN" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFpH8Z66uirX5g=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "ScreenConfig", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpH82Ih+09tx4=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "name": "width", + "visibility": "private", + "type": "const unsigned char" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpH83nqO28n7I=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "name": "height", + "visibility": "private", + "type": "const unsigned char" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpH84nIu47m8U=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "name": "address", + "visibility": "private", + "type": "const unsigned char" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFpH8dhYOpwjuY=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "name": "ScreenConfig", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpH8wc9erMIrI=", + "_parent": { + "$ref": "AAAAAAFpH8dhYOpwjuY=" + }, + "name": "width", + "type": "const unsigned char" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAFpH8wc9urNnsw=", + "_parent": { + "$ref": "AAAAAAFpH8dhYOpwjuY=" + }, + "name": "height", + "type": "const unsigned char" + }, + { + "_type": "UMLParameter", + "_id": "AAAAAAFpH8wc9urOIw8=", + "_parent": { + "$ref": "AAAAAAFpH8dhYOpwjuY=" + }, + "name": "address", + "type": "const unsigned char" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpH9ZtN/XLblU=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "name": "const getWidth", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpH9bM7PYdoVQ=", + "_parent": { + "$ref": "AAAAAAFpH9ZtN/XLblU=" + }, + "type": "unsigned char", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpH9bNjPZM25I=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "name": "const getHeight", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpH9cHXPae0/o=", + "_parent": { + "$ref": "AAAAAAFpH9bNjPZM25I=" + }, + "type": "unsigned char", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpH9cH/fbN6iY=", + "_parent": { + "$ref": "AAAAAAFpH8Z66uirX5g=" + }, + "name": "const getAddress", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpH9dNL/cfLr8=", + "_parent": { + "$ref": "AAAAAAFpH9cH/fbN6iY=" + }, + "type": "unsigned char", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFpH86Nr+8bFQc=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "RtcConfig", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpH87Rcu/Vdz4=", + "_parent": { + "$ref": "AAAAAAFpH86Nr+8bFQc=" + }, + "name": "address", + "visibility": "private", + "type": "const unsigned char" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAFpH8/rFPJJ6jY=", + "_parent": { + "$ref": "AAAAAAFpH86Nr+8bFQc=" + }, + "name": "RtcConfig", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpH9Ap//KMsMg=", + "_parent": { + "$ref": "AAAAAAFpH8/rFPJJ6jY=" + }, + "name": "address", + "type": "const unsigned char" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAFpH9dnM/fGSHQ=", + "_parent": { + "$ref": "AAAAAAFpH86Nr+8bFQc=" + }, + "name": "const getAddress", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAFpH9eJ4vgYpKI=", + "_parent": { + "$ref": "AAAAAAFpH9dnM/fGSHQ=" + }, + "type": "unsigned char", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFpIVCM/xPV/bU=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "ViewLinkedList", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpIVFv0xYYyKo=", + "_parent": { + "$ref": "AAAAAAFpIVCM/xPV/bU=" + }, + "name": "*pData", + "type": "void" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpIVHZcha1vLw=", + "_parent": { + "$ref": "AAAAAAFpIVCM/xPV/bU=" + }, + "name": "*logic_function", + "type": "boolean" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpIVKy4BfqLR4=", + "_parent": { + "$ref": "AAAAAAFpIVCM/xPV/bU=" + }, + "name": "UID", + "type": "const unsigned char" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAFpIVL7ehiHAoI=", + "_parent": { + "$ref": "AAAAAAFpIVCM/xPV/bU=" + }, + "name": "next", + "type": "ViewLink*" } ] } diff --git a/src/app/PinMapping.cpp b/src/app/PinMapping.cpp new file mode 100644 index 0000000..f708e82 --- /dev/null +++ b/src/app/PinMapping.cpp @@ -0,0 +1,59 @@ +#include "PinMapping.h" + +/** + * Helper class to define the pin mapping + */ + +//Default pin mapping +PinMapping::PinMapping() : +_I2C_sda(GPIO_4_SDA), +_I2C_scl(GPIO_5_SCL), +_SPI_mosi(GPIO_13_MOSI), +_SPI_miso(GPIO_12_MISO), +_SPI_clk(GPIO_14_CLK), +_SPI_sdCard_cs(GPIO_2) +{ +} + +//Custom pin mapping +PinMapping::PinMapping(const Pin I2C_sda, const Pin I2C_scl, const Pin SPI_mosi, const Pin SPI_miso, const Pin SPI_clk, const Pin SPI_sdCard_cs) : +_I2C_sda(I2C_sda == DEFAULT_PIN ? GPIO_4_SDA : I2C_sda), +_I2C_scl(I2C_scl == DEFAULT_PIN ? GPIO_5_SCL : I2C_scl), +_SPI_mosi(SPI_mosi == DEFAULT_PIN ? GPIO_13_MOSI : SPI_mosi), +_SPI_miso(SPI_miso == DEFAULT_PIN ? GPIO_12_MISO : SPI_miso), +_SPI_clk(SPI_clk == DEFAULT_PIN ? GPIO_14_CLK : SPI_clk), +_SPI_sdCard_cs(SPI_sdCard_cs == DEFAULT_PIN ? GPIO_2 : SPI_sdCard_cs) +{ +} + +//Accessors +Pin PinMapping::getI2C_sda() const +{ + return _I2C_sda; +} + +Pin PinMapping::getI2C_scl() const +{ + return _I2C_scl; +} + +Pin PinMapping::getSPI_mosi() const +{ + return _SPI_mosi; +} + +Pin PinMapping::getSPI_miso() const +{ + return _SPI_miso; +} + +Pin PinMapping::getSPI_clk() const +{ + return _SPI_clk; +} + +Pin PinMapping::getSPI_sdCard_cs() const +{ + return _SPI_sdCard_cs; +} + diff --git a/src/app/PinMapping.h b/src/app/PinMapping.h new file mode 100644 index 0000000..3375405 --- /dev/null +++ b/src/app/PinMapping.h @@ -0,0 +1,27 @@ +#ifndef PINMAPPING_H +#define PINMAPPING_H +#include "definition.h" + +class PinMapping +{ + public: + PinMapping(); + PinMapping(const Pin I2C_sda, const Pin I2C_scl, const Pin SPI_mosi, const Pin SPI_miso, const Pin SPI_clk, const Pin SPI_sdCard_cs); + + Pin getI2C_sda() const; + Pin getI2C_scl() const; + + Pin getSPI_mosi() const; + Pin getSPI_miso() const; + Pin getSPI_clk() const; + Pin getSPI_sdCard_cs() const; + private: + const Pin _I2C_sda; + const Pin _I2C_scl; + const Pin _SPI_mosi; + const Pin _SPI_miso; + const Pin _SPI_clk; + const Pin _SPI_sdCard_cs; +}; + +#endif //PINMAPPING_H diff --git a/src/app/RtcManager.cpp b/src/app/RtcManager.cpp new file mode 100644 index 0000000..00de00d --- /dev/null +++ b/src/app/RtcManager.cpp @@ -0,0 +1,33 @@ +#include "RtcManager.h" + +RtcManager::RtcManager(const RTC_DS3231 &rtc) : _rtcRef(rtc) +{ +} + +DateTime RtcManager::getDateTime() const +{ + return _rtcRef.now(); +} + +void RtcManager::setDate(const DateTime dateTime) +{ + DateTime timePart = _rtcRef.now(); + _rtcRef.adjust(DateTime(dateTime.year(), dateTime.month(), dateTime.day(), timePart.hour(), timePart.minute(), timePart.second())); +} + +void RtcManager::setTime(const DateTime dateTime) +{ + DateTime datePart = _rtcRef.now(); + _rtcRef.adjust(DateTime(datePart.year(), datePart.month(), datePart.day(), dateTime.hour(), dateTime.minute(), dateTime.second())); +} + +void RtcManager::setDateTime(const DateTime dateTime) +{ + _rtcRef.adjust(dateTime); +} + +boolean RtcManager::hasLostPower() const +{ + return _rtcRef.lostPower(); +} + diff --git a/src/app/RtcManager.h b/src/app/RtcManager.h new file mode 100644 index 0000000..180b317 --- /dev/null +++ b/src/app/RtcManager.h @@ -0,0 +1,20 @@ +#ifndef RTCMANAGER_H +#define RTCMANAGER_H +#include + +class RtcManager +{ + friend class SAB; + public: + DateTime getDateTime() const; + void setDate(const DateTime dateTime); + void setTime(const DateTime dateTime); + void setDateTime(const DateTime dateTime); + boolean hasLostPower() const; + protected: + RtcManager(const RTC_DS3231 &rtc); + private: + const RTC_DS3231 &_rtcRef; +}; + +#endif //RTCMANAGER_H diff --git a/src/app/SAB.cpp b/src/app/SAB.cpp new file mode 100644 index 0000000..1a27693 --- /dev/null +++ b/src/app/SAB.cpp @@ -0,0 +1,49 @@ +#include "SAB.h" + +SAB::SAB() : _screenConfig(128, 64, 0x3C), _display(_screenConfig.getWidth(), _screenConfig.getHeight(), &Wire), _screenManager(_display), _rtc(), _rtcManager(_rtc), _error(0) +{ + Serial.begin(9600); + delay(200); + + //We initialize the pins for the I2C communication + Wire.begin(_pinConfig.getI2C_sda(), _pinConfig.getI2C_scl()); + if(!_rtc.begin()) _error |= RTC_BEGIN_ERR; + if(!_display.begin(SSD1306_SWITCHCAPVCC, _screenConfig.getAddress())) _error |= DISP_BEGIN_ERR; +} + +SAB::SAB(const PinMapping pinConfig, const ScreenConfig screenConfig) : _pinConfig(pinConfig), _screenConfig(screenConfig), _display(_screenConfig.getWidth(), _screenConfig.getHeight(), &Wire), _screenManager(_display), _rtc(), _rtcManager(_rtc), _error(0) +{ + Serial.begin(9600); + delay(200); + + //We initialize the pins for the I2C communication + Wire.begin(_pinConfig.getI2C_sda(), _pinConfig.getI2C_scl()); + if(!_rtc.begin()) _error |= RTC_BEGIN_ERR; + if(!_display.begin(SSD1306_SWITCHCAPVCC, _screenConfig.getAddress())) _error |= DISP_BEGIN_ERR; +} + +ScreenManager& SAB::getScreenManager() +{ + return _screenManager; +} + +const RtcManager& SAB::getRtcManager() const +{ + return _rtcManager; +} + +ScreenConfig SAB::getScreenConfig() const +{ + return _screenConfig; +} + +PinMapping SAB::getPinConfig() const +{ + return _pinConfig; +} + +unsigned char SAB::getError() const +{ + return _error; +} + diff --git a/src/app/SAB.h b/src/app/SAB.h new file mode 100644 index 0000000..4a30c0e --- /dev/null +++ b/src/app/SAB.h @@ -0,0 +1,34 @@ +#ifndef SAB_H +#define SAB_H +#include "PinMapping.h" +#include "ScreenConfig.h" +#include "RtcManager.h" +#include "ScreenManager.h" +#include +#include + +class SAB +{ + public: + SAB(); + SAB(const PinMapping pinConfig, const ScreenConfig screenConfig); + + ScreenManager& getScreenManager(); + const RtcManager& getRtcManager() const; + ScreenConfig getScreenConfig() const; + PinMapping getPinConfig() const; + + unsigned char getError() const; + private: + const PinMapping _pinConfig; + const ScreenConfig _screenConfig; + + Adafruit_SSD1306 _display; + ScreenManager _screenManager; + const RTC_DS3231 _rtc; + const RtcManager _rtcManager; + + unsigned char _error; +}; + +#endif //SAB_H diff --git a/src/app/ScreenConfig.cpp b/src/app/ScreenConfig.cpp new file mode 100644 index 0000000..336d238 --- /dev/null +++ b/src/app/ScreenConfig.cpp @@ -0,0 +1,24 @@ +#include "ScreenConfig.h" + +ScreenConfig::ScreenConfig(const unsigned char width, const unsigned char height, const unsigned char address) : +_width(width), +_height(height), +_address(address) +{ +} + +unsigned char ScreenConfig::getWidth() const +{ + return _width; +} + +unsigned char ScreenConfig::getHeight() const +{ + return _height; +} + +unsigned char ScreenConfig::getAddress() const +{ + return _address; +} + diff --git a/src/app/ScreenConfig.h b/src/app/ScreenConfig.h new file mode 100644 index 0000000..43ce15b --- /dev/null +++ b/src/app/ScreenConfig.h @@ -0,0 +1,17 @@ +#ifndef SCREENCONFIG_H +#define SCREENCONFIG_H + +class ScreenConfig +{ + public: + ScreenConfig(const unsigned char width, const unsigned char height, const unsigned char address); + unsigned char getWidth() const; + unsigned char getHeight() const; + unsigned char getAddress() const; + private: + const unsigned char _width; + const unsigned char _height; + const unsigned char _address; +}; + +#endif //SCREENCONFIG_H diff --git a/src/app/ScreenManager.cpp b/src/app/ScreenManager.cpp new file mode 100644 index 0000000..1b54fd0 --- /dev/null +++ b/src/app/ScreenManager.cpp @@ -0,0 +1,56 @@ +#include "ScreenManager.h" + +ScreenManager::ScreenManager(Adafruit_SSD1306 &display) : _displayRef(display) +{ + _viewLinkedList = (ViewLinkedList) createEmptyList(); +} + +boolean ScreenManager::addView(boolean (*viewLogicFunction)(Adafruit_SSD1306&, void*), void *pData, const unsigned char UID) +{ + ViewLink viewLink ={viewLogicFunction, pData, UID, NULL}; + addNewLinkAtTheEnd(&_viewLinkedList, viewLink); +} + +void *ScreenManager::createEmptyList() +{ + return NULL; +} + +boolean ScreenManager::addNewLinkAtTheEnd(ViewLinkedList *viewLinkedList, ViewLink viewLink) +{ + ViewLink *newViewLink = (ViewLink*) malloc(sizeof(ViewLink)); + if(newViewLink == NULL) + { + _error |= MALLOC_ERR; + return false; + } + + //Because of the const member + memcpy(newViewLink, &viewLink, sizeof(*newViewLink)); + + /*TO DO*/ + + return true; +} + +boolean ScreenManager::isListEmpty(ViewLinkedList viewLinkedList) +{ + return viewLinkedList == NULL; +} + +unsigned char ScreenManager::getError() const +{ + return _error; +} + +void ScreenManager::iterateThroughList() +{ + Serial.println("Lets go through"); + while(!isListEmpty(_viewLinkedList)) + { + Serial.print("UID : ");Serial.println(_viewLinkedList->UID); + _viewLinkedList = _viewLinkedList->next; + } +} + + diff --git a/src/app/ScreenManager.h b/src/app/ScreenManager.h new file mode 100644 index 0000000..7220ba5 --- /dev/null +++ b/src/app/ScreenManager.h @@ -0,0 +1,28 @@ +#ifndef SCREENMANAGER_H +#define SCREENMANAGER_H +#include "definition.h" +#include + +class ScreenManager +{ + friend class SAB; + public: + boolean addView(boolean (*viewLogicFunction)(Adafruit_SSD1306&, void*), void *pData, const unsigned char UID); + unsigned char getError() const; + + + void iterateThroughList(); + + protected: + ScreenManager(Adafruit_SSD1306 &display); + private: + void *createEmptyList(); + boolean addNewLinkAtTheEnd(ViewLinkedList *viewLinkedList, ViewLink viewLink); + boolean isListEmpty(ViewLinkedList viewLinkedList); + + Adafruit_SSD1306 &_displayRef; + ViewLinkedList _viewLinkedList; + unsigned char _error; +}; + +#endif //SCREENMANAGER_H diff --git a/src/app/app.ino b/src/app/app.ino index c8d23d5..2442c41 100644 --- a/src/app/app.ino +++ b/src/app/app.ino @@ -1,7 +1,21 @@ +#include "definition.h" +#include "PinMapping.h" +#include "SAB.h" +#include "views.h" + +#define DEBUG + +SAB sab; void setup() { // put your setup code here, to run once: - + Serial.println("Starting"); + sab.getScreenManager().addView(&(view_1), NULL,9); + sab.getScreenManager().addView(&(view_1), NULL, 3); + sab.getScreenManager().addView(&(view_1), NULL, 6); + sab.getScreenManager().addView(&(view_1), NULL, 7); + sab.getScreenManager().iterateThroughList(); + Serial.println("fin"); } void loop() { diff --git a/src/app/definition.h b/src/app/definition.h new file mode 100644 index 0000000..41ef425 --- /dev/null +++ b/src/app/definition.h @@ -0,0 +1,37 @@ +#ifndef DEFINITION_H +#define DEFINITION_H + +#include +#include + +enum Pin { GPIO_0 = 0, + GPIO_1_TX = 1, + GPIO_2 = 2, + GPIO_3_RX = 3, + GPIO_4_SDA = 4, + GPIO_5_SCL = 5, + GPIO_10 = 10, + GPIO_12_MISO = 12, + GPIO_13_MOSI = 13, + GPIO_14_CLK = 14, + GPIO_15 = 15, + GPIO_16 = 16, + ADC = A0, + DEFAULT_PIN = -1}; + +#define RTC_BEGIN_ERR B00000001 +#define DISP_BEGIN_ERR B00000010 + +#define MALLOC_ERR B00000001 + +//Data structure for the view handling +typedef struct viewLink{ + boolean (*viewLogicFunction)(Adafruit_SSD1306&, void*); + void *pData; + const unsigned char UID; + + viewLink *next; +} ViewLink, *ViewLinkedList; + + +#endif //DEFINITION_H diff --git a/src/app/views.cpp b/src/app/views.cpp new file mode 100644 index 0000000..fbf1368 --- /dev/null +++ b/src/app/views.cpp @@ -0,0 +1,7 @@ +#include "views.h" + +boolean view_1(Adafruit_SSD1306 &display, void *pData) +{ + display.clearDisplay(); +} + diff --git a/src/app/views.h b/src/app/views.h new file mode 100644 index 0000000..9788f57 --- /dev/null +++ b/src/app/views.h @@ -0,0 +1,7 @@ +#ifndef VIEWS_H +#define VIEWS_H +#include + +boolean view_1(Adafruit_SSD1306 &display, void *pData); + +#endif //VIEWS_H