You are on page 1of 10

tcpdump -i lo udp port 7781 -A

//L4 to DB UMTS
tcpdump -i lo udp port 7780 -A
//L4 to DB CDMA
tcpdump -i lo udp port 7779 -A
//L4 to DB GSM
tcpdump -i lo udp port 7778 -A
//L4 to DB LTE
tcpdump -i lo udp port 14448 -A
//DB to L5 UMTS
tcpdump -i lo udp port 14447 -A
//DB to L5 CDMA
tcpdump -i lo udp port 14446 -A
//DB to L5 GSM
tcpdump -i lo udp port 14445 -A
//DB tx side to L5 LTE
tcpdump -i lo udp port 13337 -A
//L5 rx side from DB LTE
tcpdump -i lo udp port 13345 -A
//ptt_scan output to the alertHandler
tcpdump -i lo udp port 13346 -A
//PTT alertHandler output to the Brain
tcpdump -i eth0 tcp port 8617 -w /tmp/ndr308.pcap //talking to the ndr308 tunerC
trl from the ndr308srvr backend
//ubuntu command line image viewer
eog image-filename
//pdf viewer
eveince pdf-filename
//gdb attach to running process
gdb -pid 23067
//or just issue the gdb command and once you are at the gdb prompt type
attach pid
//note that this stops the program and you will need to type co
ntinue to keep running
info threads
//to see all threads (the * is the current thread being monitor
ed
thread n
//to switch to a specified thread
cntrl x cntr a //to see a source window in gdb, use this to also to toggle it
off
directory "path to source files" //to let gdb know where the code to debug is
b filename:linum //to set a break point also look into watch points
//to parse rover csv and get all the uniq decoded cells use
cat TSR_GSM_8-14-20150827T103606.gns | awk -F, '{ print $9 " " $10 " " $11 " " $
12 }' | sort | uniq -d
//To see database performance use, then use the ? menu to set the meas interval
and
//watch the qps queries per second
innotop -uroot -ppassword
//to see device info for usb devices use
lsusb
//To see what ports and files the ptt_scan program is using
lsof -p `pgrep ptt_scan`
//To see what ports and files the ptt_scan program is using
lsof -p `pgrep alertHandler`
//list only hidden files
ls -ld .?*
//To see the send and the return of a brain task in the brain log
tail -f UmtsBrain.log | grep 'Buff=UMTS_\|Completed taskType'
//to see cpu info
lscpu
//to list only files that are 2 chars long

find . -name "??"


//To see duplicates in a file, create a sorted file then run
uniq -d file.txt
//for loop thru all files in a folder and do something to them
for i in *.iq; do md5sum $i; done > tt
//To see which udp ports are listening and the process name using that port use
ss -lnup
ss -lnup | head to see the column names
ss -lnup | grep v49 //to see a specific process name
//A top like tool to something similar is
netstat -c --udp -an
//To access another machine use this command (as user not root)
ssh user@192.168.25.148
Once logged onto the other machine as user you can sudo su
//To
find
//To
find
//To
find

delete files of type *.tif smaller than 160k


-name "*.tif" -size -160k -delete
delete files greater than 160k use
-name "*.tif" -size +160k -delete
delete files exactly 160k use
-name "*.tif" -size 160k -delete

//Save make output to a file so you can grep for errors also displays it to std
out
make clean all install 2>&1 | tee output.log
//To reset the dhcpd leases remove the following file. This allows you to change
tuners connected to a backend
rm /var/lib/dhcp/dhcpd.leases
Then issue this command to restart the dhcp service
//back end dhcp server restart
/etc/init.d/isc-dhcp-server restart
//networking restart
/etc/init.d/networking restart
//To get an address via dhcp issue
dhclient eth1
//to toggle an interface up or down (ifup ifdown)
ifconfig eth1 up
//To see the bridge info issue pan1 pan0
brctl show
//path to the interfaces file
/etc/network/interfaces
//path to the usb network udev rule
/etc/udev.rules.d/70-persistent-net.rules
//To run the reset script
mysql -uroot -ppassword < tableCreationText.sql
mysql -uroot -ppassword mrtDB
mysql> SHOW COLUMNS FROM mytable FROM mydb;
//restart udev rules variation 1 which didnt work for the gps
sudo service udev restart
//dmesg human readable timestamps
dmesg -T

