{"id":1088,"date":"2018-03-28T12:51:00","date_gmt":"2018-03-28T10:51:00","guid":{"rendered":"https:\/\/www.ensis.net\/?p=1088"},"modified":"2018-03-29T20:52:57","modified_gmt":"2018-03-29T18:52:57","slug":"klassendefinitionen","status":"publish","type":"post","link":"https:\/\/ensis.net\/?p=1088","title":{"rendered":"Klassendefinitionen"},"content":{"rendered":"<p>Aus den Erkenntnissen der <a href=\"https:\/\/www.ensis.net\/?p=944\">Iteration 3 der Systemarchitektur<\/a> werden mindestens die folgenden Klassen definiert.<!--more--><\/p>\n<h2>System<\/h2>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>logger.h<\/h4>\n<p>Die Logger Klasse stellt einen Ringbuffer mit einer definierten Anzahl Elemente zur Verf\u00fcgung. Wenn die maximale Anzahl der Elemente erreicht ist, wird das \u00e4lteste entfernt und das aktuellste Element vorne angef\u00fcgt. Die Elemente selbst sind Zeiger auf Objekte (Objekt, Array, Struct, String, &#8230;).<\/p><\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/HOv13i8m30JlVaMFhIg2U0H7JZmWYjfL6f4cLUoY2WHl9qrKSVBOkrwR1c-O6n-jHMhUfDGG0qjQ1uc9bQA-Icr7_VUF2UnUoAIKXGZIcKlP5_BWNiKTRouSPBQ3O4BPdI5J7CkPPUMfXSUC8Dcr08_MXH5RHreloJsDe1cD6Ar9vqUkrSgbyGXM9ZhLl4lE_j0F alt=\"PlantUML Syntax:<br \/>\nclass logger {<br \/>\n..constructors..<br \/>\n+logger()<br \/>\n+~logger()<br \/>\n+resize()<br \/>\n..getter\/setter..<br \/>\n+getSize()<br \/>\n+getMin()<br \/>\n+getMax()<br \/>\n+getMean()<br \/>\n..methods..<br \/>\n+push(element)<br \/>\n+peek(index)<br \/>\n__private data__<br \/>\n_logElements<br \/>\n_loglength<br \/>\n-method1()<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p>\n<\/div>\n<div style=\"clear:both;\"><\/div>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>scheduler.h<\/h4>\n<p>Die Scheduler Klasse ruft eine Funktion in einem gegebenen Intervall auf. Das Intervall wird bei der Instanzierung des Objekts oder mittels eines Setters definiert. \u00dcber die Methode .probe() wird die angegebene Funktion aufgerufen, falls die Intervall Periode abgelaufen ist.<\/p><\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/POxD2W8n38JlVOeU_O7w488WA7ZmNhfjq42saIQx8ABFxhQA2fuoNsR8n4GA8bRY6T90KEpDE1SvYvOXAXTnpYm_xcnkbezVSku4gb1MqaOBWsw671Kvr_Y4spnPOw2Afp_SGKX7xE6DUnI1j0v4qkxte6TExGt8eQEMknJkgl3-Kd0C2ZO53TwRaJ7PsSBw_bgVE33MilaKdOJr-AxU8n7AQyUKVh7_zfkEcQn_rPgxUG80 alt=\"PlantUML Syntax:<br \/>\nclass scheduler {<br \/>\n..constructors..<br \/>\n+scheduler()<br \/>\n+~scheduler()<br \/>\n..getter\/setter..<br \/>\n+setFunction()<br \/>\n+setInterval()<br \/>\n+getInterval()<br \/>\n+getLeadTime()<br \/>\n+getMissedCalls()<br \/>\n..methods..<br \/>\n+enable()<br \/>\n+probe()<br \/>\n__private data__<br \/>\nvoid (* _myFuncPointer)()<br \/>\nint _intervalMillis<br \/>\nint _oldMillis<br \/>\nint _missedCalls<br \/>\nbool _enable<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<h2>Regler<\/h2>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>control.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/7Od13O0m3CJ-cQ8JX96Yg8q0gH2K77mGkrDusRAfTiqirNU4zt8Jy_14d1KUoJp2R835b3_-iXaMRzyLEMAz55QQGaNeeHS0 alt=\"PlantUML Syntax:<br \/>\nclass control {<br \/>\n..constructors..<br \/>\n..getter\/setter..<br \/>\n..methods..<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>sht.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/9Ot12W8n34Jl-OeUbONu6vx5Uubjs0rijqkI2YBwxMxhQPZ7OmRIIcR15WzlG4nrCzUMlAeXmdJmqnccxpyHPtPdlTY8BYXJlhOYMVpLpTxlN7PMygRSqI7VsEhQNEesLWhxKlCuUF0i7SQugpp9EMHoYX4-y0C0 alt=\"PlantUML Syntax:<br \/>\nclass sht {<br \/>\n..constructors..<br \/>\n+sht()<br \/>\n+~sht()<br \/>\n..getter\/setter..<br \/>\n+readHumidity()<br \/>\n+readTemperature()<br \/>\n+setResolution()<br \/>\n..methods..<br \/>\n+begin()<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>ntc.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/7Od13O0m3CJ-cQ8JX96Yg8q0gH2K77mGkrDusRAfTiqirNU4zt8Jy_14d1KUoJp2R835b3_-iXaMRzyLEMAz55QQGaNeeHS0 alt=\"PlantUML Syntax:<br \/>\nclass control {<br \/>\n..constructors..<br \/>\n..getter\/setter..<br \/>\n..methods..<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>setpoint.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/7Od13O0m3CJ-cQ8JX96Yg8q0gH2K77mGkrDusRAfTiqirNU4zt8Jy_14d1KUoJp2R835b3_-iXaMRzyLEMAz55QQGaNeeHS0 alt=\"PlantUML Syntax:<br \/>\nclass control {<br \/>\n..constructors..<br \/>\n..getter\/setter..<br \/>\n..methods..<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<h2>Konfiguration<\/h2>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>config.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/7Od13O0m3CJ-cQ8JX96Yg8q0gH2K77mGkrDusRAfTiqirNU4zt8Jy_14d1KUoJp2R835b3_-iXaMRzyLEMAz55QQGaNeeHS0 alt=\"PlantUML Syntax:<br \/>\nclass control {<br \/>\n..constructors..<br \/>\n..getter\/setter..<br \/>\n..methods..<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>NT3H.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/7Od13O0m3CJ-cQ8JX96Yg8q0gH2K77mGkrDusRAfTiqirNU4zt8Jy_14d1KUoJp2R835b3_-iXaMRzyLEMAz55QQGaNeeHS0 alt=\"PlantUML Syntax:<br \/>\nclass control {<br \/>\n..constructors..<br \/>\n..getter\/setter..<br \/>\n..methods..<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>jSON.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/7Od13O0m3CJ-cQ8JX96Yg8q0gH2K77mGkrDusRAfTiqirNU4zt8Jy_14d1KUoJp2R835b3_-iXaMRzyLEMAz55QQGaNeeHS0 alt=\"PlantUML Syntax:<br \/>\nclass control {<br \/>\n..constructors..<br \/>\n..getter\/setter..<br \/>\n..methods..<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>encryption.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/7Od13O0m3CJ-cQ8JX96Yg8q0gH2K77mGkrDusRAfTiqirNU4zt8Jy_14d1KUoJp2R835b3_-iXaMRzyLEMAz55QQGaNeeHS0 alt=\"PlantUML Syntax:<br \/>\nclass control {<br \/>\n..constructors..<br \/>\n..getter\/setter..<br \/>\n..methods..<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>setpoint.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/7Od13O0m3CJ-cQ8JX96Yg8q0gH2K77mGkrDusRAfTiqirNU4zt8Jy_14d1KUoJp2R835b3_-iXaMRzyLEMAz55QQGaNeeHS0 alt=\"PlantUML Syntax:<br \/>\nclass control {<br \/>\n..constructors..<br \/>\n..getter\/setter..<br \/>\n..methods..<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<h2>Server<\/h2>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>mqtt.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/7Od13O0m3CJ-cQ8JX96Yg8q0gH2K77mGkrDusRAfTiqirNU4zt8Jy_14d1KUoJp2R835b3_-iXaMRzyLEMAz55QQGaNeeHS0 alt=\"PlantUML Syntax:<br \/>\nclass control {<br \/>\n..constructors..<br \/>\n..getter\/setter..<br \/>\n..methods..<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>httpd.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/7Od13O0m3CJ-cQ8JX96Yg8q0gH2K77mGkrDusRAfTiqirNU4zt8Jy_14d1KUoJp2R835b3_-iXaMRzyLEMAz55QQGaNeeHS0 alt=\"PlantUML Syntax:<br \/>\nclass control {<br \/>\n..constructors..<br \/>\n..getter\/setter..<br \/>\n..methods..<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>ntp.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/7Od13O0m3CJ-cQ8JX96Yg8q0gH2K77mGkrDusRAfTiqirNU4zt8Jy_14d1KUoJp2R835b3_-iXaMRzyLEMAz55QQGaNeeHS0 alt=\"PlantUML Syntax:<br \/>\nclass control {<br \/>\n..constructors..<br \/>\n..getter\/setter..<br \/>\n..methods..<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<div style=\"width:60%;padding:0 10px 0 0;float:left;\">\n<h4>fileserver.h<\/h4>\n<\/div>\n<div style=\"width:30%;padding:0 10px 0 0;float:right;\">\n<p><img src=http:\/\/www.plantuml.com\/plantuml\/img\/7Od13O0m3CJ-cQ8JX96Yg8q0gH2K77mGkrDusRAfTiqirNU4zt8Jy_14d1KUoJp2R835b3_-iXaMRzyLEMAz55QQGaNeeHS0 alt=\"PlantUML Syntax:<br \/>\nclass control {<br \/>\n..constructors..<br \/>\n..getter\/setter..<br \/>\n..methods..<br \/>\n__private data__<br \/>\n}<br \/>\n\" usemap=\"#plantuml_map\"><\/p><\/div>\n<div style=\"clear:both;\"><\/div>\n<h2>HMI<\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Aus den Erkenntnissen der Iteration 3 der Systemarchitektur werden mindestens die folgenden Klassen definiert.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[64,71],"tags":[66,17,65],"class_list":["post-1088","post","type-post","status-publish","format-standard","hentry","category-arduino","category-fridgey-controller","tag-architecture","tag-arduino","tag-fridgey"],"_links":{"self":[{"href":"https:\/\/ensis.net\/index.php?rest_route=\/wp\/v2\/posts\/1088","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ensis.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ensis.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ensis.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ensis.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1088"}],"version-history":[{"count":18,"href":"https:\/\/ensis.net\/index.php?rest_route=\/wp\/v2\/posts\/1088\/revisions"}],"predecessor-version":[{"id":1741,"href":"https:\/\/ensis.net\/index.php?rest_route=\/wp\/v2\/posts\/1088\/revisions\/1741"}],"wp:attachment":[{"href":"https:\/\/ensis.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1088"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ensis.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1088"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ensis.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}