Commit e4b07a73 authored by 马乐's avatar 马乐

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

parent 2a27202f
...@@ -73,7 +73,8 @@ fun ArcVisDriveEngine.initializeDms():Int{ ...@@ -73,7 +73,8 @@ fun ArcVisDriveEngine.initializeDms():Int{
ArcDMSDetectMaskType.MOD_DMS_CLOSE_EYE or ArcDMSDetectMaskType.MOD_DMS_CLOSE_EYE or
ArcDMSDetectMaskType.MOD_DMS_YAWN or ArcDMSDetectMaskType.MOD_DMS_YAWN or
ArcDMSDetectMaskType.MOD_DMS_DISTRACT 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() val initParamDetail = ArcInitParamInfoDetail()
initParamDetail.modType = ArcModType.TYPE_DMS initParamDetail.modType = ArcModType.TYPE_DMS
...@@ -83,20 +84,106 @@ fun ArcVisDriveEngine.initializeDms():Int{ ...@@ -83,20 +84,106 @@ fun ArcVisDriveEngine.initializeDms():Int{
return init(arcInfoParam) 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 dmsAlarmParam = ArcDMSAlarmParam()
val result = getDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_CALL, dmsAlarmParam) val result = getDMSAlarmParam(ArcDMSAlarmType.ALARM_DMS_CALL, dmsAlarmParam)
if (result == ArcErrorInfo.ARC_ERROR_OK) { if (result == ArcErrorInfo.ARC_ERROR_OK) {
dmsAlarmParam.sensitivityLevel = ArcAlarmSensitivityLevel.ALARM_SENSITIVITY_MEDIUM dmsAlarmParam.sensitivityLevel = ArcAlarmSensitivityLevel.ALARM_SENSITIVITY_MEDIUM
/**
* 以下设置参数仅供测试使用,实际使用请根据真实环境设置
*/
dmsAlarmParam.arcAlarmParam.interval = interval dmsAlarmParam.arcAlarmParam.interval = interval
dmsAlarmParam.arcAlarmParam.speedThreshold = speedThreshold 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() val dmsScope = ArcDMSDistractScope()
var result = getDMSDistractScopeParam(dmsScope) var result = getDMSDistractScopeParam(dmsScope)
return if (result == ArcErrorInfo.ARC_ERROR_OK) { return if (result == ArcErrorInfo.ARC_ERROR_OK) {
...@@ -182,7 +269,7 @@ fun SpmCameraDevice.startDms(engin:ArcVisDriveEngine) = callbackFlow{ ...@@ -182,7 +269,7 @@ fun SpmCameraDevice.startDms(engin:ArcVisDriveEngine) = callbackFlow{
} }
startPictureSequence(PictureSequenceSource.GENERAL_CAMERA,pictureConfig) startPictureSequence(PictureSequenceSource.GENERAL_CAMERA,pictureConfig)
awaitClose { awaitClose {
LogUtils.dTag("dms","dms detect ended") LogUtils.e("dms","dms detect ended")
stopPictureSequence(PictureSequenceSource.GENERAL_CAMERA) stopPictureSequence(PictureSequenceSource.GENERAL_CAMERA)
engin.unInit() engin.unInit()
} }
......
...@@ -16,7 +16,6 @@ const val TTS_ENGINE = "com.iflytek.speechcloud" ...@@ -16,7 +16,6 @@ const val TTS_ENGINE = "com.iflytek.speechcloud"
const val VIDEO_FOLDER = "sdcard/waytous/alarm/" const val VIDEO_FOLDER = "sdcard/waytous/alarm/"
fun SpmCameraDevice.recordVideo(prefix:String){ fun SpmCameraDevice.recordVideo(prefix:String){
val recordConfiguration = RecordConfiguration.get(RecordSource.GENERAL_CAMERA).apply { val recordConfiguration = RecordConfiguration.get(RecordSource.GENERAL_CAMERA).apply {
mLockFileNamePrefix = prefix 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