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/PELCOD-S1.lua

local Protocol = {};

-- ��ʾ�ֵ������16��10����(��Сֵ�����ֵ)
Protocol.Attr =
{
	-- Э�����ʾ���,���ܳ���16�ַ���Ŀǰ�ݲ�֧������
	Name = "PELCOD-S1",

	-- ָ�����̨Э�黹�Ǿ���Э�飬ʹ��"PTZ", "MATRIX"��ʾ
	Type = "PTZ",

	-- ��msΪ��λ
	Internal = 200,

	-- û�ж�Ӧ�ĵ�ַ��Χ���붼���0xff
	-- ��̨��ַ��Χ
	CamAddrRange 		= {0x00, 0x1F},
	-- ���ӵ�ַ��Χ
	MonAddrRange		= {0x00, 0xFF},
	-- Ԥ�õ㷶Χ
	PresetRange 		= {0x01, 0xFF},
	-- �Զ�Ѳ����·��Χ
	TourRange		= {0x00, 0xff},
	-- �켣��·��Χ
	PatternRange		= {0x00, 0xff},
	-- ��ֱ�ٶȷ�Χ
	TileSpeedRange 		= {0x00, 0x3F},
	-- ˮƽ�ٶȷ�Χ
	PanSpeedRange 		= {0x00, 0x3F},
	-- �����Χ
	AuxRange 		= {0x01, 0x08},
}

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

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

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

                TileUpZoomWide 	 =  "0xFF, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00",
		TileDownZoomWide =  "0xFF, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00",
		PanLeftZoomWide  =  "0xFF, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00",
		PanRightZoomWide =  "0xFF, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00",
		LeftUpZoomWide 	 =  "0xFF, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00",
		LeftDownZoomWide =  "0xFF, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00",
		RightUpZoomWide	 =  "0xFF, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00",
		RightDownZoomWide=  "0xFF, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00",

                TileUpZoomTele   =  "0xFF, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00",
		TileDownZoomTele =  "0xFF, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00",
		PanLeftZoomTele  =  "0xFF, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00",
		PanRightZoomTele =  "0xFF, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00",
		LeftUpZoomTele   =  "0xFF, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00",
		LeftDownZoomTele =  "0xFF, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00",
		RightUpZoomTele  =  "0xFF, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00",
		RightDownZoomTele = "0xFF, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00",


	},
	Stop =
	{
		TileUp 		= "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		TileDown 	= "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		PanLeft 	= "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		PanRight 	= "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		LeftUp 		= "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		LeftDown 	= "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		RightUp		= "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		RightDown 	= "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",

		ZoomWide 	= "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		ZoomTele 	= "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
                FocusNear       = "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
                FocusFar        = "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
                IrisSmall       = "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
                IrisLarge       = "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",

        TileUpZoomWide 	 =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		TileDownZoomWide =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		PanLeftZoomWide  =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		PanRightZoomWide =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		LeftUpZoomWide 	 =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		LeftDownZoomWide =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		RightUpZoomWide	 =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		RightDownZoomWide=  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",

        TileUpZoomTele   =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		TileDownZoomTele =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		PanLeftZoomTele  =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		PanRightZoomTele =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		LeftUpZoomTele   =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		LeftDownZoomTele =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		RightUpZoomTele  =  "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
		RightDownZoomTele = "0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00",
	},
}

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

	return s;
end;

Protocol.CamAddrProcess = function(s, addr)
	local addr = math.mod(addr,256);
		s[2] = addr;
	return s;
end;

Protocol.SpeedProcess = function(s, ver, hor)
	if s[4] ~= 0x00 then
		s[6] = ver;
		s[5] = hor;
	end;

	return s;
end;

return Protocol;