Spin String Confusion
skynugget
Posts: 172
Hey all, im working on wunderground reporting project for the spinneret that will report data from my wireless weather station. this is my first leap into spin and I am having trouble debugging out some strings and i was hoping someone could spot my error. i am using some "barrowed" code from jonnymac's simple gps demo to move some ascii characters around, and its acting like the strings arnt zero terminated when i debug them out through the parallax serial terminal object.
please help me understand, thanks!
the output on the debug looks like this:
it should look like this : &2012-07-10 03:53:05&realtime=1&tempf=
what i dont get is why it debugs the string for time correctly the first time after i format the data, but the second time i spit it out the debug, i get more data in the string then should be.
please help me understand, thanks!
the output on the debug looks like this:
Startup... !!WX,225305,070912, 259, 786, 772, 296, 247 03:53:05 2012-07-10 78.6 77.2 29.6 &2012-07-10 78. 77. 29.6 03:53:052012-07-10 78. 77. 29.6&realtime=1&tempf= Finished...
it should look like this : &2012-07-10 03:53:05&realtime=1&tempf=
what i dont get is why it debugs the string for time correctly the first time after i format the data, but the second time i spit it out the debug, i get more data in the string then should be.
PUB Main | ch, hr, dy Digi.GetStr(@DigiBuf) ' get string from ether Pst.Str(@digiBuf) ' deebug string PST.CHAR (13) ''''''''''''''''''''''''''' fcopy(@UTCTIME, @digiBuf, 1) hr := str2dec(@utctime, 2) ' get utc hours hr := (hr + (24 + utcoffset)) // 24 ' add utc offset utctime[0] := (hr / 10) + "0" ' convert back to string utctime[1] := (hr // 10) + "0" s_insert(":", 2, @utctime) s_insert(":", 5, @utctime) utctime[8] := 0 Pst.Str(@UTCTime) PST.CHAR (13) '''''''''''''''''''''''''''' fcopy(@UTCdate, @digiBuf, 2) if hr <= utcoffset ' catch day shift dy :=str2dec(@utcdate[2],2) dy := dy + 1 utcdate[2] := (dy / 10) + "0" ' convert back to string utcdate[3] := (dy // 10) + "0" s_insert("0", 0,@utcdate) ' format for msql style time from mmddyy to yyyy-mm-dd s_insert("2", 0,@utcdate) ' add century s_insert(utcdate[6], 2,@utcdate) ' move year to end of century s_insert(utcdate[8], 3,@utcdate) s_insert("-", 4,@utcdate) ' add dashes s_insert("-", 7,@utcdate) utcdate[10] := 0 ' terminate Pst.Str(@UTCdate) PST.CHAR (13) ''''''''''''''''''''''''''''''' fcopy(@tempF, @digiBuf, 4) s_insert(".", 4, @tempf) tempf[6] := 0 Pst.Str(@tempF) PST.CHAR (13) ''''''''''''''''''''''''''''''' fcopy(@humP, @digiBuf, 5) s_insert(".", 4, @humP) hump[6] := 0 Pst.Str(@humP) PST.CHAR (13) ''''''''''''''''''''''''''''''' fcopy(@PresIn, @digiBuf, 6) s_insert(".", 4, @PresIn) presIn[6] := 0 Pst.Str(@PresIn) PST.CHAR (13) ''''''''''''''''''''''''''''''' 'now lets spit it all out at once! PST.char("&") PST.str(@UTCdate) pst.char(" ") pst.str(@utctime) pst.str(string("&realtime=1&tempf="))
spin
17K
Comments