//Use this to reload the udev rules


udevadm control --reload
//To watch what happens when devices
udevadm monitor
//or try
unbuffer udevadm monitor --environment
//To increase the logging of udev rules use this command
//The default log level for udev rules is "err" see file /etc/udev/udev.conf
//Then you will see all logs in your system log via syslog
udevadm control --log-priority=info
//display info about the port
stty -a -F /dev/gps
//set the port speed to 4800
stty -F /dev/gps ispeed 4800
//ouputs gps data
cat /dev/gps
//set 115200 8N1 for dev gps for the firefly gps
stty -F /dev/gps ispeed 115200 cs8 -cstopb -parenb
//gpsd commands (on my laptop)
lsof | grep ttyUSB0 // to see who owns this port
//To set the gps in nmea mode and 4800 baud and use gpsctl in low level mode
gpsctl -f /dev/ttyUSB0 -n -s 4800
gpsmon /dev/ttyUSB0
//serial port dump with timestamps
jpnevulator --ascii --timing-print --read --tty /dev/gps
//To see info about the serial ports
setserial -ga /dev/ttyS*
setserial -g /dev/ttyS*
//recursive searches that skip svn and cscope and tags files
grep -ri --exclude=*.{tags,svn} --exclude=tags --exclude=tt getGps *
grep -r --exclude=*.{tags,svn*} --exclude=tags --exclude=cscope* l3parse *
//To grep for pn=3 or pn=xxx,3,rrr or pn=xxx,uuu,3
grep -n pn= EvdoBrain.log | grep -P 'pn=3,[0-9]{3}'\|'pn=[0-9]{3},3,'\|'pn=[0-9]
{3},[0-9]{3},3,'\|'pn=[0-9]{3},[0-9]{3},[0-9]{3},3'
//This will test for 5 pns at once
grep -P 'pn=[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3}' EvdoBrain.lo
g
//This will test for 6 pns at once
grep -P 'pn=[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},' EvdoBrain.l
og
//to check out from the new svn use
svn co https://subversion.npnj.g3ti.local/MRT/trunk trunkNew
//To simulate a merge of a branch back to the trunk use this command to see how
many conflicts there will be
//Even after building the clean latest trunk I had to do an svn update to get ri
d of the following error
//about the file named corestat getting restored
//Issue this command from inside the trunk folder

svn merge --dry-run --reintegrate https://subversion.npnj.g3ti.local/MRT/branche


s/ptt > ttt
//To fix local conflicts
svn resolve --accept=working *
//this version can be run at the top level and it will recurse the folders fixin
g conflicts
svn resolve -R --accept=working *

//To see which files have changed between 2 revs use


