From 2f2f97709e9c81b97a294458068113e274a75887 Mon Sep 17 00:00:00 2001 From: Bernhard Tittelbach Date: Sat, 12 Oct 2013 17:51:05 +0000 Subject: json output experiment, etc git-svn-id: https://svn.spreadspace.org/avr/trunk@244 aa12f405-d877-488e-9caf-2d797e2a1cc7 --- pcr-controller/protocol_uc.txt | 50 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) (limited to 'pcr-controller/protocol_uc.txt') diff --git a/pcr-controller/protocol_uc.txt b/pcr-controller/protocol_uc.txt index 2ecfe0b..68c4c90 100644 --- a/pcr-controller/protocol_uc.txt +++ b/pcr-controller/protocol_uc.txt @@ -15,10 +15,58 @@ Command bytes: 'L' Toggle LED (Debug) 'l' Toggle LED by using queuing system (Debug) 'R' Reset (Alle Register zurücksetzen und neu initialisieren) +'=' Halte aktuelle Temperatur (PID Ziel gleich aktuelle Temp messen) '-' Lösche gesetzte Temperaturkurve '+' Füge einen Punkt zur Temperaturkurve hinzu. erwartet Zieltemperatur und zeit (in10tel sekunden) für wie lange die temperatur gehalten werden soll bevor zur nächsten gesprungen wird. <- string(int(float(temp)*16)) \n <- string(int(seconds*10)) \n 'Z' setzte Anzahl Zyklen in denen die Temperaturkurve wiederholt wird (0 == default == keine Wiederholung == 1 Zyklus, 1 == 1 Wiederholung == 2 Zyklen) <- string(int(repeats)) +'E' Temperatursoll das nach Ende des Temperaturkurvenzyklus gesetzt werden soll <- string (int(float(temp)*16)) 'm' Schalte ständige Ausgabe der aktuellen Temperatur ein/aus Nach jedem Setz-Command: Bestätigung mit "OK\r\n" (oder so) -' + + + +Das folgende Beispiel +fragt die Temperatur ab, +löscht eine evtl gesetzte Temperaturkurve +Hält für's Erste die aktuelle Temperatur +Schaltet die Pumpe ein +Programmiert eine Kurve von 95°C (15min) -> 65°C (1s) -> 60°C (30s) -> 70°C (30s) +Wiederholt die Kurve 30 mal +Kühlt die Proben nach dem Ende auf 5°C +Gibt periodisch die aktuelle Temperatur aus. + +Example PCR: +s +- += +A +b ++ +1520 +9000 ++ +1040 +10 ++ +960 +300 ++ +1120 +300 +Z +30 +E +80 +m + + +Example uc Answers: +{"cmd_ok":false,"error": "No DS1820 sensors on 1wire bus, thus no temperature"} +{"cmd_ok":false,"error":"talking to DS18b20, no valid temperature!"} +{"cmd_ok":true} +{"t":503, "currtemp":20.34, "targettemp":-2048.00, "curve":false, "curve_t_elapsed":0, "cycles_left":0} //curve and pid disabled (pid disabel when targettemp == -2048.00 +{"t":97000, "currtemp":40.34, "targettemp":70.00, "curve":true, "curve_t_elapsed":14, "cycles_left":11} +{"t":97200, "currtemp":69.72, "targettemp":70.00, "curve":true, "curve_t_elapsed":214, "cycles_left":11} +{"t":110123, "currtemp":30.14, "targettemp":30.00, "curve":true, "curve_t_elapsed":10, "cycles_left":9} +{"t":9999999, "currtemp":5.02, "targettemp":5.00, "curve":true, "curve_t_elapsed":65535, "cycles_left":0} //we know all is finished because targettemp is hold-temp -- cgit v1.2.3