Mini Kabibi Habibi

Current Path : C:/Program Files/Smart Professional Surveillance System/PC-NVR/Common/Lua/ptz/
Upload File :
Current File : C:/Program Files/Smart Professional Surveillance System/PC-NVR/Common/Lua/ptz/QT-2XXD.lua

-- ���Ǹ��ױ���Quaddrix��̨Э�� 
local Protocol = {};

-- ��ʾ�ֵ������16��10����(��Сֵ�����ֵ)
Protocol.Attr = 
{
	-- Э�����ʾ���,���ܳ���16�ַ���Ŀǰ�ݲ�֧������
	Name = "QT-2XXD",	
		
	-- ָ�����̨Э�黹�Ǿ���Э�飬ʹ��"PTZ", "MATRIX"��ʾ
	Type = "PTZ",
	
	-- ��msΪ��λ
	Internal = 200,
				
	-- û�ж�Ӧ�ĵ�ַ��Χ���붼���0xff
	-- ��̨��ַ��Χ
	CamAddrRange 		= {0x01, 0xFF}, 
	-- ���ӵ�ַ��Χ
	MonAddrRange		= {0x00, 0xFF},	
	-- Ԥ�õ㷶Χ
	PresetRange 		= {0x01, 0xff},
	-- �Զ�Ѳ����·��Χ
	TourRange		= {0x00, 0xff},
	-- �켣��·��Χ
	PatternRange		= {0x01, 0x8},
	-- ��ֱ�ٶȷ�Χ
	TileSpeedRange 		= {0x01, 0x8},
	-- ˮƽ�ٶȷ�Χ
	PanSpeedRange 		= {0x01, 0x8},
	
	-- �����Χ
	AuxRange 		= {0x01, 0xff},
}

Protocol.CommandAttr =
{
	-- Э������Ҫ���ĵ�λ�ã���LUA�±��ʾ�����±�ӣ���ʼ,��10���Ʊ�ʾ
	AddrPos 		= 2, 
	PresetPos 		= 6, 
	TileSpeedPos 		= 6,
	PanSpeedPos 		= 5,
	--AuxPos 		= 5,
}

Protocol.Command = 
{
	-- д����Э��ʱֻ����16���ƻ��ַ���ʾ,û�еĻ���ע�͵�
	Start= 
	{
		--д��������, ���ϣ����£����ϣ�����
		TileUp 		= "0xFF, 0x01, 0x00, 0x08, 0x00, 0x08, 0x11",
		TileDown 	= "0xFF, 0x01, 0x00, 0x10, 0x00, 0x08, 0x19",
		PanLeft 	= "0xFF, 0x01, 0x00, 0x04, 0x08, 0x00, 0x0D", 
		PanRight 	= "0xFF, 0x01, 0x00, 0x02, 0x08, 0x00, 0x0B",
		LeftUp 		= "0xFF, 0x01, 0x00, 0x0C, 0x08, 0x08, 0x1D",
		LeftDown 	= "0xFF, 0x01, 0x00, 0x14, 0x08, 0x08, 0x25",
		RightUp		= "0xFF, 0x01, 0x00, 0x0A, 0x08, 0x08, 0x1B",
		RightDown 	= "0xFF, 0x01, 0x00, 0x12, 0x08, 0x08, 0x23",

		ZoomWide 	= "0xFF, 0x01, 0x00, 0x40, 0x00, 0x00, 0x41",
		ZoomTele 	= "0xFF, 0x01, 0x00, 0x20, 0x00, 0x00, 0x21",
		FocusNear	= "0xFF, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02",
		FocusFar 	= "0xFF, 0x01, 0x00, 0x80, 0x00, 0x00, 0x81",
		IrisSmall 	= "0xFF, 0x01, 0x04, 0x00, 0x00, 0x00, 0x05",	
		IrisLarge 	= "0xFF, 0x01, 0x02, 0x00, 0x00, 0x00, 0x03",
			
		-- Ԥ�õ��������ã�����ת��)
		SetPreset 	= "0xFF, 0x01, 0x00, 0x03, 0x00, 0x00, 0x04",
		ClearPreset	= "0xFF, 0x01, 0x00, 0x05, 0x00, 0x00, 0x06",
		GoToPreset 	= "0xFF, 0x01, 0x00, 0x07, 0x00, 0x00, 0x08",			
			
		
		SetLeftLimit 	= "0xFF, 0x01, 0x00, 0x07, 0x00, 0x5D, 0x65",
		SetRightLimit	= "0xFF, 0x01, 0x00, 0x07, 0x00, 0x5C, 0x64", 
		AutoScanOn 	= "0xFF, 0x01, 0x00, 0x07, 0x00, 0x61, 0x69",
	
			
		-- �켣Ѳ��, һ��ָģʽ(���ÿ�ʼ�����ý�������У�ֹͣ����ģʽ
		SetPatternStart = "0xFF, 0x01, 0x00, 0x1F, 0x00, 0x00, 0x20",
		SetPatternStop  = "0xFF, 0x01, 0x00, 0x21, 0x00, 0x00, 0x22",
		StartPattern 	= "0xFF, 0x01, 0x00, 0x23, 0x00, 0x00, 0x24",
		
		-- �˵���ز��
		Menu 		= "0xFF, 0x01, 0x00, 0x07, 0x00, 0x5F, 0x67",
		MenuUp 		= "0xFF, 0x01, 0x00, 0x08, 0x00, 0x08, 0x11",
		MenuDown 	= "0xFF, 0x01, 0x00, 0x10, 0x00, 0x08, 0x19",
		MenuLeft 	= "0xFF, 0x01, 0x00, 0x04, 0x08, 0x00, 0x0D",
		MenuRight 	= "0xFF, 0x01, 0x00, 0x02, 0x08, 0x00, 0x0B",
		
		-- ����������������Լ������ض���Ϣ���������ض���Ϣ������
		--Position = "0x3a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,0x00, 0xff",	

	},
	Stop = 
	{
		TileUp 		= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		TileDown 	= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		PanLeft 	= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		PanRight 	= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		LeftUp 		= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		LeftDown 	= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		RightUp		= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		RightDown 	= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		
		ZoomWide 	= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		ZoomTele 	= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		FocusNear 	= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		FocusFar 	= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		IrisSmall 	= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
		IrisLarge 	= "0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01",
	},
}

Protocol.Checksum = function (s)
	s[7] = math.mod((s[2] + s[3] + s[4] + s[5] + s[6]), 256);
	return s;
end;

Protocol.SpeedProcess = function(s, tile, pan)
	local speed = {0x00,0x08,0x10,0x18,0x20,0x27,0x2F,0x37,0x3F};
	s[5] = speed[math.abs(pan+1)];
	s[6] = speed[math.abs(tile+1)];
	return s;
end;

Protocol.PresetProcess = function(s, preset)
	s[6] = preset;
	return s;
end;

Protocol.PatternProcess = function(s, num)
	return s;	
end;

--[[
����ĺ���ǿ�ѡ�ģ����������⴦���̲Ŵ򿪣�û�еĻ���ǧ��Ҫ�򿪣��������ɽ������
Protocol.MonAddrProcess = function(s, addr)
	return s;
end;

Protocol.SpeedProcess = function(s, arg1, arg2)
	return s;
end;

Protocol.PresetProcess = function(s, arg)
	return s;
end;
--]]


return Protocol;