svn diff -r 5000:6001 --summarize
svn diff -r 13447:HEAD --summarize
//To actually diff those files remove the --summarize option
//Build stand alone gps
gcc CEventHandler.cpp NMEA.c NmeaParser.cpp SGPS.cpp -o sgpsTest2 -L . -l G3_Com
pat_2 -lpthread -lm -lrt
gdb --args commandname args for command name
//this command will set multiple delimeters for -F in this case ( and )
awk -F'[()]' '{ print $2 }'
//This command skips the Rover header lines and then takes the timestamp and con
verts it to seconds
awk -F [T,:' '] 'NR>6 { secs=$3*3600+$4*60+$5; print secs " " $0; }' | head
//PTT to find duplicate search freqs in the l5 log
grep PTT_search PttBrain.log | awk -F'[= ]' '{ print $13 }' | sort | uniq -d
//This command will test for the issue where the wrong center freq was reported
for a frequency
cat PttBrain.log | grep -i buff= | awk -F'[= ]' 'BEGIN{result="PASS";} { delta=$
13-$15; if(delta>10 || delta<-10){ print $13 " " $15 " " delta "\t\tFAIL" " " $2
; result="FAIL"; } else { print "pass f=" $13 " fctr=" $15;}} END{print "Final R
esult=" " " result}'
//This command will convert a hex string to into a c array format
//testMsgs holds the hex string
cat testMsgs | fold -2 | awk -F, 'BEGIN { print "\nunsigned char arrayName[]= {"
} { printf "0x%s, ", $0 } END { print "\n};"}'
//Use this command to extract the mib from a gns file
cat TSR_UMTS_2-4-5-20141015T112614.gns | awk -F, '{print $21 }'
//This is the folder where the l3parse is launched
/home/user/workspace/trunk/wcdma/UmtsDecoder/
//Subtract prev row from curr row in a file to get running offset
grep "Time update" nmeaParser.log | awk -F: '{ x[NR]=$NF } END { for(i=1; i<NR;
i++) {print x[i] ":" x[i-1] " delta=" x[i]-x[i-1]'}}
//Filters out wrap around near 59-0 then saves results to a file called tt which
gets cat into xgraph
//We also store the entire command in y[] array
grep "Time update" nmeaParser.log | awk -F: '{ y[NR]=$0; x[NR]=$NF; } END { for(
i=1; i<NR; i++) { if(x[i] > x[i-1]) {temp=x[i]-x[i-1]; print x[i] ":" x[i-1] " d
elta=" temp; print i " " temp > "tt"; } if(temp>2){print y[i]} } '}

//to see directories in svn


svn list https://subversion.g3np.org/
//to see total search/scan/decode tasks awaiting L4/L3 processing after the grab
is completed
//Note that this is assuming the log file is tech specific
grep push_q2 tsControl-umts.log | grep search | wc -l
grep push_q2 tsControl-umts.log | grep scan | wc -l
grep push_q2 tsControl-umts.log | grep decode | wc -l
//Verifies how often we write to Rover (Should be every second)
cat LteBrain.log | grep -i "Wrote to rover" | awk -F [T:' '] '{ x[NR]=$3*3600+$4
*60+$5;} END { for(i=1; i<NR; i++) { temp=x[i]-x[i-1]; print temp} }'
//Creates an xgraph file of the above command
cat LteBrain.log | grep -i "Wrote to rover" | awk -F [T:' '] '{ x[NR]=$3*3600+$4
*60+$5;} END { for(i=2; i<NR; i++) { temp=x[i]-x[i-1]; print i " " temp} }' > t
t.xg
//Setting the y axis min and max same pattern for x axis
xgraph -ly 0,5 tt.xg
//To see a specific users commits and files changed
svn log -v -l50 | sed -n '/agambardella/,/-----$/ p'
//To see all changes over a data range
svn log https://subversion.g3np.org/MRT/trunk -r {2014-10-30}:{2014-10-31}
//To see what will be updated prior to updating
svn status -u
//To verify if a backend has the larger buffer settings should see 1000000 if th
e change has been made
cat /proc/sys/net/ipv4/udp_rmem_min
//To debug the UMTS L3 SFN Gaps and verify SIB reception
///trunk/wcdma/UmtsDecoder/umts_decode_proc_308.sh is the script that starts the
se processes
tail -f chDecoder.log | grep "CRC fail"
tail -f v49umts.log | grep missed
tail -f umtsL3.10213.log | grep "Block11\|INVALID"
grep 7FC80A731700 dblog.log | grep 00:28:30
bwm-ng
//To see info about EVDO tasks
tail -f EvdoBrain.log | grep "determineIf\|EC=\|EVDO_scan\|ECIO=\|noSig\|EVDO_de
code\|Decode completed\|not in range"
//Get the unique thread ids of a Brain program from the Brain log
cat LteBrain.log | awk '{ print $3 }' | sort | uniq
//visual folder and file disk usage
k4dirstat
//Calc gns file time stamp gaps between rows and prints entire line where gap is
larger than 2 seconds
cat *LTE*.gns | awk -F [T,:' '] '{ x[NR]=$3*3600+$4*60+$5; y[NR]=$0 } END { fo
r(i=1; i<NR; i++) { temp=x[i]-x[i-1]; if(temp >= 3) print temp "---" y[i-1]; }
}' > tt
//To mount the g3 vault network folder to get to it via the command line
//Step 1: goto your /mnt folder and create the following folder

