{
	"type": "unicom",
	"version": 100, 
	
	"trans":{
	  "portVal":"port variable",
	  "globalVal":"global variable"
	},
	
	"hex":{ 
		"snd":[
			{
			  "name": "--Filled function--",
			  "isfunc": false
			},
			{
				"name": "set",
				"fid":"1",
				"note": "insert variable into instruction",
				"param":[
				   {"name":"Variable","note":"0:value of port,1~F:value of global variable 1~F","typeinx":1002,"def":"0"}
				]
			},
			{
			  "name": "--Validation function--",
			  "isfunc": false
			},
			{
				"name": "sum",
				"fid":"2001",
				"note": "accumulated sum of instruct",
				"param":[
				   {"name":"initial value","note":"","typeinx":1001,"def":"00"},  
				   {"name":"result xor","note":"","typeinx":1001,"def":"FF"}  
				]
			},
			{
				"name": "xor",
				"fid":"2002",
				"note": "xor of instruct",
				"param":[
				   {"name":"initial value","note":"","typeinx":1001,"def":"00"},  
				   {"name":"result xor","note":"","typeinx":1001,"def":"FF"}  
				]
			},
			{
				"name": "crc",
				"fid":"2003",
				"note": "crc",
				"param":[
				   {"name":"width","note":"","typeinx":1003,"def":"8"},
				   {"name":"polynomial","note":"","typeinx":1001,"def":"0"},
				   {"name":"initial value","note":"","typeinx":1001,"def":"0"},
				   {"name":"result xor","note":"","typeinx":1001,"def":"0"},
				   {"name":"input inversion","note":"","typeinx":1004,"def":"0"},
				   {"name":"output inversion","note":"","typeinx":1004,"def":"0"}, 
				   {"name":"little endian","note":"","typeinx":1004,"def":"1"} 
				]
			},
			{
			  "name": "--Special function--",
			  "isfunc": false
			},
			{
				"name": "wait",
				"fid":"5001",
				"note": "wait",
				"param":[
				   {"name":"match port","note":"","typeinx":1000,"def":"1"},  
				   {"name":"delay(ms)","note":"","typeinx":1000,"def":"100"}  
				]
			}
		], 
		"rev": 
		[
			{
			  "name": "--Extract Function--",
			  "isfunc": false
			},
			{
				"name": "get",
				"fid":"1001",
				"note": "get bytes from instruction to variable",
				"param":[
				   {"name":"variable","note":"0:port value,1~F:global variable 1~F","typeinx":1002,"def":"0"} 
				]
			},
			
			{
			  "name": "--Validation function--",
			  "isfunc": false
			},
			{
				"name": "sum",
				"fid":"2001",
				"note": "accumulated sum of instruct",
				"param":[
				   {"name":"initial value","note":"","typeinx":1001,"def":"00"},  
				   {"name":"result xor","note":"","typeinx":1001,"def":"FF"}  
				]
			},
			{
				"name": "xor",
				"fid":"2002",
				"note": "xor of instruct",
				"param":[
				   {"name":"initial value","note":"","typeinx":1001,"def":"00"},  
				   {"name":"result xor","note":"","typeinx":1001,"def":"FF"}  
				]
			},
			{
				"name": "crc",
				"fid":"2003",
				"note": "crc",
				"param":[
				   {"name":"width","note":"","typeinx":1003,"def":"8"},
				   {"name":"polynomial","note":"","typeinx":1001,"def":"0"},
				   {"name":"initial value","note":"","typeinx":1001,"def":"0"},
				   {"name":"result xor","note":"","typeinx":1001,"def":"0"},
				   {"name":"input inversion","note":"","typeinx":1004,"def":"0"},
				   {"name":"output inversion","note":"","typeinx":1004,"def":"0"}, 
				   {"name":"little endian","note":"","typeinx":1004,"def":"1"} 
				]
			},
			{
				"name": "chr",
				"fid":"3001",
				"note": "",
				"param":[
				   {"name":"width","note":"==0:ignore all subsequent bytes,N:ignore the next N bytes","typeinx":1000,"def":"1"} 
				]
			},
			{
				"name": "end",
				"fid":"4001",
				"note": "the package processing completed, and the remaining data of the package will continue to be processed"
			} 
		]
	},
	
	"str":{ 
		"snd":[
			{
			  "name": "--Filled function--",
			  "isfunc": false
			},
			{
				"name": "set",
				"fid":"2",
				"note": "convert variable to hexadecimal string",
				"param":[
				   {"name":"variable","note":"0:value of port,1~F:value of global variable 1~F","typeinx":1002,"def":"0"},
				   {"name":"length","note":"insert character 0 when the length insufficient","typeinx":1000,"def":"1"} 				   
				]
			}, 
			{
				"name": "seti",
				"fid":"3",
				"note": "convert variable to decimal string",
				"param":[
				   {"name":"variable","note":"0:value of port,1~F:value of global variable 1~F","typeinx":1002,"def":"0"}
				]
			} ,
			{
			  "name": "--Special function--",
			  "isfunc": false
			},
			{
				"name": "wait",
				"fid":"5001",
				"note": "wait",
				"param":[
				   {"name":"match port","note":"","typeinx":1000,"def":"1"},  
				   {"name":"delay(ms)","note":"","typeinx":1000,"def":"100"}  
				]
			}
		], 
		"rev": 
		[
			{
			  "name": "--Extract Function--",
			  "isfunc": false
			},
			{
				"name": "get",
				"fid":"1002",
				"note": "convert hexadecimal string to variable",
				"param":[
				   {"name":"variable","note":"0:port value,1~F:global variable 1~F","typeinx":1002,"def":"0"}, 
				   {"name":"length","note":"==0:convert all subsequent hexadecimal numbers (at least 1) to variable,>=N:convert subsequent 1 to N hexadecimal numbers to variable","typeinx":1000,"def":"0"} 
				]
			},
			{
				"name": "geti",
				"fid":"1003",
				"note": "convert decimal string to variable",
				"param":[
					{"name":"variable","note":"0:port value,1~F:global variable 1~F","typeinx":1002,"def":"0"},
					{"name":"length","note":"==0:convert all subsequent decimal numbers (at least 1) to variable,>=N:convert subsequent 1 to N decimal numbers to variable","typeinx":1000,"def":"0"} 				   
				]
			},
			{
			  "name": "--Validation function--",
			  "isfunc": false
			},
			{
				"name": "chr",
				"fid":"3001",
				"note": "",
				"param":[
				   {"name":"length","note":"ignore all subsequent bytes,N:ignore N bytes","typeinx":1000,"def":"1"} 
				]
			},			
			{
				"name": "hex",
				"fid":"3002",
				"note": "",
				"param":[
				   {"name":"length","note":"==0:ignore all subsequent hexadecimal numbers (at least 1),>=N:ignore the next 1 to N hexadecimal numbers","typeinx":1000,"def":"0"} 
				]
			},
			{
				"name": "dec",
				"fid":"3003",
				"note": "",
				"param":[
				  {"name":"length","note":"==0:ignore all subsequent decimal numbers (at least 1),>=N:ignore the next 1 to N decimal numbers","typeinx":1000,"def":"0"} 
				]
			},
			{
				"name": "end",
				"fid":"4001",
				"note": "the package processing completed, and the remaining data of the package will continue to be processed"
			} 
		]
	}  
}