? ? ZNWC_T_L_H?SDK 使用說(shuō)明
一、集成到項(xiàng)目
1、將ZNWC_T_L_H_v1.0.aar拷貝到libs
2抱完、Gradle Dependency
dependencies {
????......
? ? implementation files('libs/ZNWC_T_L_H-release.aar')
????implementation'com.aill:AndroidSerialPort:1.0.8'
}
3蔚舀、權(quán)限
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
二、函數(shù)調(diào)用
1吃粒、簡(jiǎn)單的初始化
import com.yhjy.znwc_t_l_h.Manager;
//初始化
manager = Manager.getInstance();
manager.init(getApplicationContext());
2潦俺、獲取設(shè)備所有串口
????String[] allDevicesPath =manager.getAllDevicesPath();
3、連接串口
? ? 參數(shù)1:串口路徑
? ? 參數(shù)2:波特率
? ??返回: true 已連接 false 未連接
????manager.openSerial("/dev/ttymxc4",9600);?//微超系統(tǒng)
????manager.openSerial2("/dev/ttymxc2");//電子價(jià)簽
4徐勃、開(kāi)始出貨
????參數(shù)1:貨道號(hào)
????參數(shù)2:加熱時(shí)間
????參數(shù)3:出貨回調(diào)
????manager.startShipment(huodao,1,new OpenDoorCall() {
????????@Override
? ????? public void succeed() {//成功取貨到微波爐
????????}
?????????@Override
? ? ????public void hotFinish() {//加熱完成
????????}
????????@Override
? ? ????public void finish() {//出貨完成
????????}
????????@Override
? ? ????public void failure(String msg) {//出貨失敗??msg:失敗信息
????????}
????});
5事示、出貨流程以外的指令通信回調(diào)
????manager.setSerialCall(new CommandCall() {
????????@Override
? ? ????public void Call(HardwareResultsBean hardwareResultsBean) {
? ? ? ? ? ??switch (hardwareResultsBean.mCommands){
? ? ? ? ? ? ? ? case?Commands.OPS://打開(kāi),關(guān)閉維護(hù)
? ??????????????????if (hardwareResultsBean.commonResultBean.result ==1){//1 成功 0 失敗}
? ? ? ? ? ? ? ? ? ??break;
????????????????case?Commands.OPEN_DOOR://開(kāi)門
????????????????????if (hardwareResultsBean.commonResultBean.result ==1){//1 成功 0 失敗}
? ? ? ? ? ? ? ? ? ??break;
????????????????case?Commands.TEMP_GET://當(dāng)前溫度
????????????????????"當(dāng)前溫度:" + Long.parseLong(hardwareResultsBean.commonTempBean.temp.substring(0,2),16)
? ? ? ? ? ? ? ? ? ??break;
????????????????case?Commands.AISLE_TIER://貨道結(jié)構(gòu)取得
????????????????????String aisleTier = hardwareResultsBean.commonAisleTierBean.aisleTier;//貨道數(shù)據(jù)
? ? ? ? ? ? ? ? ? ??break;
????????????????case Commands.GET_HD_COOR://當(dāng)前貨斗坐標(biāo)查詢指令
? ? ? ????????????????? int X = (int) Long.parseLong(hardwareResultsBean.commonResult.result.substring(0,4),16);
????????????????????????int Y = (int) Long.parseLong(hardwareResultsBean.commonResult.result.substring(4,8),16);
????????????????????????break;
????????????????case Commands.SET_HDPZ_COOR://貨道坐標(biāo)設(shè)置指令
? ? ? ? ????????????????if (hardwareResultsBean.commonResult.result.equals("01")){
????????????????????????????ToastUtils.show("啟動(dòng)設(shè)置");
????????????????????????}else{
????????????????????????????ToastUtils.show("未啟動(dòng)設(shè)置");
????????????????????????}
????????????????????????break;
????????????????case Commands.GET_HDPZ_RESULT://貨道坐標(biāo)設(shè)置結(jié)果查詢指令
? ? ? ? ????????????????if (hardwareResultsBean.commonResult.result.equals("01")){
? ? ? ? ? ? ? ? ? ? ? ? ? ?????//設(shè)置成功
????????????????????????}else if(hardwareResultsBean.commonResult.result.equals("02")){
?????????????????????????????//設(shè)置進(jìn)行中
????????????????????????}else if(hardwareResultsBean.commonResult.result.equals("00")){
?????????????????????????????//設(shè)置失敗
????????????????????????}
????????????????????????break;
????????????????case Commands.GET_HDPZ://貨道配置信息查詢指令
????????????????????//每層的類型 01履帶
? ? ? ? ????????????String hd_type = hardwareResultsBean.hdConfigResults.hd_type;
? ? ? ? ? ? ? ? ? ? //每層的貨道數(shù)量
????????????????????String hd_size = hardwareResultsBean.hdConfigResults.hd_size;
? ? ? ? ? ? ? ? ? ? //所有的Y坐標(biāo)
????????????????????String y_coor = hardwareResultsBean.hdConfigResults.y_coor;
? ? ? ? ? ? ? ? ? ? //所有的X坐標(biāo)
????????????????????String x_coor = hardwareResultsBean.hdConfigResults.x_coor;
????????????????????int[] typeArr =new int[hd_type.length()/2];
????????????????????int[] YXsizeArr =new int[hd_size.length()/2];
????????????????????int[] YArr =new int[y_coor.length()/4];
????????????????????int[] XArr =new int[x_coor.length()/4];
????????????????????int index =0;
????????????????????for (int i =0;i < hd_type.length();i+=2){
????????????????????????typeArr[index] = (int) Long.parseLong(hd_type.substring(i, i +2),16);
????????????????????????index++;
????????????????????}
????????????????????index =0;
????????????????????for (int i =0;i < hd_size.length();i+=2){
????????????????????????YXsizeArr[index] = (int) Long.parseLong(hd_size.substring(i, i +2),16);
????????????????????????index++;
????????????????????}
????????????????????index =0;
????????????????????for (int i =0;i < y_coor.length();i+=4){
????????????????????????YArr[index] = (int) Long.parseLong(y_coor.substring(i, i +4),16);
????????????????????????index++;
????????????????????}
????????????????????index =0;
? ? ? ? ? ? ? ? ? ? for (int i =0;i < x_coor.length();i+=4){
????????????????????????XArr[index] = (int) Long.parseLong(x_coor.substring(i, i +4),16);
????????????????????????index++;
????????????????????}
????????????????????etDateBeanList.clear();
????????????????????index =0;
????????????????????for (int i =0;i < typeArr.length;i++){
????????????????????????EtDateBean etDateBean =new EtDateBean();
????????????????????????etDateBean.layer_Type = typeArr[i];
????????????????????????etDateBean.layer_Y = YArr[i];
????????????????????????for (int j =0;j < YXsizeArr[i];j++){
????????????????????????????etDateBean.layer_X_list.add(XArr[index]);
????????????????????????????index++;
????????????????????????}
????????????????????????etDateBeanList.add(etDateBean);
????????????????????}
????????????????????for (int i =0;i < etDateBeanList.size();i++){
????????????????????????et_List.get(i).layer_Type.setText(etDateBeanList.get(i).layer_Type+"");
????????????????????????et_List.get(i).layer_Y.setText(etDateBeanList.get(i).layer_Y+"");
? ? ? ? ? ? ? ? ? ? ? ? for(int j =0;j < etDateBeanList.get(i).layer_X_list.size();j++){
????????????????????????????et_List.get(i).layer_X_list.get(j).setText(etDateBeanList.get(i).layer_X_list.get(j)+"");
????????????????????????}
????????????????????}
????????????????????break;
????????????????case Commands.SET_CALL:
????????????????????if (hardwareResultsBean.commonResultBean.result ==1){
????????????????????????ToastUtils.show("執(zhí)行成功");
????????????????????}else{
????????????????????????ToastUtils.show("執(zhí)行失敗");
????????????????????}
????????????????????break;
????????????????????}
????????????????}
????????});
6僻肖、打開(kāi)維護(hù)
manager.startOps()
7肖爵、關(guān)閉維護(hù)
manager.stopOps()
8、關(guān)閉使能
manager.stopCALL()
9臀脏、貨道結(jié)構(gòu)取得
manager.aisle_tier()
10劝堪、系統(tǒng)狀態(tài)取得
manager.getSystemState()
11、溫度取得
manager.getTemp()
12揉稚、開(kāi)門
manager.openDoor()
13秒啦、整機(jī)傳感器狀態(tài)取得
manager.SENSOR_STATE_GET()
14、故障碼取得
manager.getBreakdown()
15搀玖、當(dāng)前貨斗坐標(biāo)查詢指令
manager.GET_HD_COOR()
16余境、貨道坐標(biāo)設(shè)置結(jié)果查詢指令
manager.GET_HDPZ_RESULT()
17、貨道配置信息查詢指令
manager.GET_HDPZ()
18、貨道坐標(biāo)設(shè)置指令
manager.SET_HDPZ_COOR(int[] typeArr,int[] YArr,int[] YXsizeArr,int[] XArr)
19芳来、加熱
manager.HOT_zs(int size)//參數(shù):加熱時(shí)間:秒
20含末、設(shè)置電子價(jià)簽顯示
manager.Digital_show_CMD(String address, String data)//參數(shù)1:價(jià)簽地址,參數(shù)2:顯示內(nèi)容