mkdir vault
//Step 2: issue this command and use your domain password
//This is the correct username and the password is still the @ based one
smbmount //s20-dc001/g3_vault /mnt/vault/ -o user=albert.gambardella
smbmount //s20-dc001/public\ public /mnt/public/ -o user=albert.gambardella
//use dtrx to uncompress or extract tar files and .gz
//Or my alias
targz tarfilename.gz //to extract all files
targz tarfilename.gz specificfilename //to only extract a specific file
tar xvzf --wildcards tarfilename regexpr //to extract mult files matching regexp
r
//vi command to delete blank lines in the file being edited
:g/^$/d
//Find 10 largest
du -hsx * | sort -rh | head -10
//This command removes duplicates from an existing command history file
//note that there are 2 history files one is in /root and the other in /home/use
r
cat .bash_history | awk '!x[$0]++' > ttt
//To calc just the avg task times in dblog over entire test
grep "LTE Processing time for taskType=0" dblog.log | awk '{ sum += $NF; n++; pr
int $NF } END { if (n > 0) print sum / n; }'
//Does max and avg
grep "LTE Processing time for taskType=2" dblog.log | awk 'BEGIN {max = 0} { if
($NF>max) max=$NF; sum += $NF; n++; } END { if (n > 0) print "AVG="sum / n; pri
nt "MAX=" max }'
//To
grep
//To
grep

grep for a floating point number 1935.0


-w "1935[\.]0" LteBrain_2014_1119_230005.log | grep LTE_search
grep for a negative floating point value -98.6
-w "\-98[\.]6" LteBrain_2014_1119_230005.log | grep LTE_search

//removes carls colorcodes


sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" output.log > output.log2
mysqldump -uroot -ppassword --no-create-info --complete-insert mrtDB MissionHist
ory > /tmp/missionHistorySave.sql
mysql -uroot -ppassword < /var/www/ts/data/tableCreationText.sql
mysql -uroot -ppassword mrtDB < /tmp/missionHistorySave.sql
mysql -uroot -ppassword < /var/www/ts/data/fillMccMncTableText.sql
mysql -uroot -ppassword < /var/www/ts/data/TSAK.sql
mysql -uroot -ppassword < /var/www/ts/data/TSAK_SID.sql
mysql -uroot -ppassword < /var/www/ts/data/fillBandsTable.sql
//TO count rows inside mysql
select count(*) from DecodeTable;
//To see how many times a cell was dropped from the brain issue the following gr
ep command:
grep -i badfscount=5 LteBrain.log
//For new jackson labs firefly gps
KERNEL=="ttyUSB*", ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0109", NAME="gps"
, RUN+="/Virtuoso/master/kickGPS.sh", OPTIONS+="last_rule"

//Mike D's incomplete and lame way to do a grab at some unknown freq
trunk/NDR308# ./bps.308 eth2 //channelizer per data stream
trunk/NDR308# ./bps.308 eth3 //all IF data
trunk/NDR308# ./ndr308_grab --port 14001 -n 20000 //does an lte grab and saves a
xxx.v49 file to same folder
//Agam way that works to do a grab at a known freq
//Step 1 start ndr308 server using appropriate ip address
ndr308_Server -host 192.168.1.20 -cfg /usr/local/bin/ndr308.cfg
ndr308_Server -host 10.211.160.20 -cfg /usr/local/bin/ndr308.cfg
//Step 2 do the grab note the path name trunk vs trunkNew etc ...
//The v49 grab file is put in public/mrt/logs. Below are some examples
/home/user/workspace/trunkNew/wcdma/CellSearch/udpTunerCmdClient 'grab tech=lte
to=10000 freq='$FREQ' blocks=85 name='outputfilename bw=1.4'
/home/user/workspace/trunkNew/wcdma/CellSearch/udpTunerCmdClient 'grab tech=cdma
to=10000 freq=1951.25 blocks=10000 name=tttEvdo.v49 bw=1.2288'
/home/user/workspace/trunk/wcdma/CellSearch/udpTunerCmdClient 'snapshot freq=212
0 blocks=1024 name=/public/rssi/iq/snap.2120.v49'
udpTunerCmdClient 'snapshot freq=1950 blocks=10000 name=/public/rssi/iq/snapshot
_1950M_308_qam16d_n100.v49'
udpTunerCmdClient 'grab tech=evdo to=10000 freq=1951.25 blocks=10000 name=EvdoGr
ab1951-25-n60.v49'
//Step 3 if necessary convert v49 to 16 bit iq
cat evdoGrab.v49 | v49_ndr308 -bin16 > evdoGrab.iq
//Step 4 evdo decode must be run from cdma2/evdo folder
./evdoTestMain -f /home/user/tttEvdo.iq -t 16 --decode --flip_iq 2>&1 | grep -i
-A10 "CC hdr" > badSectorParamsParse
//To run the g3lte proc as a udp server issue the following command
g3lte -l 1
//Then run udp_send --portnum and hit return
//Then in the udp_send terminal paste the following command
"id=2408 type=decode f=1935.0000 name=/public/mrt/logs/mikedbag4 out=/public/mrt
/logs/mikedout pci=291"
//The g3lte logging goes to file mikedout
//To grep whole words use the -w option
//To pretty print shell output pipe the output through
command bla bla bla | column -t
//Counts the number of commas in each sendTask line which is used to count the n
umber of brain sendTasks that
//are multiple scans or decodes
grep sendTask CdmaBrain.log | awk -F, '/,/{sum+=(NF-1); print NR,NF-1,sum $0}'
//just the sum
grep sendTask CdmaBrain.log | awk -F, '/,/{sum+=(NF-1);} END {print sum} '
//Start ndr308 server. This is in usr/local/bin and doesnt require the ./
ndr308_Server -host 192.168.1.20 -snapwait 3000 &> /public/mrt/logs/ndr308_Serve
r.log &
//Start tsControl for EVDO
tsControl --evdo --num_proc 2 --q1-depth 30 --q2-depth 20 --grab-depth 4 &> /pub
lic/mrt/logs/tsControl-evdo.log &
//Start db
mrtdbProxy -d DEBUG4 &
//Switch to vim, and use :set hlsearch
//You can then use :highlight Search ctermfg=yellow to customize; where:
cterm is for formating

