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/Pelco-9750.lua

local Protocol = {};

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

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

Protocol.Command = 
{
	-- д����Э��ʱֻ����16���ƻ��ַ���ʾ,û�еĻ���ע�͵�
	Start= 
	{
		--д��������, ���ϣ����£����ϣ�����
		TileUp 		= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0xAF, 0x00,",
		TileDown 	= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0xAF, 0x00,",
		PanLeft 	= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0xAF, 0x00,",
		PanRight 	= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0xAF, 0x00,",
		LeftUp 		= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x0C, 0x00, 0x00, 0xAF, 0x00,",
		LeftDown 	= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0xAF, 0x00,",
		RightUp		= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x0A, 0x00, 0x00, 0xAF, 0x00,",
		RightDown 	= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x12, 0x00, 0x00, 0xAF, 0x00,",

		ZoomWide 	= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, 0xAF, 0x00,",
		ZoomTele 	= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0xAF, 0x00,",
		FocusNear	= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0xAF, 0x00,",
		FocusFar 	= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x80, 0x00, 0x00, 0xAF, 0x00,",
		IrisSmall 	= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0xAF, 0x00,",
		IrisLarge 	= "0xA0, 0xC0, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0xAF, 0x00,",

		MatrixSwitch    = "0xA0, 0xB2, 0x00, 0x00, 0x01, 0xAF, 0x00,",	
	},
	Stop = 
	{
		TileUp 		= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0xAF, 0x00,",
		TileDown 	= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0xAF, 0x00,",
		PanLeft 	= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0xAF, 0x00,",
		PanRight 	= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0xAF, 0x00,",
		LeftUp 		= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x00, 0x0C, 0x00, 0x00, 0xAF, 0x00,",
		LeftDown 	= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0xAF, 0x00,",
		RightUp		= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x00, 0x0A, 0x00, 0x00, 0xAF, 0x00,",
		RightDown 	= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x00, 0x12, 0x00, 0x00, 0xAF, 0x00,",

		ZoomWide 	= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, 0xAF, 0x00,",
		ZoomTele 	= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0xAF, 0x00,",
		FocusNear	= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0xAF, 0x00,",
		FocusFar 	= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x00, 0x80, 0x00, 0x00, 0xAF, 0x00,",
		IrisSmall 	= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0xAF, 0x00,",
		IrisLarge 	= "0xA0, 0xC5, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0xAF, 0x00,",

	},
}

Protocol.Checksum = function (s)
	if table.getn(s) == 7 then
		 s[7] = math.mod((s[2] + s[3] + s[4] + s[5]), 256);	
	else
		s[11] = math.mod((s[2] + s[3] + s[4] + s[5] + s[6] + s[7] + s[8] + s[9]), 256);
	end;
	return s;
end;

Protocol.CamAddrProcess = function(s, addr)
        s[4] = math.floor(addr/256);
	s[5] = math.mod(addr,256);
	return s;
end;

Protocol.MonAddrProcess = function(s, addr)
	 s[3] = math.mod(addr, 256);
	return s;
end;

Protocol.SpeedProcess = function(s, ver, hor)
	if s[2] ~= 0xc5 then
		s[9] = ver;
		s[8] = hor;
	end;
	return s;
end;
--[[
Protocol.PresetProcess = function(s, arg)
	return s;
end;
--]]


return Protocol;