123 lines
3.6 KiB
C
Executable File
123 lines
3.6 KiB
C
Executable File
/*************************************************
|
|
File name : hal_interface_ptz.c
|
|
Module : hal ptz library interface typedefs
|
|
Author : Eric.wu@anker.com
|
|
Version :
|
|
Created on : 2020-10-22
|
|
Description :
|
|
Data structure and function definitions required by
|
|
the ptz interface
|
|
|
|
Modify History:
|
|
1. Date: Author: Modification:
|
|
2020-10-20 Eric.wu create
|
|
*************************************************/
|
|
#include "pal.h"
|
|
#include "hal_interface_ptz.h"
|
|
#include "hal_product_config.h"
|
|
#include "hal_interface.h"
|
|
|
|
|
|
#ifndef HAL_CFG_PTZ_TYPE
|
|
#error HAL_CFG_PTZ_TYPE undefined !!! Go to "hal_gernerate_product_config_h.sh" settings
|
|
#endif
|
|
|
|
#if (HAL_CFG_PTZ_TYPE == HAL_CFG_PTZ_TYPE_T31)
|
|
#include "ms41929_motor.h"
|
|
#elif (HAL_CFG_PTZ_TYPE == HAL_CFG_PTZ_TYPE_T31_MS41969)
|
|
#include "ms41969_motor.h"
|
|
#elif (HAL_CFG_PTZ_TYPE == HAL_CFG_PTZ_TYPE_MCU)
|
|
|
|
#endif
|
|
|
|
|
|
ST_HAL_PTZ_INTERFACE g_HAL_PTZ_Itf[] =
|
|
{
|
|
#if (HAL_CFG_PTZ_TYPE == HAL_CFG_PTZ_TYPE_T31)
|
|
{
|
|
.pfnInit = MS41929_Ctrl_Init,
|
|
.pfnDeinit = MS41929_Ctrl_Deinit,
|
|
.pfnMove = MS41929_ctrl_Move,
|
|
.pfnGetStatus = MS41929_ctrl_Motor_Get_Status,
|
|
.pfnSelfCalibrate = MS41929_ctrl_Self_Calibrate,
|
|
.pfnPressureTest = MS41929_ctrl_Pressure_Test,
|
|
.pfnBackToOrigin = MS41929_ctrl_GoOriginPlace,
|
|
.pfnSetOrigin = MS41929_ctrl_SetOriginPlace,
|
|
.pfnSetSpeed = MS41929_ctrl_SetSpeed,
|
|
.pfnStop = MS41929_ctrl_stop_run,
|
|
.pfnGetOptoOut = MS41929_ctrl_Motor_Get_OptoOut,
|
|
.pfnSetType = MS41929_ctrl_SetType,
|
|
},
|
|
#elif (HAL_CFG_PTZ_TYPE == HAL_CFG_PTZ_TYPE_T31_MS41969)
|
|
{
|
|
.pfnInit = MS41969_Ctrl_Init,
|
|
.pfnDeinit = MS41969_Ctrl_Deinit,
|
|
.pfnMove = MS41969_ctrl_Move,
|
|
.pfnGetStatus = MS41969_ctrl_Motor_Get_Status,
|
|
.pfnSelfCalibrate = MS41969_ctrl_Self_Calibrate,
|
|
.pfnPressureTest = MS41969_ctrl_Pressure_Test,
|
|
.pfnBackToOrigin = MS41969_ctrl_GoOriginPlace,
|
|
.pfnSetOrigin = MS41969_ctrl_SetOriginPlace,
|
|
.pfnSetSpeed = MS41969_ctrl_SetSpeed,
|
|
.pfnStop = MS41969_ctrl_stop_run,
|
|
.pfnGetOptoOut = MS41969_ctrl_Motor_Get_OptoOut,
|
|
.pfnSetType = NULL,
|
|
},
|
|
#elif (HAL_CFG_PTZ_TYPE == HAL_CFG_PTZ_TYPE_MCU)
|
|
{
|
|
.pfnInit = NULL,
|
|
.pfnDeinit = NULL,
|
|
.pfnMove = NULL,
|
|
.pfnGetStatus = NULL,
|
|
.pfnSelfCalibrate = NULL,
|
|
.pfnPressureTest = NULL,
|
|
.pfnBackToOrigin = NULL,
|
|
.pfnSetOrigin = NULL,
|
|
.pfnSetSpeed = NULL,
|
|
.pfnStop = NULL,
|
|
.pfnGetOptoOut = NULL,
|
|
.pfnSetType = NULL,
|
|
},
|
|
#endif
|
|
};
|
|
|
|
ST_HAL_PTZ_INTERFACE *HAL_PTZ_GetInterface(int32_t Channel)
|
|
{
|
|
|
|
#if (HAL_CFG_PTZ_TYPE == HAL_TYPE_NONE)
|
|
return NULL;
|
|
#elif (HAL_CFG_PTZ_TYPE == HAL_CFG_PTZ_TYPE_T31_MS41969)
|
|
|
|
HAL_ITF_INDEX idx = HAL_SELF;
|
|
if ( Channel <= HAL_CHANNEL_SELF + 1)
|
|
{
|
|
idx = HAL_SELF;
|
|
}
|
|
else
|
|
{
|
|
// 需要从NV获取通道号Channel对应的设备类型对应的hal
|
|
//idx = HAL_REMOTE_SUB1G;
|
|
return NULL;
|
|
}
|
|
return &g_HAL_PTZ_Itf[idx];
|
|
|
|
#else
|
|
|
|
HAL_ITF_INDEX idx = HAL_SELF;
|
|
|
|
if ( Channel == HAL_CHANNEL_SELF )
|
|
{
|
|
idx = HAL_SELF;
|
|
}
|
|
else
|
|
{
|
|
// 需要从NV获取通道号Channel对应的设备类型对应的hal
|
|
//idx = HAL_REMOTE_SUB1G;
|
|
return NULL;
|
|
}
|
|
return &g_HAL_PTZ_Itf[idx];
|
|
#endif
|
|
|
|
}
|
|
|