ctermfg is for foreground color


ctermbg is for background color
//see :help highlight link
//You can then use :noh to temporarily hide the last search highlight.
//to close the quickfix list
:ccl
//This is a line from the tsControl log for CDMA. This is how you determine if P
N 0 is a problem. The value in parenthesis (0.018s) is what you need to focus on
.
//If its bigger than 10 seconds than PN0 will be unreliable because searches are
not occurring often enough to keep it updated.
***WARNING***: G3NJ_ERR: cdma_cell_search: samp_num= 1309991452 pn0_samp_num= 13
09969948 diff= 21504 (0.018s) PN= 244 peakIndex= 6582 Ec/Io= -5.06 PN0= 16082 PN
0_avg= 16084.73 stream_id= 6
//Use this command to awk out that PN0 related time value. This command will sor
t the values from smallest to largest.
//NOTE THAT THE FIRST VALUE in the beginning of the log should be ignored. It wi
ll be a very large value.
grep -i pn0 tsControl-cdma.log | awk -F'[()]' '{ print $2 }' | sort -n
//to see how many channelizers are being used use this command (CDMA example)
grep CDMA- ndr308_Server.log
//to use non promiscuous mode
tcpdump -p -i eth2
If you want the app to always run as root
1) Pin the application to the launcher as normal.
2) Locate the applications .desktop file which will be in either:
/usr/share/applications/APPNAME.desktop
~/.local/share/applications/APPNAME.desktop
or somewhere else, use locate .desktop|grep APPAME
3) Open with gedit:
gksudo gedit /usr/share/applications/APPNAME.desktop
4 ) Change then line
Exec=APP_COMMAND
to
Exec=gksudo -k -u root APP_COMMAND
5) Save
This command will also keep your environment which is very usefull if you need t
o connect to others servers and use your private key.
To add a quicklist option to 'Run as root'
Follow steps 1, 2 and 3 above
If the launcher currently doesn't have any other quicklist options, just append
this to the end of the document
X-Ayatana-Desktop-Shortcuts=Runroot
[Runroot Shortcut Group]
Name=Run as root
Exec=gksudo -k -u root APP_COMMAND
TargetEnvironment=Unity
PTT compile steps
----------------cd /home/user/workspace/ptt/G3_Core;
make clean all install
cd /home/user/workspace/ptt/NDR308;
make clean all v49_ndr308.o # need this .o

