Merge pull request #6 from Giermann/patch-1

fixed script to work with standard awk, switched to ebusctl instead of nc
This commit is contained in:
John
2015-11-20 06:18:23 +01:00
+20 -12
View File
@@ -1,8 +1,9 @@
#!/bin/sh #!/bin/sh
echo "grab result"|nc localhost 8888|awk ' ebusctl grab result|awk '
BEGIN{ BEGIN{
len[""]=0 len[""]=0
delete len[""] delete len[""]
found=0
} }
/grab disabled/ { /grab disabled/ {
print "enable grab first!" print "enable grab first!"
@@ -10,9 +11,10 @@ BEGIN{
} }
/.+/ { /.+/ {
len[substr($1,3)]=length($3)/2; len[substr($1,3)]=length($3)/2;
found=1
} }
END { END {
if (length(len)>0) if (found>0)
print "# type (r[1-9];w;u),circuit,name,[comment],[QQ],ZZ,PBSB,[ID],field1,part (m/s),datatypes/templates" print "# type (r[1-9];w;u),circuit,name,[comment],[QQ],ZZ,PBSB,[ID],field1,part (m/s),datatypes/templates"
for (i in len) { for (i in len) {
zz=substr(i,1,2) zz=substr(i,1,2)
@@ -20,22 +22,28 @@ END {
id=substr(i,9) id=substr(i,9)
idlen=length(id)/2 idlen=length(id)/2
if (pbsb=="b509" && substr(id,1,2)=="0d") { if (pbsb=="b509" && substr(id,1,2)=="0d") {
//register read # register read
reg=strtonum("0x" substr(id,3,2)) reg=index("123456789abcdef",tolower(substr(id,4,1)))
reg+=strtonum("0x" substr(id,5,2))*256 reg+=index("123456789abcdef",tolower(substr(id,3,1)))*16
reg+=index("123456789abcdef",tolower(substr(id,6,1)))*256
reg+=index("123456789abcdef",tolower(substr(id,5,1)))*4096
print "r,unknown" zz ",reg" reg ",,," zz "," pbsb "," substr(id,3,4) ",data,,HEX:" (len[i]-1) print "r,unknown" zz ",reg" reg ",,," zz "," pbsb "," substr(id,3,4) ",data,,HEX:" (len[i]-1)
} else if (pbsb=="b509" && substr(id,1,2)=="0e") { } else if (pbsb=="b509" && substr(id,1,2)=="0e") {
//register write # register write
reg=strtonum("0x" substr(id,3,2)) reg=index("123456789abcdef",tolower(substr(id,4,1)))
reg+=strtonum("0x" substr(id,5,2))*256 reg+=index("123456789abcdef",tolower(substr(id,3,1)))*16
reg+=index("123456789abcdef",tolower(substr(id,6,1)))*256
reg+=index("123456789abcdef",tolower(substr(id,5,1)))*4096
print "w,unknown" zz ",reg" reg ",,," zz "," pbsb "," substr(id,3,4) ",data,,HEX:" (idlen-3) print "w,unknown" zz ",reg" reg ",,," zz "," pbsb "," substr(id,3,4) ",data,,HEX:" (idlen-3)
} else if (pbsb=="b509" && substr(id,1,2)=="29") { } else if (pbsb=="b509" && substr(id,1,2)=="29") {
//register update # register update
reg=strtonum("0x" substr(id,3,2)) reg=index("123456789abcdef",tolower(substr(id,4,1)))
reg+=strtonum("0x" substr(id,5,2))*256 reg+=index("123456789abcdef",tolower(substr(id,3,1)))*16
reg+=index("123456789abcdef",tolower(substr(id,6,1)))*256
reg+=index("123456789abcdef",tolower(substr(id,5,1)))*4096
print "u,unknown" zz ",reg" reg ",,," zz "," pbsb "," substr(id,3,4) ",,,IGN:2,,,,data,,HEX:" (len[i]-3) print "u,unknown" zz ",reg" reg ",,," zz "," pbsb "," substr(id,3,4) ",,,IGN:2,,,,data,,HEX:" (len[i]-3)
} else if (len[i]<=1 || idlen>3) { } else if (len[i]<=1 || idlen>3) {
//seems to be a write # seems to be a write
if (idlen>3) idlen=3 if (idlen>3) idlen=3
else if (len[i]<=1) idlen--; else if (len[i]<=1) idlen--;
printf "w,unknown" zz "," printf "w,unknown" zz ","