init
This commit is contained in:
593
docs/sdk_apis.md
Normal file
593
docs/sdk_apis.md
Normal file
@@ -0,0 +1,593 @@
|
||||
# Terra SDK 接口文档
|
||||
|
||||
|
||||
## Terra SDK
|
||||
|
||||
Terra 是设备的名称,包含了光谱仪、激光器、拉曼相关接口。
|
||||
|
||||
## 接口列表
|
||||
|
||||
| 类名称 | 描述 |
|
||||
|--------|------|
|
||||
| DeviceWrapper | 设备管理器 |
|
||||
| Device | 设备 |
|
||||
|
||||
## 调用示例
|
||||
|
||||
**step1: 获取 USB 设备**
|
||||
```java
|
||||
List<Device> allDevices = DeviceWrapper.openAllDevices(mContext);
|
||||
```
|
||||
|
||||
**step2: 设备初始化**,初始化完成后通过回调方式通知客户端
|
||||
```java
|
||||
device.setCallBack(new Device.CallBack() {
|
||||
@Override
|
||||
public void onDeviceStatue(boolean state) {
|
||||
Log.d(TAG, "state = " + state );
|
||||
String sn = "";
|
||||
if(state){
|
||||
sn = device.getSerialNumber();
|
||||
}
|
||||
//...
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
**step3: 调用设备**
|
||||
```java
|
||||
double[] spectrum = device.getSpectrum();
|
||||
```
|
||||
|
||||
## DeviceWrapper
|
||||
|
||||
获取或关闭所有设备
|
||||
|
||||
### Methods
|
||||
|
||||
#### openAllDevices
|
||||
```java
|
||||
/**
|
||||
* 打开所有设备
|
||||
*
|
||||
* @param context Application context
|
||||
* @return 挂在的所有设备
|
||||
*/
|
||||
public static List<Device> openAllDevices(Context context);
|
||||
```
|
||||
|
||||
#### closeAllDevices
|
||||
```java
|
||||
/**
|
||||
* 关闭所有设备
|
||||
*/
|
||||
public static void closeAllDevices();
|
||||
```
|
||||
|
||||
#### openDebug
|
||||
```java
|
||||
/**
|
||||
* 开启日志输出
|
||||
*/
|
||||
public static void openDebug();
|
||||
```
|
||||
|
||||
#### checkUsbPermission
|
||||
```java
|
||||
/**
|
||||
* 检测是否有 USB 权限
|
||||
*/
|
||||
public static void checkUsbPermission(Context context, PermissionCallBack permissionCallBack) {
|
||||
UsbConnect.checkUsbPermission(context,permissionCallBack);
|
||||
}
|
||||
```
|
||||
|
||||
#### PermissionCallBack
|
||||
```java
|
||||
/**
|
||||
* USB 权限状态回调
|
||||
*/
|
||||
public interface PermissionCallBack{
|
||||
/**
|
||||
* USB 权限状态
|
||||
* @param deviceIndex 设备索引
|
||||
* @param state true:有权限
|
||||
*/
|
||||
public void onPermissionStatue(int deviceIndex, boolean state);
|
||||
}
|
||||
```
|
||||
## Device
|
||||
|
||||
Device 是封装了设备提供的接口
|
||||
|
||||
### Methods
|
||||
|
||||
`CallBack` `setCallBack` `close` `getIndex` `isConnect` `getSerialNumber` `setIntegrationTime` `setAverageTimes` `setTriggerMode` `getSpectrum` `getResetSpectrum` `getWavelength` `getWaveNumber` `setCCDTECOn` `setCCDTECOff` `setCCDTECTemperature` `setLampEnable` `setLampDelayTime` `setLampWidth` `setLampInterval` `getLampDelayTime` `getLampWidth` `getLampInterval` `setExcitedWaveLength` `setLaserPower` `setLaserOn` `setLaserOff` `setLaserPowerOn` `setLaserPowerOff` `setTECOn` `setTECOff` `setMainBoardOn` `setMainBoardOff` `isMainBoardOpen` `isTECOpen` `waveletSmooth` `removeFluorescence` `lineInterpolation` `findPeaks` `getSlit` `getBadPoints` `getYJCorrectCoefficient` `getYAxisCorrectCoefficient` `getCorrectForDetectorNonlinear` `getWavelengthCalibrationCoefficients` `getLaserPowerCorrectCoefficient` `getFpgaVersion` `setYJCorrectCoefficient` `setLaserPowerCorrectCoefficient`
|
||||
|
||||
#### CallBack
|
||||
```java
|
||||
/**
|
||||
* 设备状态回调接口
|
||||
*/
|
||||
public interface CallBack{
|
||||
/**
|
||||
* 设备状态回调
|
||||
* @param state 设备状态
|
||||
* true:连接成功
|
||||
* false:连接失败
|
||||
*/
|
||||
void onDeviceStatue(boolean state);
|
||||
}
|
||||
```
|
||||
|
||||
#### setCallBack
|
||||
```java
|
||||
/**
|
||||
* 设置回调函数
|
||||
* @param callBack 回调
|
||||
*/
|
||||
public void setCallBack(CallBack callBack);
|
||||
```
|
||||
|
||||
#### close
|
||||
```java
|
||||
/**
|
||||
* 关闭设备
|
||||
*/
|
||||
public void close();
|
||||
```
|
||||
|
||||
#### getIndex
|
||||
```java
|
||||
/**
|
||||
* 设备编号
|
||||
* @return 编号
|
||||
*/
|
||||
public int getIndex();
|
||||
```
|
||||
|
||||
#### isConnect
|
||||
```java
|
||||
/**
|
||||
* 设备是否连接成功
|
||||
*/
|
||||
public boolean isConnect();
|
||||
```
|
||||
#### getSerialNumber
|
||||
```java
|
||||
/**
|
||||
* 获取设备序列号
|
||||
* @return 设备序列号
|
||||
*/
|
||||
public String getSerialNumber();
|
||||
```
|
||||
|
||||
#### setIntegrationTime
|
||||
```java
|
||||
/**
|
||||
* 设置设备积分时间
|
||||
* @param integrationTime 积分时间
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setIntegrationTime(double integrationTime);
|
||||
```
|
||||
|
||||
#### setAverageTimes
|
||||
```java
|
||||
/**
|
||||
* 设置平均次数
|
||||
* @param averageTimes 平均次数
|
||||
*/
|
||||
public void setAverageTimes(int averageTimes);
|
||||
```
|
||||
|
||||
#### setTriggerMode
|
||||
```java
|
||||
/**
|
||||
* 设置触发模式
|
||||
* @param triggerMode 触发模式
|
||||
* 0: Free Running
|
||||
* 1: Hardware Level
|
||||
* 2: Synchronous
|
||||
* 3: Hardware Edge
|
||||
* 4: Edge And Free
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setTriggerMode(int triggerMode);
|
||||
```
|
||||
|
||||
#### getSpectrum
|
||||
```java
|
||||
/**
|
||||
* 获取光谱(读取当前光谱,非平均过后的光谱)
|
||||
* @return 光谱数据
|
||||
*/
|
||||
public double[] getSpectrum();
|
||||
```
|
||||
|
||||
#### getResetSpectrum
|
||||
```java
|
||||
/**
|
||||
* 获取光谱(读取当前光谱,受用户积分时间)
|
||||
* @return 光谱数据
|
||||
*/
|
||||
public double[] getResetSpectrum();
|
||||
```
|
||||
|
||||
#### getWavelength
|
||||
```java
|
||||
/**
|
||||
* 获取波长
|
||||
* @return 波长数据
|
||||
*/
|
||||
public double[] getWavelength();
|
||||
```
|
||||
|
||||
#### getWaveNumber
|
||||
```java
|
||||
/**
|
||||
* 获取波数
|
||||
* @return 波数数据
|
||||
*/
|
||||
public double[] getWaveNumber();
|
||||
```
|
||||
|
||||
#### setCCDTECOn
|
||||
```java
|
||||
/**
|
||||
* 开 CCD 制冷
|
||||
* @return 是否关闭成功
|
||||
*/
|
||||
public boolean setCCDTECOn();
|
||||
```
|
||||
#### setCCDTECOff
|
||||
```java
|
||||
/**
|
||||
* 关 CCD 制冷
|
||||
* @return 是否关闭成功
|
||||
*/
|
||||
public boolean setCCDTECOff();
|
||||
```
|
||||
|
||||
#### setCCDTECTemperature
|
||||
```java
|
||||
/**
|
||||
* 设置制冷的目标温度 (-20~40)
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setCCDTECTemperature(int temperature);
|
||||
```
|
||||
|
||||
#### getCCDTECState
|
||||
```java
|
||||
/**
|
||||
* 获取探测器制冷状态,返回 16 个字节:
|
||||
* 第一个字节是 TEC 当前温度符号位(0:零上,1:零下),单位
|
||||
* 第二个字节是 TEC 当前温度整数位
|
||||
* 第三个字节是 TEC 当前温度小数位
|
||||
* 第四个字节是 PID 参数 P 高八位
|
||||
* 第五个字节是 PID 参数 P 低八位
|
||||
* 第六个字节是 PID 参数 I
|
||||
* 第七个字节是 PID 参数 D
|
||||
* 第八个字节是 TEC 电流符号位(0:正电流,1:负电流),单位 mA
|
||||
* 第九个字节是 TEC 电流高八位
|
||||
* 第十个字节是 TEC 电流低八位
|
||||
* 第十一个字节是报警是否位(0 表示没有,1 表示报警,2 表示 TEC 没有)
|
||||
* 第十二个字节 TEC 目标温度符号位(0:零上,1:零下),单位
|
||||
* 第十三个字节 TEC 目标温度整数位
|
||||
* 第十四个字节 LD 电流高八位(目前是 PD 管放大器的电压)
|
||||
* 第十五个字节 LD 电流低八位
|
||||
* 第十六个字节上电状态(0 表示没上电,1 表示上电)
|
||||
* @return 当前状态信息
|
||||
*/
|
||||
public byte[] getCCDTECState();
|
||||
```
|
||||
|
||||
#### setLampEnable
|
||||
```java
|
||||
/**
|
||||
* Lamp 控制
|
||||
* @param enable 控制 true:开,false
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setLampEnable(boolean enable);
|
||||
```
|
||||
|
||||
#### setLampDelayTime
|
||||
```java
|
||||
/**
|
||||
* 设置灯泡的延迟时间(微秒)
|
||||
* @param delayTime 延迟时间
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setLampDelayTime(double delayTime);
|
||||
```
|
||||
|
||||
#### setLampWidth
|
||||
```java
|
||||
/**
|
||||
* 设置灯泡脉宽(微秒)
|
||||
* @param width 脉宽
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setLampWidth(double width);
|
||||
```
|
||||
|
||||
#### setLampInterval
|
||||
```java
|
||||
/**
|
||||
* 设置灯泡的周期(微秒)
|
||||
* @param interval 周期
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setLampInterval(double interval);
|
||||
```
|
||||
|
||||
#### getLampDelayTime
|
||||
```java
|
||||
/**
|
||||
* 获取延迟时间(微秒)
|
||||
* @return 延迟时间
|
||||
*/
|
||||
public double getLampDelayTime();
|
||||
```
|
||||
#### getLampWidth
|
||||
```java
|
||||
/**
|
||||
* 获取灯泡脉宽(微秒)
|
||||
* @return 灯泡脉宽
|
||||
*/
|
||||
public double getLampWidth();
|
||||
```
|
||||
|
||||
#### getLampInterval
|
||||
```java
|
||||
/**
|
||||
* 获取灯泡的周期(微秒)
|
||||
* @return 灯泡周期
|
||||
*/
|
||||
public double getLampInterval();
|
||||
```
|
||||
|
||||
#### setExcitedWaveLength
|
||||
```java
|
||||
/**
|
||||
* 设置激发波长
|
||||
* @param excitedWaveLength 激发波长
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setExcitedWaveLength(int excitedWaveLength);
|
||||
```
|
||||
|
||||
#### setLaserPower
|
||||
```java
|
||||
/**
|
||||
* 设置激光功率
|
||||
* @param power 激光功率
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setLaserPower(int power);
|
||||
```
|
||||
|
||||
#### setLaserOn
|
||||
```java
|
||||
/**
|
||||
* 开激光
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setLaserOn();
|
||||
```
|
||||
|
||||
#### setLaserOff
|
||||
```java
|
||||
/**
|
||||
* 关激光
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setLaserOff();
|
||||
```
|
||||
|
||||
#### setLaserPowerOn
|
||||
```java
|
||||
/**
|
||||
* 开激光器电源
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setLaserPowerOn();
|
||||
```
|
||||
|
||||
#### setLaserPowerOff
|
||||
```java
|
||||
/**
|
||||
* 关激光器电源
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setLaserPowerOff();
|
||||
```
|
||||
|
||||
#### setTECOn
|
||||
```java
|
||||
/**
|
||||
* 开 TEC
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setTECOn();
|
||||
```
|
||||
|
||||
#### setTECOff
|
||||
```java
|
||||
/**
|
||||
* 关 TEC
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setTECOff();
|
||||
```
|
||||
#### setMainBoardOn
|
||||
```java
|
||||
/**
|
||||
* 开主板
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public double setMainBoardOn();
|
||||
```
|
||||
|
||||
#### setMainBoardOff
|
||||
```java
|
||||
/**
|
||||
* 关主板
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public double setMainBoardOff();
|
||||
```
|
||||
|
||||
#### isMainBoardOpen
|
||||
```java
|
||||
/**
|
||||
* 主板是否开成功,在最后一次操作时判断
|
||||
* @return 是否开成功
|
||||
*/
|
||||
public boolean isMainBoardOpen();
|
||||
```
|
||||
|
||||
#### isTECOpen
|
||||
```java
|
||||
/**
|
||||
* 获取 TEC 状态,true:已开
|
||||
* @return TEC 状态
|
||||
*/
|
||||
public boolean isTECOpen();
|
||||
```
|
||||
|
||||
#### waveletSmooth
|
||||
```java
|
||||
/**
|
||||
* 小波平滑
|
||||
* @param spectrum 光谱
|
||||
* @return 平滑后的光谱
|
||||
*/
|
||||
public double[] waveletSmooth(double[] spectrum);
|
||||
```
|
||||
|
||||
#### removeFluorescence
|
||||
```java
|
||||
/**
|
||||
* 去荧光
|
||||
* @param spectrum 光谱
|
||||
* @return 去荧光后的光谱
|
||||
*/
|
||||
public double[] removeFluorescence(double[] spectrum, int side);
|
||||
```
|
||||
|
||||
#### lineInterpolation
|
||||
```java
|
||||
/**
|
||||
* 线性插值
|
||||
* @param xDataRaw 原 X 轴数据
|
||||
* @param yDataRaw 原 Y 轴数据
|
||||
* @param xData 插值后的 X 轴数据
|
||||
* @return yData 插值后的 Y 轴数据
|
||||
*/
|
||||
public double[] lineInterpolation(double[] xDataRaw, double[] yDataRaw, double[] xData);
|
||||
```
|
||||
|
||||
#### findPeaks
|
||||
```java
|
||||
/**
|
||||
* 寻峰
|
||||
* @param spectrum 光谱
|
||||
* @param minIndicesBetweenPeaks 最小峰间距(值为 2,实际可能需要 5)
|
||||
* @param baseline 基线
|
||||
* @return 返回找到的峰的位置
|
||||
*/
|
||||
public static int[] findPeaks(double[] spectrum, int minIndicesBetweenPeaks, double baseline);
|
||||
```
|
||||
|
||||
#### getSlit
|
||||
```java
|
||||
/**
|
||||
* 获取狭缝
|
||||
* @return 狭缝大小
|
||||
*/
|
||||
public String getSlit();
|
||||
```
|
||||
|
||||
#### getBadPoints
|
||||
```java
|
||||
/**
|
||||
* 获取坏点
|
||||
* @return 坏点
|
||||
*/
|
||||
public int[] getBadPoints();
|
||||
```
|
||||
#### getYJCorrectCoefficient
|
||||
```java
|
||||
/**
|
||||
* 获取波长校准系数
|
||||
* @return 波长校准系数
|
||||
*/
|
||||
public double[] getYJCorrectCoefficient();
|
||||
```
|
||||
|
||||
#### getYAxisCorrectCoefficient
|
||||
```java
|
||||
/**
|
||||
* 获取 Y 轴校准系数
|
||||
* @return Y 轴系数
|
||||
*/
|
||||
public double[] getYAxisCorrectCoefficient();
|
||||
```
|
||||
|
||||
#### getCorrectForDetectorNonlinear
|
||||
```java
|
||||
/**
|
||||
* 获取探测器非线性校正系数
|
||||
* @return 探测器非线性校正系数
|
||||
*/
|
||||
public double[] getCorrectForDetectorNonlinear();
|
||||
```
|
||||
|
||||
#### getWavelengthCalibrationCoefficients
|
||||
```java
|
||||
/**
|
||||
* 获取波长校准系数
|
||||
* @return 波长校准系数
|
||||
*/
|
||||
public double[] getWavelengthCalibrationCoefficients();
|
||||
```
|
||||
|
||||
#### getLaserPowerCorrectCoefficient
|
||||
```java
|
||||
/**
|
||||
* 获取功率校准系数
|
||||
* @return 功率校准系数
|
||||
*/
|
||||
public double[] getLaserPowerCorrectCoefficient();
|
||||
```
|
||||
|
||||
#### getFpgaVersion
|
||||
```java
|
||||
/**
|
||||
* 获取 FPGA 版本
|
||||
* @return FPGA 版本
|
||||
*/
|
||||
public double[] getFpgaVersion();
|
||||
```
|
||||
|
||||
#### setYJCorrectCoefficient
|
||||
```java
|
||||
/**
|
||||
* 设置波长校准系数
|
||||
* @param coffes 波长校准系数
|
||||
* @return 是否设置成功
|
||||
*/
|
||||
public boolean setYJCorrectCoefficient(double[] coffes);
|
||||
```
|
||||
|
||||
#### setLaserPowerCorrectCoefficient
|
||||
```java
|
||||
/**
|
||||
* 设置功率校准系数
|
||||
* @param calibrationCoefficient 功率校准系数(格式:16 位字符串,4 个数据,每个数据 4 位,如 0070030008001400)
|
||||
*/
|
||||
public void setLaserPowerCorrectCoefficient(String calibrationCoefficient);
|
||||
```
|
||||
Reference in New Issue
Block a user