hardware access to 4G helmet camera DVR BW620E
系统接口使用说明
1. 串口扩展节点:
/dev/ttyS2
2. GPIO控制节点:
/sys/custom_gpio/gpiox
对应gpio序号16进制+状态控制高地电平
gpio65:指示灯,拉高点亮发送echo 4101 > /sys/custom_gpio/gpiox
拉低关闭则发送echo 4100 > /sys/custom_gpio/gpiox
Gpio06:指示灯,拉高点亮发送echo 0601 > /sys/custom_gpio/gpiox
拉低关闭则发送echo 0600 > /sys/custom_gpio/gpiox
gpio66:录像灯,拉高点亮发送echo 4201 > /sys/custom_gpio/gpiox
拉低关闭则发送echo 4200 > /sys/custom_gpio/gpiox
gpio67:爆闪灯,拉高点亮发送echo 4301 > /sys/custom_gpio/gpiox
拉低关闭则发送echo 4300 > /sys/custom_gpio/gpiox
gpio68:镭射灯,拉高点亮发送echo 4401 > /sys/custom_gpio/gpiox
拉低关闭则发送echo 4400 > /sys/custom_gpio/gpiox
gpio73:照明灯,拉高点亮发送echo 4901 > /sys/custom_gpio/gpiox
拉低关闭则发送echo 4900 > /sys/custom_gpio/gpiox
gpio31、gpio32、gpio33::近电感应预留
1F01、2001、 2101
拉高点亮发送echo 1F01 > /sys/custom_gpio/gpiox
拉低关闭则发送echo 1F00 > /sys/custom_gpio/gpiox
gpio31 gpio32 gpio33
0 0 0 220V
0 0 1 10KV
0 1 0 35KV
0 1 1 110KV
近电检测口:
com.creator.android.KEYCODE_F9_DOWN 键值139 靠近感应com.creator.android.KEYCODE_F9_UP
com.creator.android.KEYCODE_F8_DOWN 键值138 无感应
com.creator.android.KEYCODE_F8_UP
3. 按键广播说明:
com.creator.android.KEYCODE_POWER_DOWN 开关机键短按
com.creator.android.KEYCODE_POWER_UP 开关机键短按抬起
com.creator.android.KEYCODE_F1_DOWN PTT键短按
com.creator.android.KEYCODE_F1_UP PTT键短按抬起
com.creator.android.KEYCODE_F1_DOWNLONG PTT键长按
com.creator.android.KEYCODE_F1_UPLONG PTT键长按抬起
com.creator.android.KEYCODE_F2_DOWN LED键短按
com.creator.android.KEYCODE_F2_UP LED键短抬起
com.creator.android.KEYCODE_F2_DOWNLONG LED键长按
com.creator.android.KEYCODE_F2_UPLONG LED键长按抬起
com.creator.android.KEYCODE_F3_DOWN SOS键短按
com.creator.android.KEYCODE_F3_UP SOS键短按抬起
com.creator.android.KEYCODE_F3_DOWNLONG SOS键长按
com.creator.android.KEYCODE_F3_UPLONG SOS键长按抬起
4. 功能接口
充电状态灯:GPIO38
双距感STK3311:接近上报F11,远离上报F12
进入休眠模式,发送按键KEYCODE_SLEEP消息
任意键唤醒,同时会上报唤醒键值up事件
静默安装广播:com.android.silent.install.action
附加属性 install_path 文件路径
静默卸载广播:com.android.silent.uninstall.action
附加属性 uninstall_package_name 应用包名
5. 传感器接口:
气压:
package com.asr.asrsports;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.util.Log;
public class TemperatureActivity extends Activity implements SensorEventListener{
private SensorManager mSensorManager;
private Sensor tempratureSensor;
private TextView temperatureTextView;
private TextView atmosphericPressureTextView;
short temperatureShort;
short atmosphericPressureShort;
@Override
protected void onResume() {
super.onResume();
mSensorManager.registerListener((SensorEventListener) this, tempratureSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_temperature);
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
tempratureSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);
temperatureTextView = (TextView)findViewById(R.id.temperature);
atmosphericPressureTextView = (TextView)findViewById(R.id.atmospheric_pressure);
}
@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType() == Sensor.TYPE_PRESSURE) {
float combineFloat = event.values[0];
int combineInt = Float.floatToIntBits(combineFloat);
Log.v("TemperatureActivity", "Sensor Value is : " + Float.floatToIntBits(combineFloat));
atmosphericPressureShort = (short)(combineInt & 0xFFFF);
temperatureShort = (short)((combineInt >> 16) & 0xFFFF);
float atmosphericPressureValue = atmosphericPressureShort;
atmosphericPressureValue = atmosphericPressureValue/100;
float temperatureValue = temperatureShort;
temperatureValue = temperatureValue/100;
temperatureTextView.setText("temperature: " + temperatureValue + " ℃");
atmosphericPressureTextView.setText("atmospheric pressure: " + atmosphericPressureValue + " kPa");
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
protected void onStop() {
super.onStop();
}
}
关机:
Intent testIntent = new Intent("com.android.silent.shutdown.action");
testIntent.addFlags(0x01000000);
mContext.sendBroadcast(testIntent);