commMap.Put("bulk"", 5) 		'send by tinySA when in auto refresh mode format: "bulk\r\n{X}{Y}{Width}{Height}{Pixeldata}\r\n" where all numbers are binary coded 2 bytes little endian. The Pixeldata is encoded as 2 bytes per pixel 
commMap.Put("time"", -3) 		'sets/gets SA time usage: time {[y|m|d|h|min|sec] 0-99} or {b 0xYYMMDD 0xHHMMSS}  Result = 2000/01/15 00:22:48
commMap.Put("dac"", -1)		'sets or dumps the frequency level correction table usage: correction [0..9 {frequency} {level}] 
commMap.Put("nf"", -1)			'nf value ??
commMap.Put("saveconfig"", 0)	'Saves the congig data in SA memory usage: saveconfig 
commMap.Put("clearconfig"", 0  'Clear config data ?? 
commMap.Put("zero"", -1)		'Sets/gets zeo dBm level 
commMap.Put("sweep"", -3  	'set sweep boundaries or execute a sweep usage: sweep [ ( start|stop|center|span|cw {frequency} ) | ( {start(Hz)} {stop(Hz)} [0..290] ) ] sweep without arguments lists the current sweep settings", the frequencies specified should be within the permissible range. The sweep commands apply both to input and output modes 
commMap.Put("pause"", 1)		'pauses the sweep and sets the measurement frequency usage: freq {frequency}  
commMap.Put("resume"", 0)		'resumes the sweeping in either input or output mode usage: resume 
commMap.Put("wait"", 0)		'Just pauses the SA sweep 
commMap.Put("repeat"", 0)      'Repeats a sweep ??		
commMap.Put("status"", 0)		'Shows running status
commMap.Put("caloutput"", 1)   'disables or sets the caloutput to a specified frequency in MHz usage: caloutput off|30|15|10|4|3|2|1  
commMap.Put("save"", 1)		'saves the current setting to a preset usage: save 0..4 where 0 is the startup preset 
commMap.Put("recall"", 1)		'Same as load - loads a previously stored preset usage: load 0..4 where 0 is the startup preset  
commMap.Put("trace"", 2)		'displays all or one trace information or sets trace related information usage: trace [ {0..2} | dBm|dBmV|dBuV|V|W |store|clear|subtract | (scale|reflevel) auto|{level} 
commMap.Put("trigger"", 2)		'sets the trigger type or level usage: trigger auto|normal|single|{level(dBm)} the trigger level is always set in dBm
commMap.Put("marker,	1)		'sets or dumps marker info usage: marker {id} on|off|peak|{freq}|{index} where id=1..4 index=0..num_points-1 Merker levels will use the selected unit Marker peak will activate the marker (if not done already)"", position the marker on the strongest signal and display the marker info The frequency must be within the selected sweep range  
commMap.Put("line"", 1)        'Sets a dBm line on the display usage line off|level
commMap.Put("usart_cfg", 0)	'Reports baud rate 		
commMap.Put("vbat_offset", 0)	'Reports sets vbat offset?
commMap.Put("color", -1)  	'sets or dumps the colors used usage: color [{id} {rgb24}] 
commMap.Put("if", -1)			'Sets if {975M..979M} sets the IF to automatic or a specific value usage: if ( 0 | 433M..435M ) where 0 means automatic 
commMap.Put("if1", -1)		'Sets if1 {975M..979M}sets the IF to automatic or a specific value usage: if ( 0 | 433M..435M )where 0 means automatic  
commMap.Put("lna2", -1)		'Sets the NNA Gain 0..7 | Auto
commMap.Put("agc", -1)		'Sets the AGC  0..7 | Auto
commMap.Put("actual_freq", 0) 'Gets actual frequency of ??
commMap.Put("freq_corr", -1)  'Gets sets frequency adjust ppb
commMap.Put("attenuate", -1)  'Set gat Attenuate 0..31|auto
commMap.Put("level", 			'Set the output level -76..13 Not all values in the range are available 
commMap.Put("sweeptime", -1)	'sets the sweeptime usage: sweep {time(Seconds)}the time specified may end in a letter where m=mili and u=micro commMap.Put("leveloffset", 	'sets or dumps the level calibration data usage: leveloffset low|high|switch [output] {error} For the output corrections first ensure correct output levels at maximum output level. For the low output set the output to -50dBm and measure and correct the level with "leveloffset switch error" where For all output leveloffset commands measure the level with the leveloffset to zero and calculate error = measured level - specified level 
commMap.Put("levelchange", -1) 'sets the output level delta for low output mode level sweep usage: levelchange -70..+70 commMap.Put("modulation", 
commMap.Put("rbw", -1)		'sets the rbw to either automatic or a specific value usage: rbw 0.2..850|autthe number specifies the target rbw in kHz 
commMap.Put("mode", -1)		'Sets mode [low] input|output
commMap.Put("spur", -1)		'enables or disables spur reduction usage: spur on|off 
commMap.Put("lna", -1)		'LNA on or off  lna off|on
commMap.Put("direct", -2)     'set direct{start|stop|on|off} {freq(Hz)}		
commMap.Put("ultra", 			'Sets up ultra mode  ultra off|on|auto|start|harm {freq}
commMap.Put("load", 1)		'loads a previously stored preset usage: load 0..4 where 0 is the startup preset  
commMap.Put("ext_gain", -1)   'sets the external attenuation/amplification usage: ext_gain -100..100 Works in both input and output mode  
commMap.Put("output", -1)     'Set output on|off|normal|mixer
commMap.Put("deviceid,		'Set get device ID deviceid {integer} 
commMap.Put("correction", -1) 'correction sets or dumps the frequency level correction table usage: correction [0..9 {frequency} {level}] 
commMap.Put("calc", -1)		'sets or cancels one of the measurement modes usage: calc off|minh|maxh|maxd|aver4|aver16|quasip the commands are the same as those listed in the MEASURE menu 
commMap.Put("menu", -4)		'The menu command can be used to activate any menu item. usage: menu {#} [{#} [{#} [{#}]]] where # is the menu entry number starting with 1 at the top. Example: menu 6 2 will toggle the waterfall option 
commMap.Put("text", -1)		'text specifies the text entry for the active keypad usage: text keypadtext where keypadtext is the text used  Example: text 12M    Currently does not work for entering file names 
commMap.Put("remark", 0)		'does nothing
commMap.Put("Other", 0)		'Not a command
commMap.Put("version", 0) 	'Outputs version info
commMap.Put("reset,0)		'Reset the unit to factory
commMap.Put("data", -1)		'Select data 0..2  ?What data
commMap.Put("frequencies", 0)	'frequencies dumps the frequencies used by the last sweep    usage: frequencies 
commMap.Put("scan", -3) 		'scan     performs a scan and optionally outputs the measured data     usage: scan {start(Hz)} {stop(Hz)} [points] [outmask]   where the outmask is a binary OR of 1=frequencies", 2=measured data", 4=stored data and points is maximum 290 
commMap.Put("hop", -4)		' (Ultra only)  measures the input level at each of the requested frequencies usage: hop {start(Hz)} {stop(Hz)} {step(Hz) | points} [outmask] If the 3rd parameter is below 450 it is assumed to be points", otherwise as step frequency Outmask selects if the frequency (1) or level (2) is output. 
commMap.Put("scanraw", -3)	'performs a scan of unlimited amount of points and send the data in binary form usage: scanraw {start(Hz)} {stop(Hz)} [points] The measured data is the level in dBm and is send as '{' ('x' MSB LSB)*points '}'. To get the dBm level from the 16 bit data", divide by 32 and subtract 128. 
commMap.Put("test", 0)		'Don't know	 
commMap.Put("touchcal", 0)	'Start screen touch cal
commMap.Put("touchtest", 0)   'Draws stuf on screen		
commMap.Put("usart", 0)		'??? 
commMap.Put("capture", 0)		'capture requests a screen dump to be send in binary format of 320x240 pixels of each 2 bytes 
commMap.Put("refresh", -1)	'enables/disables the auto refresh mode Usage refresh on|off 
commMap.Put("touch",  -2)		'sends the coordinates of a touchusage: touch {X coordinate} {Y coordinate} The upper left corner of the screen is "0 0"
commMap.Put("release", 0)		'signals a removal of the touch usage: release 
commMap.Put("vbat", 0)		'Displays batt voltage in mV
commMap.Put("help", 0)		'Lists commands
commMap.Put("info,			'Lists device H/W software data
commMap.Put("selftest", 1)	'performs one or all selftests usage: selftest 0  does all or  1..9 
commMap.Put("sd_list", 0)		'List sd card contents
commMap.Put("sd_read", 1)		'Read SD card file	
commMap.Put("sd_delete", 1) 	'Delete sd card file
commMap.Put("threads", 0)		'List threads