| 
 | 
TW8智能执法仪项目第三方适配接口说明 
一、按键说明 
下面表格TW8终端framework层键值对应表: 
Kernel key code        Framework key code        Fun define 
KEY_F14 = 184        KEYCODE_T8_VID= 284        短按录像 
如果在执法仪界面则执法仪录像 
如果在其他界面,则进入执法仪录像 
KEY_F17 = 187        KEYCODE_T8_CAM = 285        短按拍照 
如果在执法仪界面则执法仪抓拍 
如果在其他界面,则进入执法仪抓拍 
KEY_F13 = 183        KEYCODE_T8_SOUND = 286        短按录音 
KEY_F15 = 185        KEYCODE_T8_PTT = 288        短按对讲 
KEY_F16 = 186        KEYCODE_T8_STAR = 289        短按标星 
如果正在执法仪录像、录音,则录制过程中对当前录制文件进行标星操作,文件名前追加IMP_ 
KEY_F18 = 188        KEYCODE_T8_SOS = 287        短按SOS 给第三方发消息 
                 
 
二、LED及闪光灯说明 
LED三色灯对应结点如下 
RED_LED_DEV = "/sys/class/leds/red/brightness"; 
GREEN_LED_DEV = "/sys/class/leds/green/brightness"; 
YELLOW_LED_DEV = "/sys/class/leds/blue/brightness"; //复用蓝灯节点为黄灯 
说明: 
执法仪摄像头由于带有红外滤光片,因此没有支持闪光灯! 
对于红绿黄三色灯的调用,目前我们定义如下, 
灯光颜色        场景        方式 
红        正在录像(包含延录)        常亮 
        正在充电        连续闪烁 
黄        正在录音        常亮 
绿        待机状态        常亮 
        拍照        闪烁单次 
 
调用Action 
1.        filter.addAction("tangwei.intent.action.leds.charge.off"); //第三方无需调用 
2.        filter.addAction("tangwei.intent.action.leds.charge.on");  //第三方无需调用 
3.        filter.addAction("tangwei.intent.action.leds.video.start"); //开始录像  
4.        filter.addAction("tangwei.intent.action.leds.video.end");  //录像停止 
5.        filter.addAction("tangwei.intent.action.leds.voice.start");  //开始录音 
6.        filter.addAction("tangwei.intent.action.leds.voice.end");  //录音停止 
7.        filter.addAction("tangwei.intent.action.leds.picture");  //绿灯闪一下 
 
三、IRCUT 
监听光线传感器,设置双阈值。 
当传感器上报值下降到5则切换到红外滤光 
当传感器上报值上升到30则关闭红外滤光 
示例代码如下 
1.        @Override   
2.        public void onSensorChanged(SensorEvent event) {   
3.            if (event.sensor.getType() == Sensor.TYPE_LIGHT) {   
4.                float distance = event.values[0];   
5.                if (isNativeCamera && camera != null && parameters != null) {   
6.                          try {   
7.                              if(distance<5 && EFFECT==1) {   
8.                                EFFECT = 0;   
9.                                  parameters.setColorEffect(Camera.Parameters.EFFECT_MONO);   
10.                                  camera.setParameters(parameters);   
11.                              }   
12.                              if(distance>30 && EFFECT==0){   
13.                                EFFECT = 1;   
14.                                  parameters.setColorEffect(Camera.Parameters.EFFECT_NONE);   
15.                                  camera.setParameters(parameters);    
16.                              }   
17.                          } catch (Exception e) {   
18.                              return;   
19.                          }   
20.                      }   
21.            }   
22.        }   
 
说明: 
1 EFFECT 代表变化前的滤光片状态  
Camera.Parameters.EFFECT_MONO 代表滤光片打开,EFFECT=0 
Camera.Parameters.EFFECT_MONE 代表滤光片关闭,EFFECT=1 
2 执法仪相机获取 
1.        try {   
2.            int cameraCount = Camera.getNumberOfCameras();   
3.            
4.            cameraId = cameraCount-1;//use the last one   
5.            camera = Camera.open(cameraId);   
6.           
7.        } catch (Exception e) {   
8.            Log.d(TAG, "open native Camera fail! id:"+cameraId);   
9.            e.printStackTrace();   
10.          
11.        }   
 
3 需要注意传感器在屏幕休眠的时候取消注册监听,否则影响电流 
四、日志模块 
        第三方请通过广播方式发出日志整体的String 
Action:uniscope.intent.action.log.update 
Etra:String log_info = 整个日志行的string 包括下表所有字段 
         intent.putExtra("log_info", log_info); 
        每一条信息的格式定义如下: 
“I 2017-12-14 16:00:00 SYSTEM: POWER_ON BOOT_COMPLETE” 这是开机的例子 
概括起来就是下面的统一定义 
LEVEL YYYY-MM-DD HH:MM:SS MODE_NAME: EXTRA_STR 
        关键字段状态信息定义如下: 
字段        含义        值定义 
YYYY        年        2017- 四位 
MM        月        01-12 两位 
DD        日        01-31 两位 
HH        时        00-23 两位 
MM        分        00-59 两位 
SS        秒        00-59 两位 
MODE_NAME        模块名称        SYSTEM、DC、SRC、EFC、STORAGE 
LOG_LEVEL                异常信息 E(暂保留) 
警报、告警信息 为W 
系统信息 为 I 
Debug信息 为D(调试留用) 
 
 
 |   
 
 
 
 |