From 1778a211bb0a27a2d6b6df21c58ab7659cf488e7 Mon Sep 17 00:00:00 2001 From: waldluis Date: Thu, 17 Aug 2023 10:37:00 +0200 Subject: [PATCH] Raspy comment update, Robot UML update --- documentation/Robot.docx | Bin 487343 -> 488577 bytes documentation/SmartGardeningProjekt.mdj | 606 +++++++++++++----------- software/roboter/raspy/functions.py | 9 +- software/roboter/raspy/raspy_sensors.py | 6 +- 4 files changed, 333 insertions(+), 288 deletions(-) diff --git a/documentation/Robot.docx b/documentation/Robot.docx index 45c7b277fadca3a2b9e67ff5aa741a7c3e47dc16..e3d84c2b2cba7186b64dc69cfb609088046a715f 100644 GIT binary patch delta 30730 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 O05rI8hxfoL#Qy`aT|ngk delta 29540 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 Iff<7Rf9*U~3jhEB diff --git a/documentation/SmartGardeningProjekt.mdj b/documentation/SmartGardeningProjekt.mdj index 557ecd6..ccbb515 100644 --- a/documentation/SmartGardeningProjekt.mdj +++ b/documentation/SmartGardeningProjekt.mdj @@ -61,9 +61,9 @@ "$ref": "AAAAAAGHA6OtsNB4UQo=" }, "font": "Arial;13;0", - "left": 40.72998046875, + "left": 38.55908203125, "top": 13, - "width": 58.07177734375, + "width": 52.9873046875, "height": 13, "text": "Messfahrt" }, @@ -76,7 +76,7 @@ "font": "Arial;13;1", "left": 21, "top": 13, - "width": 14.72998046875, + "width": 12.55908203125, "height": 13, "text": "sd" } @@ -2196,9 +2196,9 @@ "$ref": "AAAAAAGHMigXU5G+9zU=" }, "font": "Arial;13;0", - "left": 48.72998046875, + "left": 46.55908203125, "top": 13, - "width": 108.65625, + "width": 97.73828125, "height": 13, "text": "Raspy-ev3-Thread" }, @@ -2211,7 +2211,7 @@ "font": "Arial;13;1", "left": 29, "top": 13, - "width": 14.72998046875, + "width": 12.55908203125, "height": 13, "text": "sd" } @@ -10237,7 +10237,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -392, + "left": -360, "top": -128, "height": 13 }, @@ -10248,7 +10248,7 @@ "$ref": "AAAAAAGH3FFPcavXEQo=" }, "font": "Arial;13;1", - "left": 357, + "left": 373, "top": 407, "width": 182, "height": 13, @@ -10262,7 +10262,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -392, + "left": -360, "top": -128, "width": 122.103515625, "height": 13, @@ -10276,14 +10276,14 @@ }, "visible": false, "font": "Arial;13;0", - "left": -392, + "left": -360, "top": -128, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 352, + "left": 368, "top": 400, "width": 192, "height": 25, @@ -10310,7 +10310,7 @@ "$ref": "AAAAAAGH3FFPcavUI4g=" }, "font": "Arial;13;0", - "left": 352, + "left": 368, "top": 425, "width": 192, "height": 10 @@ -10325,7 +10325,7 @@ "$ref": "AAAAAAGH3FFPcavUI4g=" }, "font": "Arial;13;0", - "left": 352, + "left": 368, "top": 435, "width": 192, "height": 10 @@ -10341,7 +10341,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -196, + "left": -180, "top": -64, "width": 10, "height": 10 @@ -10357,7 +10357,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -196, + "left": -180, "top": -64, "width": 10, "height": 10 @@ -10365,7 +10365,7 @@ ], "font": "Arial;13;0", "containerChangeable": true, - "left": 352, + "left": 368, "top": 400, "width": 192, "height": 264, @@ -11766,7 +11766,8 @@ "_parent": { "$ref": "AAAAAAGH3EMsNkqHBBI=" }, - "name": "userdata" + "name": "userdata", + "type": "" }, { "_type": "UMLParameter", @@ -11774,7 +11775,8 @@ "_parent": { "$ref": "AAAAAAGH3EMsNkqHBBI=" }, - "name": "message" + "name": "message", + "type": "" } ] }, @@ -11801,7 +11803,8 @@ "_parent": { "$ref": "AAAAAAGJAjEaTtNHMvw=" }, - "name": "userdata" + "name": "userdata", + "type": "" }, { "_type": "UMLParameter", @@ -11809,7 +11812,8 @@ "_parent": { "$ref": "AAAAAAGJAjEaTtNHMvw=" }, - "name": "message" + "name": "message", + "type": "" } ] }, @@ -11836,7 +11840,8 @@ "_parent": { "$ref": "AAAAAAGH3EMxj0qorZA=" }, - "name": "userdata" + "name": "userdata", + "type": "" }, { "_type": "UMLParameter", @@ -11844,7 +11849,8 @@ "_parent": { "$ref": "AAAAAAGH3EMxj0qorZA=" }, - "name": "message" + "name": "message", + "type": "" } ] }, @@ -11871,7 +11877,8 @@ "_parent": { "$ref": "AAAAAAGH3EM1BkrJ200=" }, - "name": "userdata" + "name": "userdata", + "type": "" }, { "_type": "UMLParameter", @@ -11879,7 +11886,8 @@ "_parent": { "$ref": "AAAAAAGH3EM1BkrJ200=" }, - "name": "message" + "name": "message", + "type": "" } ] }, @@ -12002,7 +12010,7 @@ "_parent": { "$ref": "AAAAAAGH3D2ih0dk35I=" }, - "name": "Roboter", + "name": "EV3-Roboter", "operations": [ { "_type": "UMLOperation", @@ -12306,7 +12314,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -1521, + "left": -1409, "top": -543, "height": 13 }, @@ -12317,11 +12325,11 @@ "$ref": "AAAAAAGH4UEkiyY0BiY=" }, "font": "Arial;13;1", - "left": 181, + "left": 237, "top": 63, - "width": 348.638671875, + "width": 295, "height": 13, - "text": "mainProg" + "text": "RaspberryPi" }, { "_type": "LabelView", @@ -12331,7 +12339,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -1521, + "left": -1409, "top": -543, "width": 122.103515625, "height": 13, @@ -12345,16 +12353,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": -1521, + "left": -1409, "top": -543, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 176, + "left": 232, "top": 56, - "width": 358.638671875, + "width": 305, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAGH4UEkiyY1rO0=" @@ -12379,9 +12387,9 @@ "$ref": "AAAAAAGH3D4F30e9Sco=" }, "font": "Arial;13;0", - "left": 176, + "left": 232, "top": 81, - "width": 358.638671875, + "width": 305, "height": 10 }, { @@ -12394,6 +12402,23 @@ "$ref": "AAAAAAGH3D4F30e9Sco=" }, "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGH4UPAcCwkWuI=", + "_parent": { + "$ref": "AAAAAAGH4UEkiyY61xw=" + }, + "model": { + "$ref": "AAAAAAGH4UPAXywhJ1c=" + }, + "font": "Arial;13;0", + "left": 237, + "top": 96, + "width": 295, + "height": 13, + "text": "+main()", + "horizontalAlignment": 0 + }, { "_type": "UMLOperationView", "_id": "AAAAAAGH4UEkiyY7ZTQ=", @@ -12404,13 +12429,85 @@ "$ref": "AAAAAAGH3EEdiklS30M=" }, "font": "Arial;13;0", - "left": 181, - "top": 96, - "width": 348.638671875, + "left": 237, + "top": 111, + "width": 295, "height": 13, "text": "+on_connect(client: mqtt.Client, userdata, flags, rc)", "horizontalAlignment": 0 }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGH4UEkiyY+seY=", + "_parent": { + "$ref": "AAAAAAGH4UEkiyY61xw=" + }, + "model": { + "$ref": "AAAAAAGH3EMsNkqHBBI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 293, + "top": 111, + "width": 348.638671875, + "height": 13, + "text": "+drive_plant(client: mqtt.Client, userdata, message)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGJtaEp8wgwGw0=", + "_parent": { + "$ref": "AAAAAAGH4UEkiyY61xw=" + }, + "model": { + "$ref": "AAAAAAGJAjEaTtNHMvw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 293, + "top": 126, + "width": 350.81591796875, + "height": 13, + "text": "+drive_plant_all(client: mqtt.Client, userdata, message)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGH4UEkiyY/ce4=", + "_parent": { + "$ref": "AAAAAAGH4UEkiyY61xw=" + }, + "model": { + "$ref": "AAAAAAGH3EMxj0qorZA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 293, + "top": 111, + "width": 348.638671875, + "height": 13, + "text": "+get_position(client: mqtt.Client, userdata, message)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGH4UEkiyZALIQ=", + "_parent": { + "$ref": "AAAAAAGH4UEkiyY61xw=" + }, + "model": { + "$ref": "AAAAAAGH3EM1BkrJ200=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 293, + "top": 111, + "width": 348.638671875, + "height": 13, + "text": "+get_batteryStatus(client: mqtt.Client, userdata, message)", + "horizontalAlignment": 0 + }, { "_type": "UMLOperationView", "_id": "AAAAAAGH4UEkiyY8ftw=", @@ -12422,7 +12519,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 181, + "left": 293, "top": 111, "width": 348.638671875, "height": 13, @@ -12440,7 +12537,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 181, + "left": 293, "top": 111, "width": 348.638671875, "height": 13, @@ -12449,80 +12546,27 @@ }, { "_type": "UMLOperationView", - "_id": "AAAAAAGH4UEkiyY+seY=", + "_id": "AAAAAAGJtaEp+Qgz1WI=", "_parent": { "$ref": "AAAAAAGH4UEkiyY61xw=" }, "model": { - "$ref": "AAAAAAGH3EMsNkqHBBI=" + "$ref": "AAAAAAGJAjP+sRpxSo8=" }, "visible": false, "font": "Arial;13;0", - "left": 181, - "top": 111, - "width": 348.638671875, + "left": 293, + "top": 126, + "width": 350.81591796875, "height": 13, - "text": "+drive_plant(clients: mqtt.Client, userdata, message)", - "horizontalAlignment": 0 - }, - { - "_type": "UMLOperationView", - "_id": "AAAAAAGH4UEkiyY/ce4=", - "_parent": { - "$ref": "AAAAAAGH4UEkiyY61xw=" - }, - "model": { - "$ref": "AAAAAAGH3EMxj0qorZA=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 181, - "top": 111, - "width": 348.638671875, - "height": 13, - "text": "+get_position(clients: mqtt.Client, userdata, message)", - "horizontalAlignment": 0 - }, - { - "_type": "UMLOperationView", - "_id": "AAAAAAGH4UEkiyZALIQ=", - "_parent": { - "$ref": "AAAAAAGH4UEkiyY61xw=" - }, - "model": { - "$ref": "AAAAAAGH3EM1BkrJ200=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 181, - "top": 111, - "width": 348.638671875, - "height": 13, - "text": "+get_batteryStatus(clients: mqtt.Clients, userdata, message)", - "horizontalAlignment": 0 - }, - { - "_type": "UMLOperationView", - "_id": "AAAAAAGH4UPAcCwkWuI=", - "_parent": { - "$ref": "AAAAAAGH4UEkiyY61xw=" - }, - "model": { - "$ref": "AAAAAAGH4UPAXywhJ1c=" - }, - "font": "Arial;13;0", - "left": 181, - "top": 111, - "width": 348.638671875, - "height": 13, - "text": "+main()", + "text": "+drive_plant_all_thread(plantIDs, actionID, client: mqtt.client)", "horizontalAlignment": 0 } ], "font": "Arial;13;0", - "left": 176, + "left": 232, "top": 91, - "width": 358.638671875, + "width": 305, "height": 38 }, { @@ -12536,7 +12580,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -840, + "left": -784, "top": -128, "width": 10, "height": 10 @@ -12552,7 +12596,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -840, + "left": -784, "top": -128, "width": 10, "height": 10 @@ -12560,10 +12604,10 @@ ], "font": "Arial;13;0", "containerChangeable": true, - "left": 176, + "left": 232, "top": 56, - "width": 358.638671875, - "height": 264, + "width": 305, + "height": 169, "nameCompartment": { "$ref": "AAAAAAGH4UEkiyY0BiY=" }, @@ -12608,7 +12652,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 528, + "left": 64, "top": -287, "height": 13 }, @@ -12619,7 +12663,7 @@ "$ref": "AAAAAAGH4UFHSSjv7mU=" }, "font": "Arial;13;1", - "left": 1181, + "left": 949, "top": 63, "width": 206, "height": 13, @@ -12633,7 +12677,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 528, + "left": 64, "top": -287, "width": 122.103515625, "height": 13, @@ -12647,14 +12691,14 @@ }, "visible": false, "font": "Arial;13;0", - "left": 528, + "left": 64, "top": -287, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 1176, + "left": 944, "top": 56, "width": 216, "height": 25, @@ -12681,7 +12725,7 @@ "$ref": "AAAAAAGH3FRA/NhynDA=" }, "font": "Arial;13;0", - "left": 1176, + "left": 944, "top": 81, "width": 216, "height": 10 @@ -12696,57 +12740,6 @@ "$ref": "AAAAAAGH3FRA/NhynDA=" }, "subViews": [ - { - "_type": "UMLOperationView", - "_id": "AAAAAAGH4UFHSSj3p18=", - "_parent": { - "$ref": "AAAAAAGH4UFHSSj1vbw=" - }, - "model": { - "$ref": "AAAAAAGH3FSgmd+KRe4=" - }, - "font": "Arial;13;0", - "left": 1181, - "top": 96, - "width": 206, - "height": 13, - "text": "+readSesnors(sensorData)", - "horizontalAlignment": 0 - }, - { - "_type": "UMLOperationView", - "_id": "AAAAAAGH4UFHSSj4LP4=", - "_parent": { - "$ref": "AAAAAAGH4UFHSSj1vbw=" - }, - "model": { - "$ref": "AAAAAAGH3FUGTeL1xTE=" - }, - "font": "Arial;13;0", - "left": 1181, - "top": 111, - "width": 206, - "height": 13, - "text": "+takePicture()", - "horizontalAlignment": 0 - }, - { - "_type": "UMLOperationView", - "_id": "AAAAAAGH4UFHSSj5kJA=", - "_parent": { - "$ref": "AAAAAAGH4UFHSSj1vbw=" - }, - "model": { - "$ref": "AAAAAAGH3FWOReapIIQ=" - }, - "font": "Arial;13;0", - "left": 1181, - "top": 126, - "width": 206, - "height": 13, - "text": "+readPosition(): Position", - "horizontalAlignment": 0 - }, { "_type": "UMLOperationView", "_id": "AAAAAAGH+qAzW25pf0M=", @@ -12757,8 +12750,8 @@ "$ref": "AAAAAAGH+qAzBm5mP44=" }, "font": "Arial;13;0", - "left": 1181, - "top": 141, + "left": 949, + "top": 96, "width": 206, "height": 13, "text": "+readDHT22(): float; float", @@ -12774,8 +12767,8 @@ "$ref": "AAAAAAGH+qC2A2+bFng=" }, "font": "Arial;13;0", - "left": 1181, - "top": 156, + "left": 949, + "top": 111, "width": 206, "height": 13, "text": "+readTSL2561(): int", @@ -12791,16 +12784,67 @@ "$ref": "AAAAAAGIca3ek0K+EG8=" }, "font": "Arial;13;0", - "left": 1181, - "top": 171, + "left": 949, + "top": 126, "width": 206, "height": 13, "text": "+readMCP3008(): float", "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGH4UFHSSj3p18=", + "_parent": { + "$ref": "AAAAAAGH4UFHSSj1vbw=" + }, + "model": { + "$ref": "AAAAAAGH3FSgmd+KRe4=" + }, + "font": "Arial;13;0", + "left": 949, + "top": 141, + "width": 206, + "height": 13, + "text": "+readSesnors(sensorData)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGH4UFHSSj4LP4=", + "_parent": { + "$ref": "AAAAAAGH4UFHSSj1vbw=" + }, + "model": { + "$ref": "AAAAAAGH3FUGTeL1xTE=" + }, + "font": "Arial;13;0", + "left": 949, + "top": 156, + "width": 206, + "height": 13, + "text": "+takePicture()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGH4UFHSSj5kJA=", + "_parent": { + "$ref": "AAAAAAGH4UFHSSj1vbw=" + }, + "model": { + "$ref": "AAAAAAGH3FWOReapIIQ=" + }, + "font": "Arial;13;0", + "left": 949, + "top": 171, + "width": 206, + "height": 13, + "text": "+readPosition(): Position", + "horizontalAlignment": 0 } ], "font": "Arial;13;0", - "left": 1176, + "left": 944, "top": 91, "width": 216, "height": 98 @@ -12816,7 +12860,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -16, + "left": -248, "width": 10, "height": 10 }, @@ -12831,17 +12875,17 @@ }, "visible": false, "font": "Arial;13;0", - "left": -16, + "left": -248, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 1176, + "left": 944, "top": 56, "width": 216, - "height": 264, + "height": 169, "nameCompartment": { "$ref": "AAAAAAGH4UFHSSjv7mU=" }, @@ -12886,8 +12930,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -1074, - "top": -87, + "left": -1138, + "top": -487, "height": 13 }, { @@ -12897,11 +12941,11 @@ "$ref": "AAAAAAGH4UFt8isPshg=" }, "font": "Arial;13;1", - "left": 485, - "top": 447, + "left": 453, + "top": 247, "width": 191.8388671875, "height": 13, - "text": "Roboter" + "text": "EV3-Roboter" }, { "_type": "LabelView", @@ -12911,8 +12955,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -1074, - "top": -87, + "left": -1138, + "top": -487, "width": 122.103515625, "height": 13, "text": "(from Collaboration1)" @@ -12925,15 +12969,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": -1074, - "top": -87, + "left": -1138, + "top": -487, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 480, - "top": 440, + "left": 448, + "top": 240, "width": 201.8388671875, "height": 25, "stereotypeLabel": { @@ -12959,8 +13003,8 @@ "$ref": "AAAAAAGH3D4gT0fn5xE=" }, "font": "Arial;13;0", - "left": 480, - "top": 465, + "left": 448, + "top": 265, "width": 201.8388671875, "height": 10 }, @@ -12984,8 +13028,8 @@ "$ref": "AAAAAAGH3D5JLkgRdhU=" }, "font": "Arial;13;0", - "left": 485, - "top": 480, + "left": 453, + "top": 280, "width": 191.8388671875, "height": 13, "text": "+plant_1.py()", @@ -13001,8 +13045,8 @@ "$ref": "AAAAAAGH3D7drkgY+xE=" }, "font": "Arial;13;0", - "left": 485, - "top": 495, + "left": 453, + "top": 295, "width": 191.8388671875, "height": 13, "text": "+plant_2.py()", @@ -13018,8 +13062,8 @@ "$ref": "AAAAAAGH3D757kgfr+s=" }, "font": "Arial;13;0", - "left": 485, - "top": 510, + "left": 453, + "top": 310, "width": 191.8388671875, "height": 13, "text": "+plant_3.py()", @@ -13035,8 +13079,8 @@ "$ref": "AAAAAAGH3D79XUglW/0=" }, "font": "Arial;13;0", - "left": 485, - "top": 525, + "left": 453, + "top": 325, "width": 191.8388671875, "height": 13, "text": "+plant_4.py()", @@ -13052,8 +13096,8 @@ "$ref": "AAAAAAGH3D8Fv0gr7us=" }, "font": "Arial;13;0", - "left": 485, - "top": 540, + "left": 453, + "top": 340, "width": 191.8388671875, "height": 13, "text": "+plant_5.py()", @@ -13069,8 +13113,8 @@ "$ref": "AAAAAAGH3D8JfkgxRkw=" }, "font": "Arial;13;0", - "left": 485, - "top": 555, + "left": 453, + "top": 355, "width": 191.8388671875, "height": 13, "text": "+plant_6.py()", @@ -13086,8 +13130,8 @@ "$ref": "AAAAAAGH3D8NZUg3DpE=" }, "font": "Arial;13;0", - "left": 485, - "top": 570, + "left": 453, + "top": 370, "width": 191.8388671875, "height": 13, "text": "+drive_back.py(plantNumber: int)", @@ -13103,8 +13147,8 @@ "$ref": "AAAAAAGIcawCCjubWmE=" }, "font": "Arial;13;0", - "left": 485, - "top": 585, + "left": 453, + "top": 385, "width": 191.8388671875, "height": 13, "text": "+drive_arm.py(plantNumber)", @@ -13120,8 +13164,8 @@ "$ref": "AAAAAAGIcaycHD2RFTc=" }, "font": "Arial;13;0", - "left": 485, - "top": 600, + "left": 453, + "top": 400, "width": 191.8388671875, "height": 13, "text": "+drive_back_straight.py()", @@ -13137,8 +13181,8 @@ "$ref": "AAAAAAGIcaziEz6gmiQ=" }, "font": "Arial;13;0", - "left": 485, - "top": 615, + "left": 453, + "top": 415, "width": 191.8388671875, "height": 13, "text": "+drive_plant.py(plantNumber)", @@ -13146,8 +13190,8 @@ } ], "font": "Arial;13;0", - "left": 480, - "top": 475, + "left": 448, + "top": 275, "width": 201.8388671875, "height": 158 }, @@ -13162,8 +13206,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -619, - "top": -96, + "left": -651, + "top": -296, "width": 10, "height": 10 }, @@ -13178,18 +13222,18 @@ }, "visible": false, "font": "Arial;13;0", - "left": -619, - "top": -96, + "left": -651, + "top": -296, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 480, - "top": 440, + "left": 448, + "top": 240, "width": 201.8388671875, - "height": 264, + "height": 201, "nameCompartment": { "$ref": "AAAAAAGH4UFt8isPshg=" }, @@ -13234,7 +13278,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -144, + "left": -336, "top": -32, "height": 13 }, @@ -13245,7 +13289,7 @@ "$ref": "AAAAAAGH4UHyHitGPjs=" }, "font": "Arial;13;1", - "left": 669, + "left": 573, "top": 63, "width": 348.638671875, "height": 13, @@ -13259,7 +13303,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -144, + "left": -336, "top": -32, "width": 80.9072265625, "height": 13, @@ -13273,14 +13317,14 @@ }, "visible": false, "font": "Arial;13;0", - "left": -144, + "left": -336, "top": -32, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 664, + "left": 568, "top": 56, "width": 358.638671875, "height": 25, @@ -13307,7 +13351,7 @@ "$ref": "AAAAAAGH4UHyHStDgNY=" }, "font": "Arial;13;0", - "left": 664, + "left": 568, "top": 81, "width": 358.638671875, "height": 10 @@ -13332,7 +13376,7 @@ "$ref": "AAAAAAGH4UKiQyvayxg=" }, "font": "Arial;13;0", - "left": 669, + "left": 573, "top": 96, "width": 348.638671875, "height": 13, @@ -13349,7 +13393,7 @@ "$ref": "AAAAAAGH4ULP+ivopF4=" }, "font": "Arial;13;0", - "left": 669, + "left": 573, "top": 111, "width": 348.638671875, "height": 13, @@ -13366,7 +13410,7 @@ "$ref": "AAAAAAGIcak45DEvXBY=" }, "font": "Arial;13;0", - "left": 669, + "left": 573, "top": 126, "width": 348.638671875, "height": 13, @@ -13383,7 +13427,7 @@ "$ref": "AAAAAAGH4UL+iiv2rNQ=" }, "font": "Arial;13;0", - "left": 669, + "left": 573, "top": 141, "width": 348.638671875, "height": 13, @@ -13400,7 +13444,7 @@ "$ref": "AAAAAAGIcaoT1zPHj/M=" }, "font": "Arial;13;0", - "left": 669, + "left": 573, "top": 156, "width": 348.638671875, "height": 13, @@ -13417,7 +13461,7 @@ "$ref": "AAAAAAGH4UNkjywE/3M=" }, "font": "Arial;13;0", - "left": 669, + "left": 573, "top": 171, "width": 348.638671875, "height": 13, @@ -13434,7 +13478,7 @@ "$ref": "AAAAAAGH4UN7RywRjek=" }, "font": "Arial;13;0", - "left": 669, + "left": 573, "top": 186, "width": 348.638671875, "height": 13, @@ -13451,7 +13495,7 @@ "$ref": "AAAAAAGIcash3zZSHnI=" }, "font": "Arial;13;0", - "left": 669, + "left": 573, "top": 201, "width": 348.638671875, "height": 13, @@ -13460,7 +13504,7 @@ } ], "font": "Arial;13;0", - "left": 664, + "left": 568, "top": 91, "width": 358.638671875, "height": 128 @@ -13476,7 +13520,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -72, + "left": -168, "top": -16, "width": 10, "height": 10 @@ -13492,7 +13536,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": -72, + "left": -168, "top": -16, "width": 10, "height": 10 @@ -13500,10 +13544,10 @@ ], "font": "Arial;13;0", "containerChangeable": true, - "left": 664, + "left": 568, "top": 56, "width": 358.638671875, - "height": 264, + "height": 169, "nameCompartment": { "$ref": "AAAAAAGH4UHyHitGPjs=" }, @@ -13541,7 +13585,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 599, + "left": 552, "top": 166, "height": 13, "alpha": 1.5707963267948966, @@ -13562,7 +13606,7 @@ }, "visible": null, "font": "Arial;13;0", - "left": 599, + "left": 552, "top": 151, "height": 13, "alpha": 1.5707963267948966, @@ -13583,7 +13627,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 599, + "left": 552, "top": 196, "height": 13, "alpha": -1.5707963267948966, @@ -13604,7 +13648,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 559, + "left": 561, "top": 166, "height": 13, "alpha": 0.5235987755982988, @@ -13625,7 +13669,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 562, + "left": 564, "top": 152, "height": 13, "alpha": 0.7853981633974483, @@ -13646,7 +13690,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 555, + "left": 557, "top": 193, "height": 13, "alpha": -0.5235987755982988, @@ -13667,7 +13711,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 638, + "left": 542, "top": 166, "height": 13, "alpha": -0.5235987755982988, @@ -13687,7 +13731,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 635, + "left": 539, "top": 152, "height": 13, "alpha": -0.7853981633974483, @@ -13707,7 +13751,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 642, + "left": 546, "top": 193, "height": 13, "alpha": 0.5235987755982988, @@ -13752,7 +13796,7 @@ "tail": { "$ref": "AAAAAAGH4UEkiyYzZg4=" }, - "points": "534:187;664:187", + "points": "536:187;568:187", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGH4UQbuSwvHpg=" @@ -13810,7 +13854,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1099, + "left": 935, "top": 166, "height": 13, "alpha": 1.5707963267948966, @@ -13831,7 +13875,7 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1099, + "left": 935, "top": 151, "height": 13, "alpha": 1.5707963267948966, @@ -13852,7 +13896,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1099, + "left": 935, "top": 196, "height": 13, "alpha": -1.5707963267948966, @@ -13873,7 +13917,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1047, + "left": 951, "top": 166, "height": 13, "alpha": 0.5235987755982988, @@ -13894,7 +13938,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1050, + "left": 954, "top": 152, "height": 13, "alpha": 0.7853981633974483, @@ -13915,7 +13959,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1043, + "left": 947, "top": 193, "height": 13, "alpha": -0.5235987755982988, @@ -13936,7 +13980,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1150, + "left": 918, "top": 166, "height": 13, "alpha": -0.5235987755982988, @@ -13956,7 +14000,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1147, + "left": 915, "top": 152, "height": 13, "alpha": -0.7853981633974483, @@ -13976,7 +14020,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1154, + "left": 922, "top": 193, "height": 13, "alpha": 0.5235987755982988, @@ -14021,7 +14065,7 @@ "tail": { "$ref": "AAAAAAGH4UHyHitFzP8=" }, - "points": "1022:187;1176:187", + "points": "926:187;944:187", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGH4UQrASzhzR0=" @@ -14080,7 +14124,7 @@ "visible": false, "font": "Arial;13;0", "left": 353, - "top": 555, + "top": 323, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -14101,7 +14145,7 @@ "visible": null, "font": "Arial;13;0", "left": 353, - "top": 540, + "top": 308, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -14122,7 +14166,7 @@ "visible": false, "font": "Arial;13;0", "left": 353, - "top": 585, + "top": 353, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -14143,7 +14187,7 @@ "visible": false, "font": "Arial;13;0", "left": 368, - "top": 338, + "top": 243, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -14164,7 +14208,7 @@ "visible": false, "font": "Arial;13;0", "left": 381, - "top": 341, + "top": 246, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -14185,7 +14229,7 @@ "visible": false, "font": "Arial;13;0", "left": 340, - "top": 334, + "top": 239, "height": 13, "alpha": -0.5235987755982988, "distance": 25, @@ -14205,8 +14249,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 454, - "top": 555, + "left": 422, + "top": 323, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -14225,8 +14269,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 451, - "top": 541, + "left": 419, + "top": 309, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -14245,8 +14289,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 458, - "top": 582, + "left": 426, + "top": 350, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -14290,7 +14334,7 @@ "tail": { "$ref": "AAAAAAGH4UEkiyYzZg4=" }, - "points": "353:319;353:576;480:576", + "points": "353:224;353:344;448:344", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGH4UQ+Gi7YRhg=" @@ -14349,7 +14393,7 @@ "visible": false, "font": "Arial;13;0", "left": 749, - "top": 580, + "top": 353, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -14370,7 +14414,7 @@ "visible": null, "font": "Arial;13;0", "left": 749, - "top": 595, + "top": 368, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -14391,7 +14435,7 @@ "visible": false, "font": "Arial;13;0", "left": 750, - "top": 550, + "top": 323, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -14412,7 +14456,7 @@ "visible": false, "font": "Arial;13;0", "left": 765, - "top": 338, + "top": 243, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -14433,7 +14477,7 @@ "visible": false, "font": "Arial;13;0", "left": 778, - "top": 341, + "top": 246, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -14454,7 +14498,7 @@ "visible": false, "font": "Arial;13;0", "left": 737, - "top": 334, + "top": 239, "height": 13, "alpha": -0.5235987755982988, "distance": 25, @@ -14474,8 +14518,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 706, - "top": 579, + "left": 674, + "top": 352, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -14494,8 +14538,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 709, - "top": 593, + "left": 677, + "top": 366, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -14514,8 +14558,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 702, - "top": 552, + "left": 670, + "top": 325, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -14559,7 +14603,7 @@ "tail": { "$ref": "AAAAAAGH4UHyHitFzP8=" }, - "points": "750:319;750:571;681:571", + "points": "750:224;750:344;649:344", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGH4UT84TJLLpY=" diff --git a/software/roboter/raspy/functions.py b/software/roboter/raspy/functions.py index 267abbb..5e967d9 100644 --- a/software/roboter/raspy/functions.py +++ b/software/roboter/raspy/functions.py @@ -50,7 +50,7 @@ def drive_plant_thread(plantID, actionID, client: mqtt.Client): Meassure and publish data via MQTT Drive home to starting point - ***If color codes are working properly this function is not needed anymore*** + ***Function is only neccessary for driving without color codes*** Args: plantID (_type_): plant to measure @@ -116,7 +116,7 @@ def drive_plant_all_thread(plantIDs: list, actionID, client: mqtt.Client): client (mqtt.Client): current MQTT client """ - allPlantData = { + allPlantData = { # Sensordata for all plants "SensorData": [], "ActionID": "" } @@ -168,11 +168,12 @@ def drive_plant_all_thread(plantIDs: list, actionID, client: mqtt.Client): else: errorMessage = "Motor or Sensor unplugged" - logging.info(f"{errorMessage}, Drive Plant aborted, Robot at starting position") + logging.info(f"{errorMessage}, Drive Plant aborted, Robot at plant {plant}") client.publish(Topics["ROBOT_DATA_ERROR"], f"{errorMessage}, Drive Plant aborted, Robot at plant {plant}", qos=1) client.publish(Topics["ROBOT_DATA_ROBOTREADY"], "True", qos=1) return + # End of drive and measure operation logging.info("All Plants measured, sending data") client.publish(Topics["ROBOT_DATA_ALL"], json.dumps(allPlantData, indent=4), qos=1) @@ -206,7 +207,7 @@ def drive_plant(client: mqtt.Client, userdata, message: mqtt.MQTTMessage): Function to drive to plant according to request Starting Drive in Thread to not block main programm - ***If color codes are working properly this function is not needed anymore*** + ***Function is only neccessary for driving without color codes*** Args: client (mqtt.Client): current mqtt client diff --git a/software/roboter/raspy/raspy_sensors.py b/software/roboter/raspy/raspy_sensors.py index 8047a5b..17d7ab7 100644 --- a/software/roboter/raspy/raspy_sensors.py +++ b/software/roboter/raspy/raspy_sensors.py @@ -42,7 +42,7 @@ def readDHT22(): def readTSL2561(): """ - Reads TSL2561 brightness in Lux and returns integer value + Reads TSL2561 brightness via I2C in Lux and returns integer value Raises: Exception: If TSL2561 not connected properly @@ -67,7 +67,7 @@ def readTSL2561(): def readMCP3008(): """ - Reads YL-69 via MCP3008 ADC soil moisture in percent and returns float value + Reads YL-69 via MCP3008 ADC and SPI soil moisture in percent and returns float value Raises: Exception: If YL-69 not connected properly @@ -133,7 +133,7 @@ def readSensors(sensorData): sensorData["SoilMoisture"] = 0 # No value returend if error occurs -> setting safe value errorMessage = errorMessage + str(e) + "\n" # Appending received error message to later forward all occured errors - # raise combined error message + # raise combined error message, successfull values still available if errorMessage != "": raise Exception(errorMessage)