--- a
+++ b/trunk/d-logg/d-logg/DLogg/svnobj
@@ -0,0 +1,4 @@
+Gx_lé/!0…jüoü#š%Ù5Å¿èÌ
System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
+TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagTextF// Execute the FB only every secondd// Quicker sampling is not supported by the logger4Delay(IN:=TRUE, PT:=T#1S);(IF NOT(Delay.Q) THEN	RETURN;END_IF"Delay(IN:=FALSE);>// Start with the state machineCASE dwState OF6	0:	stream.Open(1, 115200);		next();>	// Read number of data loggersN	1: 	nWrote := stream.WriteByte(16#81);*		IF nWrote = 1 THEN				next(); 		END_IF!<	2:	IF stream.Length >= 1 THEN">			stream.Read(ADR(byByte), 1);#"			CASE byByte OF$2				16#A8: udiNumDL := 1;%2				16#D1: udiNumDL := 2;&			END_CASE'f	// Read Data-Logger Type (also polls for new data)(N	3: 	nWrote := stream.WriteByte(16#AB);)<	4:	IF stream.Length >= 1 THEN*>			byByte := stream.ReadByte();+D				16#AB: reset(); // no new data,:				16#80: next(); // UVR1611-:				16#90: next(); // UVR61-3.(	// Read sensor data/j	5:	IF stream.Length >= (39 + 16 + 1) * udiNumDL THEN08			FOR i:=0 TO udiNumDL-1 DO1P				stream.Read(ADR(audtSensor[i]), 39);2N				stream.Read(ADR(audtSolar1[i]), 8);3N				stream.Read(ADR(audtSolar2[i]), 8);4H				byChecksum := stream.ReadByte();5 			END_FOR6v	// Convert RAW data to temperatures and boolean actor data7Ž	6:	udtInput.C0_S1  := THIS^.raw2temp(audtSensor[0].auiTemperature[0]);8Š		udtInput.C0_S2  := THIS^.raw2temp(audtSensor[0].auiTemperature[1]);9Š		udtInput.C0_S3  := THIS^.raw2temp(audtSensor[0].auiTemperature[2]);:Š		udtInput.C0_S4  := THIS^.raw2temp(audtSensor[0].auiTemperature[3]);;Š		udtInput.C0_S5  := THIS^.raw2temp(audtSensor[0].auiTemperature[4]);<Š		udtInput.C0_S6  := THIS^.raw2temp(audtSensor[0].auiTemperature[5]);=Š		udtInput.C0_S7  := THIS^.raw2temp(audtSensor[0].auiTemperature[6]);>Š		udtInput.C0_S8  := THIS^.raw2temp(audtSensor[0].auiTemperature[7]);?Š		udtInput.C0_S9  := THIS^.raw2temp(audtSensor[0].auiTemperature[8]);@Š		udtInput.C0_S10 := THIS^.raw2temp(audtSensor[0].auiTemperature[9]);AŒ		udtInput.C0_S11 := THIS^.raw2temp(audtSensor[0].auiTemperature[10]);BŒ		udtInput.C0_S12 := THIS^.raw2temp(audtSensor[0].auiTemperature[11]);CŒ		udtInput.C0_S13 := THIS^.raw2temp(audtSensor[0].auiTemperature[12]);DŒ		udtInput.C0_S14 := THIS^.raw2temp(audtSensor[0].auiTemperature[13]);EŒ		udtInput.C0_S15 := THIS^.raw2temp(audtSensor[0].auiTemperature[14]);FŒ		udtInput.C0_S16 := THIS^.raw2temp(audtSensor[0].auiTemperature[15]);GŠ		udtInput.C1_S1  := THIS^.raw2temp(audtSensor[1].auiTemperature[0]);HŠ		udtInput.C1_S2  := THIS^.raw2temp(audtSensor[1].auiTemperature[1]);IŠ		udtInput.C1_S3  := THIS^.raw2temp(audtSensor[1].auiTemperature[2]);JŠ		udtInput.C1_S4  := THIS^.raw2temp(audtSensor[1].auiTemperature[3]);KŠ		udtInput.C1_S5  := THIS^.raw2temp(audtSensor[1].auiTemperature[4]);LŠ		udtInput.C1_S6  := THIS^.raw2temp(audtSensor[1].auiTemperature[5]);MŠ		udtInput.C1_S7  := THIS^.raw2temp(audtSensor[1].auiTemperature[6]);NŠ		udtInput.C1_S8  := THIS^.raw2temp(audtSensor[1].auiTemperature[7]);OŠ		udtInput.C1_S9  := THIS^.raw2temp(audtSensor[1].auiTemperature[8]);PŠ		udtInput.C1_S10 := THIS^.raw2temp(audtSensor[1].auiTemperature[9]);QŒ		udtInput.C1_S11 := THIS^.raw2temp(audtSensor[1].auiTemperature[10]);RŒ		udtInput.C1_S12 := THIS^.raw2temp(audtSensor[1].auiTemperature[11]);SŒ		udtInput.C1_S13 := THIS^.raw2temp(audtSensor[1].auiTemperature[12]);TŒ		udtInput.C1_S14 := THIS^.raw2temp(audtSensor[1].auiTemperature[13]);UŒ		udtInput.C1_S15 := THIS^.raw2temp(audtSensor[1].auiTemperature[14]);VŒ		udtInput.C1_S16 := THIS^.raw2temp(audtSensor[1].auiTemperature[15]);W		XZ		udtInput.C0_A0 := audtSensor[0].abyDOUT[0];YZ		udtInput.C0_A1 := audtSensor[0].abyDOUT[1];ZZ		udtInput.C1_A0 := audtSensor[1].abyDOUT[0];[Z		udtInput.C1_A1 := audtSensor[1].abyDOUT[1];\	// End]	7:	reset();^			_END_CASE`InterfaceaL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}b(FUNCTION_BLOCK DLoggcVAR_INPUTd.	udtInput : IoDrvInput;e2	udtConfig : IoDrvConfig;fEND_VARgVAR_OUTPUTh2	udtOutput : IoDrvOutput;iVARj.	stream : SerialStream;k	i : LINT;l.	// Temporary variablesm	byByte: BYTE;n	nRead: UDINT;o	nWrote: ULINT;p	q,	// Stateful variablesr"	dwState : DWORD;sd	// Number of Data Loggers on this one serial portt$	udiNumDL : UDINT;u	// sensor datavX	audtSensor : ARRAY [0..1] OF UVRSensorData;wV	audtSolar1 : ARRAY [0..1] OF UVRSolarData;xV	audtSolar2 : ARRAY [0..1] OF UVRSolarData;y&	byChecksum : BYTE;z	Delay : TON;{"UniqueIdGenerator|182}POULevel~L{8e575c5b-1d37-49c6-941b-5c0ec7874787}Standard€ ChildObjectGuids8System.Collections.ArrayList‚,AddAttributeSubsequentƒboolÐÐ-ÐÐ	E
+]ÐÐ
­¬ÚÐ-ÐÐ
­­ÚÐ-ÐÐ
­¤ÚÐ-ÐÐ
­¦ÚÐ-ÐÐ
­§ÚÐ-ÐÐ
­¨ÚÐ-ÐÐ
­©ÚÐ-ÐÐ
­«ÚÐ-ÐÐ
­¥ÚÐ-ÐÐ
­JÚÐ-ÐÐ
­KÚÐ-ÐÐ
­LÚÐ-ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-ÐÐ
­QÚÐ- ÐÐ
­RÚÐ-!ÐÐ
­SÚÐ-"ÐÐ
­TÚÐ-#ÐÐ
­UÚÐ-$ÐÐ
­VÚÐ-%ÐÐ
­WÚÐ-&ÐÐ
­XÚÐ-ÐÐ
­YÚÐ- ÐÐ
­ZÚÐ-'ÐÐ
­[ÚÐ-(ÐÐ
­\ÚÐ-ÐÐ
­]ÚÐ-ÐÐ
­^ÚÐ- ÐÐ
­_ÚÐ-)ÐÐ
­`ÚÐ-*ÐÐ
­aÚÐ-#ÐÐ
­bÚÐ-+ÐÐ
­cÚÐ-,ÐÐ
­dÚÐ--ÐÐ
­eÚÐ-&ÐÐ
­fÚÐ- ÐÐ
­gÚÐ-.ÐÐ
­hÚÐ-/ÐÐ
­iÚÐ-0ÐÐ
­jÚÐ-1ÐÐ
­kÚÐ-2ÐÐ
­lÚÐ-3ÐÐ
­mÚÐ-4ÐÐ
­nÚÐ-5ÐÐ
­oÚÐ-ÐÐ
­pÚÐ- ÐÐ
­wÚÐ-6ÐÐ
­uÚÐ-7ÐÐ
­zÚÐ-8ÐÐ
­{ÚÐ-9ÐÐ
­|ÚÐ-:ÐÐ
­}ÚÐ-;ÐÐ
­~ÚÐ-<ÐÐ
­ÚÐ-=ÐÐ
­€ÚÐ->ÐÐ
­ÚÐ-?ÐÐ
­‚ÚÐ-@ÐÐ
­ƒÚÐ-AÐÐ
­„ÚÐ-BÐÐ
­…ÚÐ-CÐÐ
­†ÚÐ-DÐÐ
­‡ÚÐ-EÐÐ
­ˆÚÐ-FÐÐ
­ŠÚÐ-GÐÐ
­‹ÚÐ-HÐÐ
­ŒÚÐ-IÐÐ
­ÚÐ-JÐÐ
­ŽÚÐ-KÐÐ
­ÚÐ-LÐÐ
­ÚÐ-MÐÐ
­‘ÚÐ-NÐÐ
­’ÚÐ-OÐÐ
­“ÚÐ-PÐÐ
­”ÚÐ-QÐÐ
­•ÚÐ-RÐÐ
­–ÚÐ-SÐÐ
­—ÚÐ-TÐÐ
­˜ÚÐ-UÐÐ
­‰ÚÐ-VÐÐ
­™ÚÐ-WÐÐ
­ÚÐ-XÐÐ
­žÚÐ-YÐÐ
­ŸÚÐ-ZÐÐ
­ ÚÐ-[ÐÐ
­®ÚÐ-WÐÐ
­¡ÚÐ-ÐÐ
­vÚÐ-\ÐÐ
­rÚÐ-]ÐÐ
­sÚÐ-^ÐÐ
­tÚÐ-_ÐÐ
­	ÚÐ-Ð`aÐ	E
+ÐÐ
­ÚÐ-bÐÐ
­ ÚÐ-cÐÐ
­5ÚÐ-dÐÐ
­6ÚÐ-eÐÐ
­ÚÐ-fÐÐ
­!ÚÐ-gÐÐ
­ÚÐ-hÐÐ
­+ÚÐ-fÐÐ
­,ÚÐ-iÐÐ
­:ÚÐ-jÐÐ
­;ÚÐ-kÐÐ
­<ÚÐ-ÐÐ
­=ÚÐ-lÐÐ
­>ÚÐ-mÐÐ
­?ÚÐ-nÐÐ
­@ÚÐ-oÐÐ
­AÚÐ-pÐÐ
­BÚÐ-qÐÐ
­CÚÐ-rÐÐ
­DÚÐ-sÐÐ
­EÚÐ-tÐÐ
­FÚÐ-uÐÐ
­GÚÐ-vÐÐ
­HÚÐ-wÐÐ
­IÚÐ-xÐÐ
­9ÚÐ-yÐÐ
­¢ÚÐ-pÐÐ
­£ÚÐ-zÐÐ
­ÚÐ-fÐÐ
­ÚÐ-Ð{-|Ð}~-€Ђƒ­
\ No newline at end of file