# -*- coding: utf-8 -*-

{
#--------------------------------------------------------
	'AT+RTUPINCNF':
	{
		'name':'AT+RTUPINCNF',
		'explain':u'RTU管脚配置',
		'param_list_count':20,
		'index name':u'管脚号',
		'split_string':', ',
		'available_fields_value_range':
		[
			{'check_value':[0, 1, 2, 3, 4, 5, 6, 7], 'field_index':0, 'field_value_range':[0, 1, 3]},
			{'check_value':[8, 9, 10, 11, 12, 13], 'field_index':0, 'field_value_range':[0, 5, 7, 8]},
			{'check_value':[14, 15, 16, 17, 18, 19], 'field_index':0, 'field_value_range':[0, 6]},
		],
		'fields':
		[
			## 0
			{
				'name':'pin type',
				'explain':u'管脚类型',
				'type':'int list',
				'default':0,
				'default_values':
				[
					1, 1, 1, 1, 1, 1, 1, 1,
					5, 5, 5, 5, 5, 5,
					6, 6, 6, 6, 6, 6,
				],
				'set_prefix':'-t',
				'ignore_fields_value':[None, '', 0],
				'list_value':
				[
					{'value':0, 'desciption':u': 无效管脚'},
					{'value':1, 'desciption':u': 单端电压管脚'},
					{'value':3, 'desciption':u': 单端电流管脚'},
					{'value':5, 'desciption':u': LOGIC输入管脚'},
					{'value':6, 'desciption':u': LOGIC输出管脚'},
					{'value':7, 'desciption':u': 计数管脚'},
					{'value':8, 'desciption':u': 计速管脚'},
				],
				'available_fields_value_range':
				[
					{'check_value':[1, 3], 'field_index':1, 'field_value_range':[0, 1, 2, 3]},
					{'check_value':[5], 'field_index':1, 'field_value_range':[0, 6, 7, 8]},
					{'check_value':[6], 'field_index':1, 'field_value_range':[0]},
					{'check_value':[7], 'field_index':1, 'field_value_range':[0, 9]},
					{'check_value':[8], 'field_index':1, 'field_value_range':[0, 10, 11, 12]},
				],
				'valid_fields_check':
				[
					{'check_value':[0], 'field_index':[]},
					{'check_value':[1, 3], 'field_index':[1, 3, 2]},
					{'check_value':[5], 'field_index':[1, 4]},
					{'check_value':[6], 'field_index':[1, 5]},
					{'check_value':[7], 'field_index':[1, 7, 6, 8]},
					{'check_value':[8], 'field_index':[1, 7, 9, 3, 2]},
				],
			},
			## 1
			{
				'name':'alarm type',
				'explain':u'报警类型',
				'type':'int list',
				'default':0,
				'set_prefix':'-a',
				'list_value':
				[
					{'value':0, 'desciption':u': 不报警'},
					{'value':1, 'desciption':u': 过压或过流报警'},
					{'value':2, 'desciption':u': 欠压或欠流报警'},
					{'value':3, 'desciption':u': 过压欠压或过流欠流都报警'},
					{'value':6, 'desciption':u': 高电平报警'},
					{'value':7, 'desciption':u': 低电平报警'},
					{'value':8, 'desciption':u': 电平变化报警'},
					{'value':9, 'desciption':u': 计数超数报警'},
					{'value':10, 'desciption':u': 超速报警'},
					{'value':11, 'desciption':u': 低速报警'},
					{'value':12, 'desciption':u': 超速或低速都报警'},
				],
				'valid_fields_set_check':
				[
					{'check_value':[0], 'field_index':[4, 5, 6, 7, 9]},
					{'check_value':[1, 10], 'field_index':[2, 4, 5, 6, 7, 9]},
					{'check_value':[2, 11], 'field_index':[3, 4, 5, 6, 7, 9]},
					{'check_value':[3, 12], 'field_index':[2, 3, 4, 5, 6, 7, 9]},
					{'check_value':[6, 7, 8], 'field_index':[4, 5, 6, 7, 9]},
					{'check_value':[9], 'field_index':[4, 5, 6, 7, 8, 9]},
				],
			},
			## 2
			{
				'name':'high level',
				'explain':u'上限值',
				'type':'int',
				'default':0,
				'min_val':-9999999,
				'max_val':9999999,
				'set_prefix':'-u',
			},
			## 3
			{
				'name':'low level',
				'explain':u'下限值',
				'type':'int',
				'default':0,
				'min_val':-9999999,
				'max_val':9999999,
				'set_prefix':'-l',
			},
			## 4
			{
				'name':'logic input invert',
				'explain':u'逻辑输入反转',
				'type':'int list',
				'default':0,
				'set_prefix':'-r',
				'list_value':
				[
					{'value':0, 'desciption':u': 否'},
					{'value':1, 'desciption':u': 是'},
				],
			},
			## 5
			{
				'name':'logic output level',
				'explain':u'逻辑输出初值',
				'type':'int list',
				'default':2,
				'set_prefix':'-i',
				'list_value':
				[
					{'value':0, 'desciption':u': 0'},
					{'value':1, 'desciption':u': 1'},
					{'value':2, 'desciption':u': 三态'},
				],
			},
			## 6
			{
				'name':'count init',
				'explain':u'计数初值',
				'type':'int',
				'default':0,
				'min_val':0,
				'max_val':2147483647,
				'set_prefix':'-i',
			},
			## 7
			{
				'name':'trigger condition',
				'explain':u'计数触发条件',
				'type':'int list',
				'default':0,
				'set_prefix':'-e',
				'list_value':
				[
					{'value':0, 'desciption':u': 上升沿触发'},
					{'value':1, 'desciption':u': 下降沿触发'},
					{'value':2, 'desciption':u': 双沿触发'},
				],
			},
			## 8
			{
				'name':'count high level',
				'explain':u'计数报警',
				'type':'int',
				'default':0,
				'min_val':0,
				'max_val':2147483647,
				'set_prefix':'-c',
			},
			## 9
			{
				'name':'speed multi',
				'explain':u'计速倍数',
				'type':'int',
				'default':1,
				'min_val':1,
				'max_val':2147483647,
				'set_prefix':'-m',
			},
		],
		'configsave':'AT+RTUCNFSV',
	},
#--------------------------------------------------------
	'AT+RTUEXTMB':
	{
		'name':'AT+RTUEXTMB',
		'explain':u'外部MODBUS设备读取指令1',
		'param_list_count':5,
		'split_string':' ',
		'pre_set_at_command':'AT+RTUEXTMB=c',
		'list_value':
		[
			{'value':0, 'desciption':''},
			{'value':1, 'desciption':''},
			{'value':2, 'desciption':''},
			{'value':3, 'desciption':''},
			{'value':4, 'desciption':''},
		],
		'fields':
		[
			{
				'name':'modbus command',
				'explain':u'MODBUS指令',
				'type':'assemble_fields',
				##'assemble_type':'hex data',
				'default':'',
				'ignore_all_value':[None, '', 0, '000000000000'],
				'child_fields':
				[
					{
						'name':'modbus device id',
						'explain':u'设备地址',
						'type':'hex data',
						'default':'',
						'start_pos':0,
						'field_len':2,
						'ignore_all_value':[None, '', 0],
					},
					{
						'name':'modbus command',
						'explain':u'功能码',
						'type':'string list',
						'default':'',
						'start_pos':2,
						'field_len':2,
						'ignore_all_value':[None, '', 0, '00'],
						'list_value':
						[
							{'value':'03', 'desciption':u': 读取'},
							{'value':'04', 'desciption':u': 读取'},
							{'value':'A5', 'desciption':u': 延时'},
							{'value':'', 'desciption':u': 无'},
							{'value':'00', 'desciption':u': 无'},
						],
						'band_fields_value':
						{
							'A5':
							[
								{'field_index':0, 'value':'00'},
								{'field_index':2, 'value':'0100'},
							],
							'':
							[
								{'field_index':0, 'value':'00'},
								{'field_index':2, 'value':'0000'},
								{'field_index':3, 'value':'0000'},
							],
							'00':
							[
								{'field_index':0, 'value':'00'},
								{'field_index':2, 'value':'0000'},
								{'field_index':3, 'value':'0000'},
							],
						},
					},
					{
						'name':'modbus address',
						'explain':u'起始地址',
						'type':'hex data',
						'default':'',
						'start_pos':4,
						'field_len':4,
						'ignore_all_value':[None, '', 0],
					},
					{
						'name':'register count',
						'explain':u'数据长度',
						'type':'hex data',
						'default':'',
						'start_pos':8,
						'field_len':4,
						'ignore_all_value':[None, '', 0],
						'min_val':'0001',
					},
					##{
					##    'name':'modbus crc',
					##    'explain':u'CRC',
					##    'type':'modbus crc',
					##    'default':'',
					##    'start_pos':12,
					##    'field_len':4,
					##},
				],
			},
		],
		'configsave':'AT+RTUCNFSV',
	},
#--------------------------------------------------------
	'AT+RTUCMYGPS':
	{
		'name':'AT+RTUCMYGPS',
		'explain':u'COMWAY报文协议下，COMWAY格式GPS数据上传配置',
		'param_list_count':1,
		'split_string':', ',
		'fields':
		[
			{
				'name':'COMWAY format',
				'explain':u'是否上传',
				'type':'int list',
				'default':1,
				'list_value':
				[
					{'value':0, 'desciption':u': 否'},
					{'value':1, 'desciption':u': 是'},
				],
			},
			{
				'name':'upload threshold',
				'explain':u'上传GPS间隔',
				'type':'assemble_fields',
				##'assemble_type':'hex data',
				'default':'016300010',
				'child_fields':
				[
					{
						'name':'speed threshold',
						'explain':u'速度阀值',
						'type':'int',
						'min_val':0,
						'max_val':999,
						'default':16,
						'suffix':u' 节×10',
						'start_pos':0,
						'field_len':3,
					},
					{
						'name':'below threshold',
						'explain':u'低于阀值',
						'type':'int',
						'min_val':0,
						'max_val':999,
						'default':300,
						'suffix':u' 秒',
						'start_pos':3,
						'field_len':3,
					},
					{
						'name':'beyond threshold',
						'explain':u'高于阀值',
						'type':'int',
						'min_val':0,
						'max_val':999,
						'default':10,
						'suffix':u' 秒',
						'start_pos':6,
						'field_len':3,
					},
				],
			},
		],
		'configsave':'AT+RTUCNFSV',
	},
#--------------------------------------------------------
	'AT+RTUEXUC':
	{
		'name':'AT+RTUEXUC',
		'explain':u'485-2串口配置(外部modbus主端口)',
		'param_list_count':1,
		'split_string':' ',
		'head_string':'UART: ',
		'fields':
		[
			{
				'name':'bandrate',
				'explain':u'波特率',
				'type':'int list',
				'default':9600,
				'set_prefix':'-b',
				'list_value':
				[
					{'value':1200, 'desciption':u''},
					{'value':2400, 'desciption':u''},
					{'value':4800, 'desciption':u''},
					{'value':9600, 'desciption':u''},
					{'value':19200, 'desciption':u''},
					{'value':38400, 'desciption':u''},
					{'value':115200, 'desciption':u''},
				],
			},
			{
				'name':'uart config',
				'explain':u'串口配置',
				'type':'assemble_fields',
				##'assemble_type':'hex data',
				'default':'810',
				'set_prefix':'-u',
				'child_fields':
				[
					{
						'name':'bit count',
						'explain':u'数据位',
						'type':'string list',
						'default':'8',
						'start_pos':0,
						'field_len':1,
						'list_value':
						[
							{'value':'8', 'desciption':u''},
							{'value':'7', 'desciption':u''},
							{'value':'6', 'desciption':u''},
							{'value':'5', 'desciption':u''},
						],
					},
					{
						'name':'stop bit',
						'explain':u'停止位',
						'type':'string list',
						'default':'1',
						'start_pos':1,
						'field_len':1,
						'list_value':
						[
							{'value':'1', 'desciption':u': 1个停止位'},
							{'value':'2', 'desciption':u': 2个停止位'},
							{'value':'3', 'desciption':u': 1.5个停止位'},
						],
					},
					{
						'name':'verify bit',
						'explain':u'校验位',
						'type':'string list',
						'default':'0',
						'start_pos':2,
						'field_len':1,
						'list_value':
						[
							{'value':'0', 'desciption':u': 无校验'},
							{'value':'1', 'desciption':u': 奇校验'},
							{'value':'2', 'desciption':u': 偶校验'},
							{'value':'3', 'desciption':u': 空校验'},
						],
					},
				],
			},
		],
		'configsave':'AT+RTUCNFSV',
	},
#--------------------------------------------------------
	'AT+RTUCONF':
	{
		'name':'AT+RTUCONF',
		'explain':u'RTU采样参数',
		'param_list_count':1,
		'fields':
		[
			{
				'name':'sampling interval',
				'explain':u'采样时间间隔',
				'type':'int',
				'default':10,
				'min_val':1,
				'max_val':86400,
				'set_prefix':'-s',
				'suffix':u' 秒',
			},
			{
				'name':'report interval',
				'explain':u'上报时间间隔',
				'type':'int',
				'default':10,
				'min_val':0,
				'max_val':86400,
				'set_prefix':'-u',
				'suffix':u' 秒',
			},
			{
				'name':'save interval',
				'explain':u'保存时间间隔',
				'type':'int',
				'default':10,
				'min_val':0,
				'max_val':86400,
				'set_prefix':'-r',
				'suffix':u' 秒',
			},
			{
				'name':'hibernate mode',
				'explain':u'是否省电模式',
				'type':'int list',
				'default':0,
				'set_prefix':'-h',
				'list_value':
				[
					{'value':0, 'desciption':u': 正常模式'},
					{'value':3, 'desciption':u': 省电模式'},
				],
			},
		],
		'configsave':'AT+RTUCNFSV',
	},
#--------------------------------------------------------
	'AT+RTUCNFSV':
	{
		'name':'AT+RTUCNFSV',
		'explain':u'保存RTU配置',
		'param_list_count':0,
		'writeonly':True,
		'fields':[],
		'timeout':10,
		'savecommand':True,
	},
#--------------------------------------------------------
	'AT+RTURECORD':
	{
		'name':'AT+RTURECORD',
		'explain':u'读取最新记录',
		'param_list_count':0,
		'testonly':True,
		'fields':[],
	},
#--------------------------------------------------------
	'AT+RTURESET':
	{
		'name':'AT+RTURESET',
		'explain':u'RTU复位',
		'param_list_count':0,
		'testonly':True,
		'fields':[],
	},
#--------------------------------------------------------
	'AT+RTUTIME':
	{
		'name':'AT+RTUTIME',
		'explain':u'设置RTU时间，输入%LOCALTIME%设置当前时间',
		'param_list_count':1,
		'substitutable':True,
		'timeformat':'%Y%m%d%H%M%S',
		'read_paser_ignore':True,
		'store_ignore':True,
		'fields':
		[
			{
				'name':'RTU TIME',
				'explain':u'RTU时间',
				'type':'string',
				'default':'%LOCALTIME%',
				'ignore_field_value':[None, '', 0],
				'maxLength':14,
				'clear_after_write':True,
			},
		],
	},
#--------------------------------------------------------
	'AT+RTUCLR':
	{
		'name':'AT+RTUCLR',
		'explain':u'清空RTU存储数据',
		'param_list_count':0,
		'testonly':True,
		'fields':[],
		'timeout':300,
	},
#--------------------------------------------------------
	'AT+RTUSETOUT':
	{
		'name':'AT+RTUSETOUT',
		'explain':u'置高或置低输出管脚',
		'param_list_count':1,
		'testonly':True,
		'fields':
		[
			{
				'name':'set or reset',
				'explain':u'置高或置低',
				'type':'string list',
				'default':'s',
				'list_value':
				[
					{'value':'s', 'desciption':u': 置高'},
					{'value':'c', 'desciption':u': 置低'},
				],
			},
			{
				'name':'pin number',
				'explain':u'管脚号',
				'type':'int list',
				'default':14,
				'list_value':
				[
					{'value':14, 'desciption':u''},
					{'value':15, 'desciption':u''},
					{'value':16, 'desciption':u''},
					{'value':17, 'desciption':u''},
					{'value':18, 'desciption':u''},
					{'value':19, 'desciption':u''},
				],
			},
		],
	},
#--------------------------------------------------------
	'AT+RTUVERS':
	{
		'name':'AT+RTUVERS',
		'explain':u'RTU版本',
		'param_list_count':1,
		'readonly':True,
		'fields':
		[
			{
				'name':'RTU version',
				'explain':u'RTU版本',
				'type':'string',
				'default':'',
			},
		],
	},
#--------------------------------------------------------
	'AT+RTUCALI':
	{
		'name':'AT+RTUCALI',
		'explain':u'AD管脚校准信息',
		'param_list_count':8,
		'index name':u'管脚号',
		'fields':
		[
			{
				'name':'slope',
				'explain':u'斜率',
				'type':'int',
				'default':0,
				'min_val':0,
				'max_val':999999,
				'ignore_all_value':[None, '', 0],
				'set_prefix':'-s',
			},
			{
				'name':'offset',
				'explain':u'偏移',
				'type':'int',
				'default':0,
				'min_val':0,
				'max_val':999999,
				'set_prefix':'-o',
			},
			{
				'name':'resistance',
				'explain':u'阻值',
				'type':'int',
				'default':250,
				'min_val':1,
				'max_val':999999,
				'ignore_all_value':[None, '', 0],
				'set_prefix':'-r',
			},
		],
		'configsave':'AT+RTUCALISV',
	},
#--------------------------------------------------------
	'AT+RTUCALISV':
	{
		'name':'AT+RTUCALISV',
		'explain':u'保存RTU校准信息',
		'param_list_count':0,
		'writeonly':True,
		'fields':[],
		'timeout':5,
		'savecommand':True,
	},
#--------------------------------------------------------
	'AT+RTUALMSV':
	{
		'name':'AT+RTUALMSV',
		'explain':u'保存RTU短信报警配置',
		'param_list_count':0,
		'writeonly':True,
		'fields':[],
		'timeout':5,
		'savecommand':True,
	},
#--------------------------------------------------------
	'AT+RTUALMNUM':
	{
		'name':'AT+RTUALMNUM',
		'param_list_count':1,
		'explain':u'短信报警号码',
		'pre_set_at_command':'AT+RTUALMNUM=c',
		'fields':
		[
			{
				'name':'alarm number',
				'explain':u'报警号码',
				'type':'string',
				'default':'',
				'maxLength':23,
				'ignore_all_value':[None, '', 0],
			},
		],
		'configsave':'AT+RTUALMSV',
	},
#--------------------------------------------------------
	'AT+RTUALMNUM1':
	{
		'name':'AT+RTUALMNUM1',
		'param_list_count':1,
		'explain':u'短信报警号码1',
		'pre_set_at_command':'AT+RTUALMNUM1=c',
		'fields':
		[
			{
				'name':'alarm number',
				'explain':u'报警号码',
				'type':'string',
				'default':'',
				'maxLength':23,
				'ignore_all_value':[None, '', 0],
			},
		],
		'configsave':'AT+RTUALMSV',
	},
#--------------------------------------------------------
	'AT+RTUALMNUM2':
	{
		'name':'AT+RTUALMNUM2',
		'param_list_count':1,
		'explain':u'短信报警号码2',
		'pre_set_at_command':'AT+RTUALMNUM2=c',
		'fields':
		[
			{
				'name':'alarm number',
				'explain':u'报警号码',
				'type':'string',
				'default':'',
				'maxLength':23,
				'ignore_all_value':[None, '', 0],
			},
		],
		'configsave':'AT+RTUALMSV',
	},
#--------------------------------------------------------
	'AT+RTUALMNUM3':
	{
		'name':'AT+RTUALMNUM3',
		'param_list_count':1,
		'explain':u'短信报警号码3',
		'pre_set_at_command':'AT+RTUALMNUM3=c',
		'fields':
		[
			{
				'name':'alarm number',
				'explain':u'报警号码',
				'type':'string',
				'default':'',
				'maxLength':23,
				'ignore_all_value':[None, '', 0],
			},
		],
		'configsave':'AT+RTUALMSV',
	},
#--------------------------------------------------------
	'AT+RTUALMNUM4':
	{
		'name':'AT+RTUALMNUM4',
		'param_list_count':1,
		'explain':u'短信报警号码4',
		'pre_set_at_command':'AT+RTUALMNUM4=c',
		'fields':
		[
			{
				'name':'alarm number',
				'explain':u'报警号码',
				'type':'string',
				'default':'',
				'maxLength':23,
				'ignore_all_value':[None, '', 0],
			},
		],
		'configsave':'AT+RTUALMSV',
	},
#--------------------------------------------------------
	'AT+RTUPINNAME':
	{
		'name':'AT+RTUPINNAME',
		'explain':u'管脚别名，在短信报警中使用',
		'param_list_count':20,
		'index name':u'管脚号',
		'fields':
		[
			{
				'name':'pin name',
				'explain':u'别名',
				'type':'gbk string',
				'maxLength':23,
				'default':'',
				'ignore_all_value':[None, '', 0],
			},
		],
		'configsave':'AT+RTUALMSV',
	},
#--------------------------------------------------------
	'AT+STARTSTR':
	{
		'name':'AT+STARTSTR',
		'explain':u'启动信息',
		'param_list_count':1,
		'fields':
		[
			{
				'name':'start string',
				'explain':u'启动信息',
				'type':'gbk string',
				'default':'COMWAY RTU',
				'ignore_all_value':[None, '', 0],
				'maxLength':23,
			},
		],
	},
#--------------------------------------------------------
	'AT+RTUALMSTR':
	{
		'name':'AT+RTUALMSTR',
		'explain':u'不同报警类型的在报警短信中报警内容',
		'param_list_count':16,
		'index name':u'报警类型',
		'list_value':
		[
			{'value':1, 'desciption':u': 过压'},
			{'value':2, 'desciption':u': 欠压'},
			{'value':6, 'desciption':u': 高电位'},
			{'value':7, 'desciption':u': 低电位'},
			{'value':9, 'desciption':u': 过量'},
			{'value':10, 'desciption':u': 超速'},
			{'value':11, 'desciption':u': 低速'},
			{'value':15, 'desciption':u': 解除'},
		],
		'fields':
		[
			{
				'name':'alarm string',
				'explain':u'报警内容',
				'type':'gbk string',
				'default':'',
				'ignore_all_value':[None, '', 0],
				'maxLength':23,
			},
		],
		'configsave':'AT+RTUALMSV',
	},
#--------------------------------------------------------
	'AT+RTUFLAG':
	{
		'name':'AT+RTUFLAG',
		'explain':u'外部MODBUS设备没有响应的时候是否上传上一次的记录',
		'param_list_count':1,
		'fields':
		[
			{
				'name':'upload flag',
				'explain':u'是否上传',
				'type':'string list',
				'default':'00',
				'list_value':
				[
					{'value':'00', 'desciption':u': 否'},
					{'value':'01', 'desciption':u': 是'},
				],
			},
		],
		'configsave':'AT+RTUCNFSV',
	},
#--------------------------------------------------------
	'AT+RTUEXTN=cnfsv':
	{
		'name':'AT+RTUEXTN=cnfsv',
		'explain':u'保存RTU扩展配置',
		'param_list_count':0,
		'writeonly':True,
		'fields':[],
		'timeout':5,
		'savecommand':True,
	},
#--------------------------------------------------------
	'AT+RTUEXTN=extmb':
	{
		'name':'AT+RTUEXTN=extmb',
		'explain':u'外部MODBUS设备读取指令2',
		'param_list_count':10,
		'split_string':' ',
		'pre_set_at_command':'AT+RTUEXTN=extmb c',
		'list_value':
		[
			{'value':0, 'desciption':''},
			{'value':1, 'desciption':''},
			{'value':2, 'desciption':''},
			{'value':3, 'desciption':''},
			{'value':4, 'desciption':''},
			{'value':5, 'desciption':''},
			{'value':6, 'desciption':''},
			{'value':7, 'desciption':''},
			{'value':8, 'desciption':''},
			{'value':9, 'desciption':''},
		],
		'fields':
		[
			{
				'name':'modbus command',
				'explain':u'MODBUS指令',
				'type':'assemble_fields',
				##'assemble_type':'hex data',
				'default':'',
				'ignore_all_value':[None, '', 0, '000000000000', '00000000000000', '0000000000000000'],
				'child_fields':
				[
					{
						'name':'modbus device id',
						'explain':u'设备地址',
						'type':'hex data',
						'default':'',
						'start_pos':0,
						'field_len':2,
						'ignore_all_value':[None, '', 0],
					},
					{
						'name':'modbus command',
						'explain':u'功能码',
						'type':'string list',
						'default':'',
						'start_pos':2,
						'field_len':2,
						'ignore_all_value':[None, '', 0, '00'],
						'list_value':
						[
							{'value':'03', 'desciption':u': 读取'},
							{'value':'04', 'desciption':u': 读取'},
							{'value':'A5', 'desciption':u': 延时'},
							{'value':'', 'desciption':u': 无'},
							{'value':'00', 'desciption':u': 无'},
						],
						'band_fields_value':
						{
							'A5':
							[
								{'field_index':0, 'value':'00'},
								{'field_index':2, 'value':'0100'},
							],
							'':
							[
								{'field_index':0, 'value':'00'},
								{'field_index':2, 'value':'0000'},
								{'field_index':3, 'value':'0000'},
							],
							'00':
							[
								{'field_index':0, 'value':'00'},
								{'field_index':2, 'value':'0000'},
								{'field_index':3, 'value':'0000'},
							],
						},
					},
					{
						'name':'modbus address',
						'explain':u'起始地址',
						'type':'hex data',
						'default':'',
						'start_pos':4,
						'field_len':4,
						'ignore_all_value':[None, '', 0],
					},
					{
						'name':'register count',
						'explain':u'数据长度',
						'type':'hex data',
						'default':'',
						'start_pos':8,
						'field_len':4,
						'ignore_all_value':[None, '', 0],
						'min_val':'0001',
					},
					##{
					##    'name':'modbus crc',
					##    'explain':u'CRC',
					##    'type':'modbus crc',
					##    'default':'',
					##    'start_pos':12,
					##    'field_len':4,
					##},
				],
			},
		],
		'configsave':'AT+RTUEXTN=cnfsv',
	},
#--------------------------------------------------------
	'AT+RTUCREG':
	{
		'name':'AT+RTUCREG',
		'explain':u'是否上传+CREG的信息',
		'param_list_count':1,
		'fields':
		[
			{
				'name':'upload flag',
				'explain':u'是否上传',
				'type':'int list',
				'default':0,
				'list_value':
				[
					{'value':0, 'desciption':u': 否'},
					{'value':1, 'desciption':u': 是'},
				],
			},
		],
	},
#--------------------------------------------------------
	'AT+RTUSVACK':
	{
		'name':'AT+RTUSVACK',
		'explain':u'上传服务器的数据是否需要响应',
		'param_list_count':1,
		'fields':
		[
			{
				'name':'upload flag',
				'explain':u'是否响应',
				'type':'int list',
				'default':0,
				'list_value':
				[
					{'value':0, 'desciption':u': 否'},
					{'value':1, 'desciption':u': 是'},
				],
			},
		],
	},
#--------------------------------------------------------
	'AT+MBR2TCONF':
	{
		'name':'AT+MBR2TCONF',
		'explain':u'设备收到MODBUS RTU指令转换到MODBUS TCP指令',
		'param_list_count':16,
		'pre_set_at_command':'AT+MBR2TCONF=c',
		'fields':
		[
			{
				'name':'RTU ID',
				'explain':u'RTU设备地址',
				'type':'int',
				'default':0,
				'ignore_all_value':[None, '', 0],
				'min_val':0,
				'max_val':255,
			},
			{
				'name':'TCP ID',
				'explain':u'TCP设备地址',
				'type':'int',
				'default':0,
				'ignore_all_value':[None, '', 0],
				'min_val':0,
				'max_val':255,
			},
			{
				'name':'ip address',
				'explain':u'ip地址',
				'type':'ip string',
				'default':'',
				'ignore_all_value':[None, '', 0],
			},
			{
				'name':'port number',
				'explain':u'端口号',
				'type':'int',
				'default':0,
				'ignore_all_value':[None, '', 0],
				'min_val':0,
				'max_val':65532,
			},
		],
	},
#--------------------------------------------------------
	'AT+MBT2RCONF':
	{
		'name':'AT+MBT2RCONF',
		'explain':u'设备收到MODBUS TCP指令转换到MODBUS RTU指令，如果RTU地址为0，则不做地址转换',
		'param_list_count':8,
		'pre_set_at_command':'AT+MBT2RCONF=c',
		'fields':
		[
			{
				'name':'RTU ID',
				'explain':u'RTU设备地址',
				'type':'int',
				'default':0,
				'min_val':0,
				'max_val':255,
			},
			{
				'name':'port number',
				'explain':u'端口号',
				'type':'int',
				'default':0,
				'ignore_all_value':[None, '', 0],
				'min_val':0,
				'max_val':65500,
			},
		],
	},
#--------------------------------------------------------
	'AT+RTUPKMD':
	{
		'name':'AT+RTUPKMD',
		'explain':u'RTU报文协议',
		'param_list_count':1,
		'fields':
		[
			{
				'name':'packet mode',
				'explain':u'报文协议',
				'type':'int list',
				'default':0,
				'list_value':
				[
					{'value':0, 'desciption':u': 主服务器决定'},
					{'value':1, 'desciption':u': 宏电协议'},
					{'value':2, 'desciption':u': HTTP协议'},
					{'value':3, 'desciption':u': MQTT协议'},
				],
			},
		],
	},
#--------------------------------------------------------
	'AT+RTUHTTPDATA':
	{
		'name':'AT+RTUHTTPDATA',
		'explain':u'RTU数据上传HTTP协议配置',
		'param_list_count':1,
		'fields':
		[
			{
				'name':'domain',
				'explain':u'服务器地址',
				'type':'url',
				'default':'',
				'set_prefix':'-h',
				'maxLength':63,
			},
			{
				'name':'port',
				'explain':u'服务器端口',
				'type':'int',
				'default':0,
				'min_val':0,
				'max_val':65532,
				'set_prefix':'-p',
				'ignore_field_value':[None, '', 0],
			},
			{
				'name':'ssl',
				'explain':u'ssl连接',
				'type':'int list',
				'set_prefix':'-s',
				'default':0,
				'list_value':
				[
					{'value':0, 'desciption':u': 否'},
					{'value':1, 'desciption':u': 是'},
				],
			},
			{
				'name':'post path',
				'explain':u'post路径',
				'type':'string',
				'default':'/post_rtu_data',
				'set_prefix':'-t',
			},
			##{
			##	'name':'post name',
			##	'explain':u'post名称',
			##	'type':'string',
			##	'default':'rtu_data',
			##	'set_prefix':'-n',
			##},
			##{
			##	'name':'post file',
			##	'explain':u'post文件名',
			##	'type':'string',
			##	'default':'data',
			##	'set_prefix':'-f',
			##},
		],
	},
#--------------------------------------------------------
	'AT+RTUHTTPPIC':
	{
		'name':'AT+RTUHTTPPIC',
		'explain':u'RTU图片上传HTTP协议配置',
		'param_list_count':1,
		'fields':
		[
			{
				'name':'domain',
				'explain':u'服务器地址',
				'type':'url',
				'default':'',
				'set_prefix':'-h',
				'maxLength':63,
			},
			{
				'name':'port',
				'explain':u'服务器端口',
				'type':'int',
				'default':0,
				'min_val':0,
				'max_val':65532,
				'set_prefix':'-p',
				'ignore_field_value':[None, '', 0],
			},
			{
				'name':'ssl',
				'explain':u'ssl连接',
				'type':'int list',
				'set_prefix':'-s',
				'default':0,
				'list_value':
				[
					{'value':0, 'desciption':u': 否'},
					{'value':1, 'desciption':u': 是'},
				],
			},
			{
				'name':'post path',
				'explain':u'post路径',
				'type':'string',
				'default':'/post_rtu_pic',
				'set_prefix':'-t',
			},
			{
				'name':'post name',
				'explain':u'post名称',
				'type':'string',
				'default':'rtu_pic',
				'set_prefix':'-n',
			},
			{
				'name':'post file',
				'explain':u'post文件名',
				'type':'string',
				'default':'pic',
				'set_prefix':'-f',
			},
		],
	},
#--------------------------------------------------------
	'AT+CAMINFO':
	{
		'name':'AT+CAMINFO',
		'explain':u'获取摄像头参数',
		'param_list_count':0,
		'testonly':True,
		'fields':[],
	},
#--------------------------------------------------------
	'AT+CAMCAP':
	{
		'name':'AT+CAMCAP',
		'explain':u'拍照并上传',
		'param_list_count':1,
		'testonly':True,
		'fields':
		[
			{
				'name':'image size',
				'explain':u'分辨率',
				'type':'string',
				'default':'800*600',
				'ignore_all_value':[None, '', 0],
			},
			{
				'name':'file name',
				'explain':u'文件名',
				'type':'string',
				'default':'tmp.jpg',
			},
		],
	},
#--------------------------------------------------------
	'AT+ENHP':
	{
		'name':'AT+ENHP',
		'explain':u'RTU上报数据格式和本机MODBUS地址',
		'param_list_count':1,
		'split_string':' ',
		'fields':
		[
			{
				'name':'packet mode',
				'explain':u'数据格式',
				'type':'int list',
				'default':0,
				'set_prefix':'-p',
				'get_prefix':'-p',
				'list_value':
				[
					{'value':0, 'desciption':u': 字符串格式'},
					{'value':1, 'desciption':u': MODBUS指令格式'},
					{'value':2, 'desciption':u': 不上传数据，只短信报警'},
					{'value':3, 'desciption':u': ID+字符串格式'},
					{'value':4, 'desciption':u': JSON格式'},
				],
				'band_at_value':
				{
					1:
					[
						{'name':'AT+RTUEXTMB', 'value':[[''], [''], [''], [''], ['']]},
						{'name':'AT+RTUEXTN=extmb', 'value':[[''], [''], [''], [''], [''], [''], [''], [''], [''], ['']]},
					],
				},
			},
			{
				'name':'modbus address',
				'explain':u'MODBUS地址',
				'type':'int',
				'default':0,
				'min_val':0,
				'max_val':255,
				'set_prefix':'-a',
				'get_prefix':'-a',
			},
		],
	},
#--------------------------------------------------------
	'AT+MQTTSRV':
	{
		'name':'AT+MQTTSRV',
		'param_list_count':1,
		'explain':u'MQTT服务器url',
		'pre_set_at_command':'AT+MQTTSRV=c',
		'fields':
		[
			{
				'name':'server url',
				'explain':u'服务器url',
				'type':'url string',
				'default':'',
				'maxLength':127,
				'ignore_all_value':[None, '', 0],
			},
		],
	},
#--------------------------------------------------------
	'AT+MQTTUSR':
	{
		'name':'AT+MQTTUSR',
		'param_list_count':1,
		'explain':u'MQTT用户名',
		'pre_set_at_command':'AT+MQTTUSR=c',
		'fields':
		[
			{
				'name':'user name',
				'explain':u'用户名',
				'type':'string',
				'default':'',
				'maxLength':127,
				'ignore_all_value':[None, '', 0],
			},
		],
	},
#--------------------------------------------------------
	'AT+MQTTPWD':
	{
		'name':'AT+MQTTPWD',
		'param_list_count':1,
		'explain':u'MQTT密码',
		##'pre_set_at_command':'AT+MQTTPWD=c',
		'fields':
		[
			{
				'name':'user name',
				'explain':u'密码',
				'type':'string',
				'default':'',
				'maxLength':127,
				'ignore_all_value':[None, '', 0],
			},
		],
	},
#--------------------------------------------------------
	'AT+MQTTPUB':
	{
		'name':'AT+MQTTPUB',
		'param_list_count':1,
		'explain':u'MQTT发布主题',
		'pre_set_at_command':'AT+MQTTPUB=c',
		'fields':
		[
			{
				'name':'pub topic',
				'explain':u'发布主题',
				'type':'string',
				'default':'',
				'maxLength':127,
				'ignore_all_value':[None, '', 0],
			},
		],
	},
#--------------------------------------------------------
	'AT+MQTTMDBRTUPUB':
	{
		'name':'AT+MQTTMDBRTUPUB',
		'param_list_count':1,
		'explain':u'MQTT_MODBUSRTU发布主题',
		'pre_set_at_command':'AT+MQTTMDBRTUPUB=c',
		'fields':
		[
			{
				'name':'pub topic',
				'explain':u'发布主题',
				'type':'string',
				'default':'',
				'maxLength':127,
				'ignore_all_value':[None, '', 0],
			},
		],
	},
#--------------------------------------------------------
	'AT+MQTTMDBRTUSUB':
	{
		'name':'AT+MQTTMDBRTUSUB',
		'param_list_count':1,
		'explain':u'MQTT_MODBUSRTU订阅主题',
		'pre_set_at_command':'AT+MQTTMDBRTUSUB=c',
		'fields':
		[
			{
				'name':'pub topic',
				'explain':u'发布主题',
				'type':'string',
				'default':'',
				'maxLength':127,
				'ignore_all_value':[None, '', 0],
			},
		],
	},
#--------------------------------------------------------
	'AT+RBTYPE':
	{
		'name':'AT+RBTYPE',
		'explain':u'重启模式',
		'param_list_count':1,
		'split_string':'\r\n',
		'pre_set_at_command':'AT+RBTYPE=0',
		'fields':
		[
			{
				'name':'no signal time',
				'explain':u'无SIM卡重启',
				'type':'int list',
				'default':0,
				'set_prefix':'1 ',
				'get_prefix':'1: ',
				'suffix':u' 分钟',
				'single_at':True,
				'ignore_field_value':[None, '', 0],
				'list_value':
				[
					{'value':0, 'desciption':u': 否'},
					{'value':10, 'desciption':u': 是'},
				],
			},
			{
				'name':'root time',
				'explain':u'定间隔重启',
				'type':'int',
				'min_val':0,
				'max_val':43200,
				'default':0,
				'set_prefix':'2 ',
				'get_prefix':'2: ',
				'suffix':u' 分钟',
				'single_at':True,
				'ignore_field_value':[None, '', 0],
			},
		],
	},
#--------------------------------------------------------
	'AT+RTURESET':
	{
		'name':'AT+RTURESET',
		'explain':u'RTU重启',
		'param_list_count':0,
		'writeonly':True,
		'testonly':True,
		'fields':[],
	},
#--------------------------------------------------------
    'AT+RTUEXTN=reboot':
	{
		'name':'AT+RTUEXTN=reboot',
		'explain':u'定时重启',
		'param_list_count':1,
		'fields':
		[
			{
				'name':'mcu_reset time',
				'explain':u'定时重启',
				'type':'int',
				'default':86400,
				'min_val':0,
				'max_val':172800,
				'suffix':u' 秒',
			},
		],
	},
}