Commit e4b07a73 authored by 马乐's avatar 马乐

1.修复截取视频只能截取一次问题

parent 2a27202f
......@@ -73,7 +73,8 @@ fun ArcVisDriveEngine.initializeDms():Int{
ArcDMSDetectMaskType.MOD_DMS_CLOSE_EYE or
ArcDMSDetectMaskType.MOD_DMS_YAWN or
ArcDMSDetectMaskType.MOD_DMS_DISTRACT or
ArcDMSDetectMaskType.MOD_DMS_DRIVER_ABNORMAL
ArcDMSDetectMaskType.MOD_DMS_DRIVER_ABNORMAL or
ArcDMSDetectMaskType.MOD_DMS_LENS_COVERED
}
val initParamDetail = ArcInitParamInfoDetail()
initParamDetail.modType = ArcModType.TYPE_DMS
......@@ -83,20 +84,106 @@ fun ArcVisDriveEngine.initializeDms():Int{
return init(arcInfoParam)
}
fun ArcVisDriveEngine.setDmsAlarmParams(interval:Int = 4,speedThreshold:Int = 33){
/**
* 打电话参数设置
*
* */
fun ArcVisDriveEngine.setDmsAlarmCallParams(interval:Int = 30, speedThreshold:Int = 33){
val dmsAlarmParam = ArcDMSAlarmParam()
val result = getDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_CALL, dmsAlarmParam)
if (result == ArcErrorInfo.ARC_ERROR_OK) {
dmsAlarmParam.sensitivityLevel = ArcAlarmSensitivityLevel.ALARM_SENSITIVITY_MEDIUM
/**
* 以下设置参数仅供测试使用,实际使用请根据真实环境设置
*/
dmsAlarmParam.arcAlarmParam.interval = interval
dmsAlarmParam.arcAlarmParam.speedThreshold = speedThreshold
setDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_CALL, dmsAlarmParam)
}
}
/**
* 抽烟参数设置
*
* */
fun ArcVisDriveEngine.setDmsAlarmSmokeParams(interval:Int = 30, speedThreshold:Int = 33){
val dmsAlarmParam = ArcDMSAlarmParam()
val result = getDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_SMOKE, dmsAlarmParam)
if (result == ArcErrorInfo.ARC_ERROR_OK) {
dmsAlarmParam.sensitivityLevel = ArcAlarmSensitivityLevel.ALARM_SENSITIVITY_MEDIUM
dmsAlarmParam.arcAlarmParam.interval = interval
dmsAlarmParam.arcAlarmParam.speedThreshold = speedThreshold
setDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_SMOKE, dmsAlarmParam)
}
}
/**
* 闭眼睛参数设置
*
* */
fun ArcVisDriveEngine.setDmsAlarmCloseEyeParams(interval:Int = 30, speedThreshold:Int = 33){
val dmsAlarmParam = ArcDMSAlarmParam()
val result = getDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_CLOSE_EYE, dmsAlarmParam)
if (result == ArcErrorInfo.ARC_ERROR_OK) {
dmsAlarmParam.sensitivityLevel = ArcAlarmSensitivityLevel.ALARM_SENSITIVITY_MEDIUM
dmsAlarmParam.arcAlarmParam.interval = interval
dmsAlarmParam.arcAlarmParam.speedThreshold = speedThreshold
setDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_CLOSE_EYE, dmsAlarmParam)
}
}
/**
* 打哈欠参数设置
*
* */
fun ArcVisDriveEngine.setDmsAlarmYawnParams(interval:Int = 30, speedThreshold:Int = 33){
val dmsAlarmParam = ArcDMSAlarmParam()
val result = getDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_YAWN, dmsAlarmParam)
if (result == ArcErrorInfo.ARC_ERROR_OK) {
dmsAlarmParam.sensitivityLevel = ArcAlarmSensitivityLevel.ALARM_SENSITIVITY_MEDIUM
dmsAlarmParam.arcAlarmParam.interval = interval
dmsAlarmParam.arcAlarmParam.speedThreshold = speedThreshold
setDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_YAWN, dmsAlarmParam)
}
}
/**
* 分神参数设置
*
* */
fun ArcVisDriveEngine.setDmsAlarmDistractParams(interval:Int = 30, speedThreshold:Int = 33){
val dmsAlarmParam = ArcDMSAlarmParam()
val result = getDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_DISTRACT, dmsAlarmParam)
if (result == ArcErrorInfo.ARC_ERROR_OK) {
dmsAlarmParam.sensitivityLevel = ArcAlarmSensitivityLevel.ALARM_SENSITIVITY_MEDIUM
dmsAlarmParam.arcAlarmParam.interval = interval
dmsAlarmParam.arcAlarmParam.speedThreshold = speedThreshold
setDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_DISTRACT, dmsAlarmParam)
}
}
/**
* 驾驶员异常参数设置
*
* */
fun ArcVisDriveEngine.setDmsAlarmDriverAbnormalParams(interval:Int = 120, speedThreshold:Int = 33){
val dmsAlarmParam = ArcDMSAlarmParam()
val result = getDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_DRIVER_ABNORMAL, dmsAlarmParam)
if (result == ArcErrorInfo.ARC_ERROR_OK) {
dmsAlarmParam.sensitivityLevel = ArcAlarmSensitivityLevel.ALARM_SENSITIVITY_LOW
dmsAlarmParam.arcAlarmParam.interval = interval
dmsAlarmParam.arcAlarmParam.speedThreshold = speedThreshold
setDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_DRIVER_ABNORMAL, dmsAlarmParam)
}
}
/**
* 遮挡镜头参数设置
*
* */
fun ArcVisDriveEngine.setDmsAlarmLensCoveredParams(interval:Int = 60, speedThreshold:Int = 33){
val dmsAlarmParam = ArcDMSAlarmParam()
val result = getDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_LENS_COVERED, dmsAlarmParam)
if (result == ArcErrorInfo.ARC_ERROR_OK) {
dmsAlarmParam.sensitivityLevel = ArcAlarmSensitivityLevel.ALARM_SENSITIVITY_LOW
dmsAlarmParam.arcAlarmParam.interval = interval
dmsAlarmParam.arcAlarmParam.speedThreshold = speedThreshold
setDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_LENS_COVERED, dmsAlarmParam)
}
}
fun ArcVisDriveEngine.setDmsDistractScope(leftYaw:Int = -20,rightYaw:Int = 20,upPitch:Int = 20,downPitch:Int = -20):Int{
fun ArcVisDriveEngine.setDmsDistractScope(leftYaw:Int = -30,rightYaw:Int = 30,upPitch:Int = 20,downPitch:Int = -20):Int{
val dmsScope = ArcDMSDistractScope()
var result = getDMSDistractScopeParam(dmsScope)
return if (result == ArcErrorInfo.ARC_ERROR_OK) {
......@@ -182,7 +269,7 @@ fun SpmCameraDevice.startDms(engin:ArcVisDriveEngine) = callbackFlow{
}
startPictureSequence(PictureSequenceSource.GENERAL_CAMERA,pictureConfig)
awaitClose {
LogUtils.dTag("dms","dms detect ended")
LogUtils.e("dms","dms detect ended")
stopPictureSequence(PictureSequenceSource.GENERAL_CAMERA)
engin.unInit()
}
......
......@@ -16,7 +16,6 @@ const val TTS_ENGINE = "com.iflytek.speechcloud"
const val VIDEO_FOLDER = "sdcard/waytous/alarm/"
fun SpmCameraDevice.recordVideo(prefix:String){
val recordConfiguration = RecordConfiguration.get(RecordSource.GENERAL_CAMERA).apply {
mLockFileNamePrefix = prefix
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment