Difference between revisions of "U23 2007"
m (→Bastelmaterial: Typo) |
|||
(28 intermediate revisions by 10 users not shown) | |||
Line 13: | Line 13: | ||
* Wetterstation | * Wetterstation | ||
* Zahlencodeschloss zur Türsteuerung mit Kameraerweiterung | * Zahlencodeschloss zur Türsteuerung mit Kameraerweiterung | ||
− | * NAS-Server zu Hause übers www einschalten(evtl. auch per Tel. zu aktivieren?) //dirtyheizer aka | + | * NAS-Server zu Hause übers www einschalten(evtl. auch per Tel. zu aktivieren?) //dirtyheizer aka Thomas |
* Network monitoring // Obstfliege aka Philipp | * Network monitoring // Obstfliege aka Philipp | ||
* Diverse Server: DHCP,DNS,... // Obstfliege aka Philipp | * Diverse Server: DHCP,DNS,... // Obstfliege aka Philipp | ||
Line 25: | Line 25: | ||
[[/Inhalt Abend 2]] | [[/Inhalt Abend 2]] | ||
+ | |||
+ | == Abend 4 == | ||
+ | [[/Inhalt Abend 4]] | ||
== Feedback == | == Feedback == | ||
Line 32: | Line 35: | ||
* [[/Feedback Abend 1]] | * [[/Feedback Abend 1]] | ||
* [[/Feedback Abend 2]] | * [[/Feedback Abend 2]] | ||
+ | * [[/Feedback Abend 3]] | ||
+ | * [[/Feedback Abend 4]] | ||
== Gruppen == | == Gruppen == | ||
− | * [[/ | + | * [[/NULL.0]] |
+ | * [[/MateCrew]] | ||
+ | * [[/24]] | ||
+ | * [[/Evil Solutions]] | ||
== Bastelmaterial == | == Bastelmaterial == | ||
Line 101: | Line 109: | ||
# Hanno | # Hanno | ||
# Felix | # Felix | ||
+ | |||
+ | == Bootloader unter Win32 == | ||
+ | |||
+ | Bitte compiliert das jemand: https://ssl2.mecking.net/svn/etherrape/bootloader-launcher-win32/branches/stable/launch-bootloader.c | ||
+ | |||
+ | |||
+ | http://www.haemoglobin.org/U23_2007/launch-bootloader.exe | ||
+ | |||
+ | [http://www.haemoglobin.org/U23_2007/md5sums MD5]- und [http://www.haemoglobin.org/U23_2007/sha1sums SHA1]-Pruefsummen, sowie [http://www.haemoglobin.org/U23_2007/launch-bootloader.exe.sig OpenPGP-Signatur] | ||
+ | |||
+ | == strtok == | ||
+ | |||
+ | Da die AVR-libc keine strtok-Funktion bietet (wie sich spaeter herausgestellt hat, jedoch strtok_r), habe ich fuer Valentin strtokn und strtokz geschrieben, die einen String mit bestimmer Laenge bzw. Nullterminierung in Tokens parsen. | ||
+ | Der Code steht unter einer an das europaeische Recht angepassten Version der MIT-Lizenz und kann daher problemlos sowohl in GPL-, als auch kommerzieller Software verwendet werden. | ||
+ | |||
+ | [http://www.haemoglobin.org/U23_2007/tokenize.h tokenize.h] | ||
+ | |||
+ | [http://www.haemoglobin.org/U23_2007/tokenize.c tokenize.c] | ||
+ | |||
+ | Sollte jemand einen Bug finden, moege er bitte eine e-Mail oder Jabber-Nachricht an die im Code angegebene Adresse senden. | ||
+ | |||
+ | === Anwendungsbeispiel === | ||
+ | |||
+ | <pre> | ||
+ | /* Ein einfacher Pseudo-HTTP-Parser */ | ||
+ | |||
+ | #include <string.h> /* Fuer NULL und strncmp */ | ||
+ | |||
+ | #define BUFLEN 255 | ||
+ | |||
+ | char buffer[BUFLEN]; /* Unser Lesepuffer */ | ||
+ | |||
+ | char *method; /* Die HTTP-Methode, e.g. HEAD, GET, POST oder PUT */ | ||
+ | char *uri; /* Der Uniform Resource Identifier, also das, was man in die Adresszeile des Browsers tippt */ | ||
+ | char *version; /* Der HTTP-Versionstring, normalerweise HTTP/1.0 oder HTTP/1.1 */ | ||
+ | |||
+ | method = strtokn(buffer, BUFLEN, ' '); /* sizeof(buffer) anstatt BUFLEN sollte auch gehen, weil buffer in diesem Fall ein char[] und kein char* ist */ | ||
+ | if(method) { /* Kein Token gefunden? */ | ||
+ | /* Fehlerbehandlung, beispielsweise einen 400-Statuscode zuruecksenden */ | ||
+ | } | ||
+ | |||
+ | if(strncmp(method, "GET", 4)) { | ||
+ | /* Wir moechten nur GET-Requests behandeln, also senden wir irgendeinen 4XX-Statuscode zurueck */ | ||
+ | } | ||
+ | |||
+ | uri = strtokn(NULL, 0, ' '); | ||
+ | if(uri) { /* Kein Token? */ | ||
+ | /* Einen 400-Statuscode zurueck */ | ||
+ | } | ||
+ | |||
+ | version = strtokn(NULL, 0, '\r'); | ||
+ | if(version) { | ||
+ | /* Das uebliche ;) */ | ||
+ | } | ||
+ | |||
+ | if(strncmp(version, "HTTP/1.0", 9) && strncmp(version, "HTTP/1.1", 9)) { | ||
+ | /* Wir wollen nur HTTP 1.0 oder 1.1 - also wieder 400 */ | ||
+ | } | ||
+ | |||
+ | /* | ||
+ | * Jetzt haben wir alles, was wir brauchen, jedoch ist es auch moeglich, | ||
+ | * den kompletten HTTP-Header zu parsen, um so einen vollwertigen Webserver | ||
+ | * zu schreiben. | ||
+ | */ | ||
+ | |||
+ | </pre> | ||
== OffTopic == | == OffTopic == | ||
Line 112: | Line 186: | ||
lenkt aber wahrscheinlich von unserem Eigentlichen Projekt ab, etwas mit dem etherrape zu machen. Gruß Hanno | lenkt aber wahrscheinlich von unserem Eigentlichen Projekt ab, etwas mit dem etherrape zu machen. Gruß Hanno | ||
+ | |||
+ | [[Category:Events]] | ||
+ | [[Category:U23]] | ||
+ | [[Category:U23 2007]] |
Latest revision as of 10:15, 13 January 2011
Hier sammeln wir Ideen und Hintergrundinformationen zum U23 2007.
Contents
Hintergrundinformationen & Dokumentation
- http://www.lochraster.org/etherrape/
- http://wiki.lochraster.org/
- atmega644 Datenblatt
- AVR-Libc Dokumentation (pdf)
- AVR-Libc Dokumentation (online, html)
- 74HC4094 Schieberegister Datenblatt
Bastelideen
- Wetterstation
- Zahlencodeschloss zur Türsteuerung mit Kameraerweiterung
- NAS-Server zu Hause übers www einschalten(evtl. auch per Tel. zu aktivieren?) //dirtyheizer aka Thomas
- Network monitoring // Obstfliege aka Philipp
- Diverse Server: DHCP,DNS,... // Obstfliege aka Philipp
Abend 1
Abend 2
Abend 4
Feedback
Bitte hier (auch gern anonym) Feedback hinterlassen:
Gruppen
Bastelmaterial
Was haben wir? Was brauchen wir?
ICs
Der C4 hat eine ganze Reihe an ICs geschenkt gekriegt, die für das U23 zur Verfügung stehen. Derzeit sind noch von allen jeweils eine Stange (also 20 oder 25 Stück) vorhanden.
Typ | Bezeichnung |
---|---|
74LS02N | Vier NOR-Gatter mit je 2 Eingängen |
74LS05N | Sechs Inverter (open Collector) |
74LS07 | Sechs Treiber (open Collector, 30V) |
74LS12N | Drei NAND-Gatter mit je 3 Eingängen (open Collector) |
74LS20 | Zwei NAND-Gatter mit je 4 Eingängen |
74LS32N | Vier OR-Gatter mit je 2 Eingängen |
74LS38B1 | Vier NAND-Leistungsgatter mit je 2 Eingängen (open Collector) |
74LS73AN | Zwei JK-Flipflops mit Clear |
74LS74AN | Zwei D-Flipflops mit Preset und Clear |
74LS83AN | 4-Bit Volladdierer |
74LS95BP | 4-Bit Schieberegister mit paralleler Ein- und Ausgabe |
74ALS112 | Zwei J-K Flipflops mit Preset und Clear (Advanced Speed) |
74LS191 | Synchroner programmierbarer Vorwärts/Rückwärts 4-Bit Binärzähler |
74LS193B1 | Synchroner programmierbarer Vorwärts/Rückwärts 4-Bit Binärzähler mit Clear |
74LS258AB1 | Vier 2 zu 1 Datenselektoren/Multiplexer mit invertierenden Tri-State Ausgängen |
74LS273N | 8-Bit D Register mit Clear |
74LS280 | 9-Bit Paritätsgenerator/Paritätsprüfer |
74LS374N | 8-Bit D Register mit Tri-State Ausgängen |
74LS375P | Zwei 2-Bit D Latches mit Enable |
74LS645B1 | Octal Bus Transceiver |
74LS688N | 8-Bit Equality Comparator |
Interessenten fertige etherrapes
NACH U23 stehen drei fertige etherrapes fuer 59,- zum Verkauf.
Interessenten:
- Benjamin
- Sebi
- Hanno
- Felix
Bootloader unter Win32
Bitte compiliert das jemand: https://ssl2.mecking.net/svn/etherrape/bootloader-launcher-win32/branches/stable/launch-bootloader.c
http://www.haemoglobin.org/U23_2007/launch-bootloader.exe
MD5- und SHA1-Pruefsummen, sowie OpenPGP-Signatur
strtok
Da die AVR-libc keine strtok-Funktion bietet (wie sich spaeter herausgestellt hat, jedoch strtok_r), habe ich fuer Valentin strtokn und strtokz geschrieben, die einen String mit bestimmer Laenge bzw. Nullterminierung in Tokens parsen. Der Code steht unter einer an das europaeische Recht angepassten Version der MIT-Lizenz und kann daher problemlos sowohl in GPL-, als auch kommerzieller Software verwendet werden.
Sollte jemand einen Bug finden, moege er bitte eine e-Mail oder Jabber-Nachricht an die im Code angegebene Adresse senden.
Anwendungsbeispiel
/* Ein einfacher Pseudo-HTTP-Parser */ #include <string.h> /* Fuer NULL und strncmp */ #define BUFLEN 255 char buffer[BUFLEN]; /* Unser Lesepuffer */ char *method; /* Die HTTP-Methode, e.g. HEAD, GET, POST oder PUT */ char *uri; /* Der Uniform Resource Identifier, also das, was man in die Adresszeile des Browsers tippt */ char *version; /* Der HTTP-Versionstring, normalerweise HTTP/1.0 oder HTTP/1.1 */ method = strtokn(buffer, BUFLEN, ' '); /* sizeof(buffer) anstatt BUFLEN sollte auch gehen, weil buffer in diesem Fall ein char[] und kein char* ist */ if(method) { /* Kein Token gefunden? */ /* Fehlerbehandlung, beispielsweise einen 400-Statuscode zuruecksenden */ } if(strncmp(method, "GET", 4)) { /* Wir moechten nur GET-Requests behandeln, also senden wir irgendeinen 4XX-Statuscode zurueck */ } uri = strtokn(NULL, 0, ' '); if(uri) { /* Kein Token? */ /* Einen 400-Statuscode zurueck */ } version = strtokn(NULL, 0, '\r'); if(version) { /* Das uebliche ;) */ } if(strncmp(version, "HTTP/1.0", 9) && strncmp(version, "HTTP/1.1", 9)) { /* Wir wollen nur HTTP 1.0 oder 1.1 - also wieder 400 */ } /* * Jetzt haben wir alles, was wir brauchen, jedoch ist es auch moeglich, * den kompletten HTTP-Header zu parsen, um so einen vollwertigen Webserver * zu schreiben. */
OffTopic
Borg 3D
Die Borgs 3d standen heute bei uns in der Uni (irgend ein Schüler und Naturwissenschaften Messe ding): Sind ganz lustig anzusehen:
gemacht von das-labor.org aus Bochum.
lenkt aber wahrscheinlich von unserem Eigentlichen Projekt ab, etwas mit dem etherrape zu machen. Gruß Hanno