Hi all
I've been playing with a script to handle some serial port data (which is basically an incremental counter) and it works perfectly until it has to process ) ...(the ASCII close bracket, 41 or h29 if you like).
If I manually try &hs.writelog "Test","ASC " &asc(")") then Hs correctly returns the value 41.
However in my script :
whenever the incomming data is ) and has to be processed by b2=asc(Mid(Xmitter,7,1)) or any of the other similar statements to return it's ASCII decimal equivalent, then I just get
<TABLE cellSpacing=2 cellPadding=0 width="100%" border=0><TBODY><TR><TD class=LOGType0 align=left colSpan=3>Error </TD><TD class=LOGEntry0 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR></TBODY></TABLE>
In the log you can see the incomming data for b1 incrementing up intil it hits 9, at which point b2 should kick over to 41 or ) ......but I just get plenty of errors......then back to normal once it gets * ( or ascii 42)
<TABLE cellSpacing=2 cellPadding=0 width="100%" border=0><TBODY><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:11:32 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.05</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:11:32 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=40(() b1=5()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:11:42 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.06</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:11:42 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=40(() b1=6()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:11:52 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.07</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:11:52 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=40(() b1=7()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:12:02 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.08</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:12:02 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=40(() b1=8()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:12:12 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.09</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:12:12 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=40(() b1=9( )</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:12:22 </TD><TD class=LOGType0 align=left colSpan=3>Error </TD><TD class=LOGEntry0 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:12:33 </TD><TD class=LOGType1 align=left colSpan=3>Error </TD><TD class=LOGEntry1 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:12:43 </TD><TD class=LOGType0 align=left colSpan=3>Error </TD><TD class=LOGEntry0 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:12:53 </TD><TD class=LOGType1 align=left colSpan=3>Error </TD><TD class=LOGEntry1 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:13:03 </TD><TD class=LOGType0 align=left colSpan=3>Error </TD><TD class=LOGEntry0 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:13:13 </TD><TD class=LOGType1 align=left colSpan=3>Error </TD><TD class=LOGEntry1 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:13:23 </TD><TD class=LOGType0 align=left colSpan=3>Error </TD><TD class=LOGEntry0 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:13:33 </TD><TD class=LOGType1 align=left colSpan=3>Error </TD><TD class=LOGEntry1 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:13:43 </TD><TD class=LOGType0 align=left colSpan=3>Error </TD><TD class=LOGEntry0 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:13:53 </TD><TD class=LOGType1 align=left colSpan=3>Error </TD><TD class=LOGEntry1 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:14:03 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.2</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:14:03 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=42(*) b1=0()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:14:13 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.21</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:14:13 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=42(*) b1=1()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:14:23 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.22</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:14:23 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=42(*) b1=2()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:14:33 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.23</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:14:33 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=42(*) b1=3()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:14:43 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.24</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:14:43 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=42(*) b1=4()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:14:53 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.25</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:14:53 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=42(*) b1=5()</TD></TR></TBODY></TABLE>
I've checked the incomming data at the port and it's perfect.
So where am I going wrong? What is it about ),41, because everything else seems to return the correct value in the range 0-255 except ) 41.
Cheers
Andy (still on the scripting learning curve)
I've been playing with a script to handle some serial port data (which is basically an incremental counter) and it works perfectly until it has to process ) ...(the ASCII close bracket, 41 or h29 if you like).
If I manually try &hs.writelog "Test","ASC " &asc(")") then Hs correctly returns the value 41.
However in my script :
Code:
sub main(Xmitter) hs.GetComPortData(comport) TxDevice=Mid(Xmitter,1,2) ID=Mid(Xmitter,3,1) '============================================================== b4=asc(Mid(Xmitter,5,1)) 'Picaxe b4 b3=asc(Mid(Xmitter,6,1)) 'Picaxe b3 b2=asc(Mid(Xmitter,7,1)) 'Picaxe b2 b1=asc(Mid(Xmitter,8,1)) 'Picaxe b1 ascii3=(Mid(Xmitter,6,1)) ascii2=(Mid(Xmitter,7,1)) ascii1=(Mid(Xmitter,8,1)) Total=(b4*256)+(b3*25.6)+(b2/10)+(b1/100) hs.writelog "315Xmitter","Electricity meter ID"&ID & " Total " &Total hs.writelog "315rawdata","EM3 b3=" &b3 &"(" &ascii3 &")" &" b2=" &b2 &"(" &ascii2 &")" &" b1=" &b1 &"(" &ascii1 &")" end sub
<TABLE cellSpacing=2 cellPadding=0 width="100%" border=0><TBODY><TR><TD class=LOGType0 align=left colSpan=3>Error </TD><TD class=LOGEntry0 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR></TBODY></TABLE>
In the log you can see the incomming data for b1 incrementing up intil it hits 9, at which point b2 should kick over to 41 or ) ......but I just get plenty of errors......then back to normal once it gets * ( or ascii 42)
<TABLE cellSpacing=2 cellPadding=0 width="100%" border=0><TBODY><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:11:32 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.05</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:11:32 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=40(() b1=5()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:11:42 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.06</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:11:42 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=40(() b1=6()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:11:52 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.07</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:11:52 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=40(() b1=7()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:12:02 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.08</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:12:02 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=40(() b1=8()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:12:12 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.09</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:12:12 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=40(() b1=9( )</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:12:22 </TD><TD class=LOGType0 align=left colSpan=3>Error </TD><TD class=LOGEntry0 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:12:33 </TD><TD class=LOGType1 align=left colSpan=3>Error </TD><TD class=LOGEntry1 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:12:43 </TD><TD class=LOGType0 align=left colSpan=3>Error </TD><TD class=LOGEntry0 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:12:53 </TD><TD class=LOGType1 align=left colSpan=3>Error </TD><TD class=LOGEntry1 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:13:03 </TD><TD class=LOGType0 align=left colSpan=3>Error </TD><TD class=LOGEntry0 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:13:13 </TD><TD class=LOGType1 align=left colSpan=3>Error </TD><TD class=LOGEntry1 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:13:23 </TD><TD class=LOGType0 align=left colSpan=3>Error </TD><TD class=LOGEntry0 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:13:33 </TD><TD class=LOGType1 align=left colSpan=3>Error </TD><TD class=LOGEntry1 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:13:43 </TD><TD class=LOGType0 align=left colSpan=3>Error </TD><TD class=LOGEntry0 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:13:53 </TD><TD class=LOGType1 align=left colSpan=3>Error </TD><TD class=LOGEntry1 align=left colSpan=8>Running script, script run or compile error in file: 315Script.txt5:Invalid procedure call or argument: 'asc' in line 18 More info: Invalid procedure call or argument: 'asc'</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:14:03 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.2</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:14:03 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=42(*) b1=0()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:14:13 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.21</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:14:13 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=42(*) b1=1()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:14:23 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.22</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:14:23 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=42(*) b1=2()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:14:33 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.23</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:14:33 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=42(*) b1=3()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:14:43 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.24</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:14:43 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=42(*) b1=4()</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>13/11/2009 16:14:53 </TD><TD class=LOGType0 align=left colSpan=3>315Xmitter </TD><TD class=LOGEntry0 align=left colSpan=8>Electricity meter ID3 Total 4.25</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>13/11/2009 16:14:53 </TD><TD class=LOGType1 align=left colSpan=3>315rawdata </TD><TD class=LOGEntry1 align=left colSpan=8>EM3 b3=0() b2=42(*) b1=5()</TD></TR></TBODY></TABLE>
I've checked the incomming data at the port and it's perfect.
So where am I going wrong? What is it about ),41, because everything else seems to return the correct value in the range 0-255 except ) 41.
Cheers
Andy (still on the scripting learning curve)
Comment