cd /home/user/workspace/ptt/ptt;
make v49_main ptt_scan
cd /home/user/workspace/ptt/ptt/WF;
make all
PTT run these programs (see /root/bin/setupPtt.sh )
---------------------cd /home/user/workspace/ptt/NDR308;
./lab.dip; //You may have to run this from the trunk locally
ndr308_Server -host tunerCtrl //You may have to run this from the trunk loca
lly
# from another terminal do a grab at 145MHz to set tuner freq. If it works y
ou will see "uuusnd(): resp is ok"
fn=/tmp/xx-lte.v49; rm $fn; uuusnd -p 5555 "grab tech=lte freq=145 blocks=90
0 name=$fn bw=20" OK
cd /home/user/workspace/ptt/ptt;
./v49_main -p 14001 # 14001-4 or 14023
./ptt_scan -T 15 -N 2048 -F 0.00 -C -S 30.72 # thresh, fftLen, fC, conj, sR
cd /home/ptt/ptt/WF;
./pumpit.sh
run seahorse to delete gnome keyring passwords like default
or...
rm ~/.gnome2/keyrings/login.keyring
To fix errors about dbus when opening vi or coolcommands via cool use this comma
nd
eval `dbus-launch`
ps aux | grep -e "ndr\|v49\|ptt\|PttBrain\|tsControl\^Crtdb\|alertHandler" | awk
'{ print $2 }' | xargs -I{} kill -9 {}
//This will change your ip scheme without changing your tuners ip address
//Use it if your back end is 192.168. based but the tuner is 10.211 based.
//To see this comand issue: ifedit -h
ifedit oldTuner=192.168.1.20 newTuner=10.211.160.20 oldWifiSubnet=10.42.43 newWi
fiSubnet=10.211.43 \
oldList="192.168.1.10 192.168.150.3 192.168.140.3 192.168.1.20 192.168.
150.2 192.168.140.2" \
newList="10.211.160.10 10.211.150.3 10.211.140.3 10.211.160.20 10.211.1
50.2 10.211.140.2" -noTunerChange
//Start TS, then start process monitoring like this ...
nohup atop -p 60 6000 &> atop.out &
//where 60 = interval in sec, 6000 = num intervals, Option "-p" accumulates proc
ess activity per program (i.e. process name).
... then run
mkplot-atop. Work files are written to "/dev/shm/mkplot-atop".
cat evdoGapsQxdm.txt | awk '{if($1=="LOG") {time=$8;} if(substr($0,1,26)=="Activ
e Set\[0\]\.Pilot Energy") print time " " $5 }' > plot1
cat plot1 | awk -F'[:. ]' '{print $1*3600000 + $2*60000 + $3*1000 + $4 " " $5 }'
> plot2
cat plot2 | sort -unk1 > plot3
grep -n 'Active Set\[0\]\.Pilot Energy
= 0' evdoGapsQxdm.txt
//Counting multple PN jobs
//First save the output of the 2 lines below to a file tt
grep 'UMTS_decode\|UMTS_scan\|UMTS_decode' UmtsBrain.log | awk -Fsc '{ print $NF

}' > umtsPSCs


grep 'CDMA_decode\|CDMA_scan\|CDMA_decode' CdmaBrain.log |
}' > cdmaPNs
//Then use this awk cmd to count the multiple pns per grab
awk -F, 'BEGIN {MAX=0; SUM=0} { if(NF>MAX)MAX=NF; SUM+=NF;
END {print "------"; print "MAX PNS PER SINGLE GRAB="MAX;
print "AVG PNS PER GRAB=" SUM/NR }' cdmaPNs

awk -Fpn '{ print $NF


and total them
print $0 " --- "NF}
print"TOTAL PNs="SUM;

//To do a taskid analysis on a brain log do the following.


//Get the task ids of all the task types you are interested in
grep EVDO_decode EvdoBrain.log | awk -F'[ =]' '{ print $13 }' > taskidFileName
grep EVDO_searchEvdoBrain.log | awk -F'[ =]' '{ print $13 }' > taskidFileName
grep EVDO_scan EvdoBrain.log | awk -F'[ =]' '{ print $13 }' > taskidFileName
//Then use xargs to search for each taskid
cat evdoDecodes | xargs -l1 -i grep {} EvdoBrain.log > evdoPerDecode
//OR BETTER YET RUN THIS SHELL SCRIPT
idParser on my Desktop
//and there is a script called cirParser also
cirParser
//To
sudo
sudo
sudo

upgrade to g++ 5 I used


add-apt-repository ppa:ubuntu-toolchain-r/test
apt-get update
apt-get install gcc-4.7

//byte buffer printing use this printf format otherwise the print doesnt show 0f
it shows f but memory actually contains a 0f
for(unsigned int i=0; i<len; i++) {
LOG_OUT("%02x", msg[i] );
}

You might also like