From 385b687cc1a0a8f6de2320af6b6e0d654cd658ed Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期五, 18 十一月 2022 11:56:40 +0800
Subject: [PATCH] changes
---
ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java | 348 ++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 269 insertions(+), 79 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java
index 2d005fd..9d3efe8 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java
@@ -3,8 +3,9 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.sandu.common.execption.BusinessException;
+import com.sandu.common.file.config.NovaFileConfig;
import com.sandu.common.util.SpringContextHolder;
-import com.sandu.ximon.admin.newnova.conf.FilePathConfig;
+import com.sandu.ximon.admin.newnova.conf.ProgramPathConfig;
import com.sandu.ximon.admin.newnova.param.NewNovaStatusParam;
import com.sandu.ximon.admin.newnova.param.ProgramPrarm;
import com.sandu.ximon.admin.newnova.vo.*;
@@ -12,7 +13,9 @@
import com.sandu.ximon.dao.bo.NewNovaInfoBo;
import com.sandu.ximon.dao.domain.NewNovaLed;
import com.sun.jna.Native;
+import org.joda.time.DateTime;
+import java.io.File;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
@@ -28,7 +31,7 @@
public class NovaAPIUtil {
- private FilePathConfig filePathConfig;
+ private ProgramPathConfig filePathConfig;
private Map<String, Boolean> loginSn = new HashMap();
@@ -39,7 +42,7 @@
private static String loginInfo = null;
private NovaAPIUtil() {
- filePathConfig = SpringContextHolder.getBean(FilePathConfig.class);
+ filePathConfig = SpringContextHolder.getBean(ProgramPathConfig.class);
String rootDir = filePathConfig.getOutPutPath();
instance = (ViplexCore) Native.loadLibrary(filePathConfig.getStringPath(), ViplexCore.class);
System.setProperty("jna.encoding", "UTF-8");
@@ -51,7 +54,7 @@
System.out.println(instance.nvInit(rootDir, companyInfo));
-// login("MZVA51930N2113017308");//todo 鎵嬪姩鐧诲綍杩樻槸鑷姩鐧诲綍
+// login("MZVA51930N2113017308");
}
public static NovaAPIUtil getInstanceUtil() {
@@ -67,8 +70,14 @@
/**
* 鐧诲綍
+ * loginType
+ * 0锛氱櫥闄嗗埌灞忎綋绠$悊
+ * 1锛氱櫥闄嗗埌绯荤粺璁剧疆锛堟殫闂ㄧ櫥褰曪級
+ * 2锛氱櫥闄嗗埌璇婃柇妯″潡
+ * 3锛歀CT鐧诲綍
+ * 5锛氬叕缃慡DK鐧诲綍
*/
- public StatusVO login(String sn) {
+ public StatusVO login(String sn, Integer loginType) {
StatusVO searchVO = new StatusVO();
System.out.println("ViplexCore Demo nvSearchTerminalAsync(鎼滅储) begin... ");
@@ -87,7 +96,7 @@
}
});
try {
- countDownLatch1.await();
+ countDownLatch1.await(10000, TimeUnit.MILLISECONDS);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
@@ -95,15 +104,19 @@
if (loginSn.get(sn) != null && loginSn.get(sn)) {
return new StatusVO(0);
}
- if (!loginInfo.contains(String.format("\"sn\":\"%s\",", sn))) {
+ if (loginInfo == null) {
+ return new StatusVO(10086);
+ }
+ if (!loginInfo.contains(String.format("\"sn\":\"%s\",", sn)) && loginType == 0) {
//鏈悳绱㈠埌灞忓箷 鐧诲綍涓嶆垚鍔�
+ System.out.println("loginType : " + loginType);
return new StatusVO(10086);
}
StatusVO statusVO = new StatusVO();
System.out.println("ViplexCore Demo nvLoginAsync(鐧诲綍) begin... ");
- String loginParam = String.format("{\"sn\":\"%s\",\"username\":\"admin\",\"rememberPwd\":0,\"password\":\"123456\",\"loginType\":0}", sn);
+ String loginParam = String.format("{\"sn\":\"%s\",\"username\":\"admin\",\"rememberPwd\":0,\"password\":\"123456\",\"loginType\":" + loginType + "}", sn);
CountDownLatch countDownLatch2 = new CountDownLatch(1);
instance.nvLoginAsync(loginParam, new ViplexCore.CallBack() {
@@ -112,8 +125,8 @@
public void dataCallBack(int code, String data) {
statusVO.setStatusCode(code);
statusVO.setStatusData(data);
- System.out.println("\nViplexCore Demo code:" + code);
- System.out.println("\nViplexCore Demo data:" + data);
+ System.out.println("\nViplexCore 鐧诲綍 code:" + code);
+ System.out.println("\nViplexCore 鐧诲綍 data:" + data);
countDownLatch2.countDown();
}
@@ -180,6 +193,7 @@
System.out.println("ViplexCore Demo nvSetPageProgramAsync(缂栬緫鑺傜洰) begin... ");
StatusVO statusVO = new StatusVO();
CountDownLatch countDownLatch = new CountDownLatch(1);
+ System.out.println("editProgram: " + JSON.toJSONString(programInfoVO));
instance.nvSetPageProgramAsync(JSON.toJSONString(programInfoVO), new ViplexCore.CallBack() {
@Override
public void dataCallBack(int code, String data) {
@@ -199,6 +213,42 @@
return statusVO;
}
+
+
+ /**
+ * 鍒朵綔澶氶〉鑺傜洰
+ *
+ * @param pageInfo
+ * @return
+ */
+ public StatusVO editPrograms(int pid, List<Map> pageInfo) {
+ ProgramsInfoVO programInfoVO = new ProgramsInfoVO();
+ programInfoVO.setProgramID(pid);
+ programInfoVO.setSceneItems(pageInfo);
+ System.out.println("ViplexCore Demo nvSetPageProgramAsync(缂栬緫鑺傜洰) begin... ");
+ StatusVO statusVO = new StatusVO();
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ System.out.println("editProgram: " + JSON.toJSONString(programInfoVO));
+ instance.nvSetPageProgramsAsync(JSON.toJSONString(programInfoVO), new ViplexCore.CallBack() {
+ @Override
+ public void dataCallBack(int code, String data) {
+ statusVO.setStatusCode(code);
+ statusVO.setStatusData(data);
+ System.out.println("\nViplexCore 缂栬緫澶氶〉鑺傜洰 code:" + code);
+ System.out.println("\nViplexCore 缂栬緫澶氶〉鑺傜洰 data:" + data);
+ countDownLatch.countDown();
+ }
+
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ return statusVO;
+ }
+
/**
@@ -243,15 +293,16 @@
public List<TrasfromStatusVO> trasfromProgram(ProgramPrarm pageInfo) {
TransfromProgramVO transfromProgramVO = new TransfromProgramVO();
- transfromProgramVO.setProgramName("鑺傜洰01");
+ transfromProgramVO.setProgramName(pageInfo.getProgramMsg().getName());
//璁剧疆鑺傜洰鍐呭
TransfromProgramVO.SendProgramFilePathsDTO sendProgramFilePaths = new TransfromProgramVO.SendProgramFilePathsDTO();
//鑺傜洰
sendProgramFilePaths.setProgramPath(filePathConfig.getOutPutPath() + "/program" + pageInfo.getProgramID());
//鏂囦欢
- Map<String, String> mediasPath = new HashMap();
- mediasPath.put("C:/Users/Administrator/Desktop/novaWin/demo/java/test.png", "test.png");
- sendProgramFilePaths.setMediasPath(mediasPath);
+// Map<String, String> mediasPath = new HashMap();
+// mediasPath.put("C:/Users/Administrator/Desktop/novaWin/demo/java/test.png", "test.png");
+// sendProgramFilePaths.setMediasPath(mediasPath);
+ sendProgramFilePaths.setMediasPath(pageInfo.getFileMap());
transfromProgramVO.setSendProgramFilePaths(sendProgramFilePaths);
//鑺傜洰鏍囪瘑
@@ -277,10 +328,16 @@
}
transfromProgramVO.setSn(sn);
System.out.println(transfromProgramVO);
-
+ StatusVO login = login(sn, 0);
//鎺ㄩ�佺粨鏋�
TrasfromStatusVO trasfromStatusVO = new TrasfromStatusVO();
trasfromStatusVO.setSn(sn);
+ if (login.getStatusCode() != 0) {
+ trasfromStatusVO.setStatusCode(login.getStatusCode());
+ trasfromStatusVO.setStatusData(login.getStatusData());
+ return;
+ }
+ System.out.println("program: " + JSON.toJSONString(transfromProgramVO));
instance.nvStartTransferProgramAsync(JSON.toJSONString(transfromProgramVO), new ViplexCore.CallBack() {
@Override
public void dataCallBack(int code, String data) {
@@ -316,12 +373,17 @@
return svoList;
}
+
+
+
+
/**
* 鏌ヨ鍦ㄧ嚎鐘舵��
*
* @return
*/
- public List<NewNovaLed> getOnlineStatus(List<NewNovaLed> newNovaListBos) {
+ public List<NewNovaLed> getOnlineStatus(List<NewNovaLed> newNovaListBos, boolean onlineStatus) {
+ List<NewNovaLed> online = new ArrayList<>();
//璁剧疆寮�鍏冲睆鐘舵��
newNovaListBos.forEach(led -> {
//鑾峰彇淇℃伅涔嬪墠鍏堢櫥褰�
@@ -329,11 +391,12 @@
new Thread(new Runnable() {
@Override
public void run() {
- StatusVO login = login(led.getSn());
+ StatusVO login = login(led.getSn(), 0);
if (login.getStatusCode() == 0) {
//鐧婚檰鎴愬姛 璁剧疆涓哄湪绾�
led.setIsOnline(1);
led.setOnlineSign(1);
+ online.add(led);
} else {
led.setIsOnline(0);
}
@@ -346,6 +409,9 @@
throw new RuntimeException(e);
}
});
+ if (onlineStatus) {
+ return online;
+ }
return newNovaListBos;
}
@@ -356,7 +422,7 @@
public NewNovaLed getInfo(NewNovaLed led) {
System.out.println("ViplexCore Demo nvGetProductInfoAsync(鑾峰彇灞忓箷淇℃伅) begin... ");
- StatusVO login = login(led.getSn());
+ StatusVO login = login(led.getSn(), 0);
StatusVO result = new StatusVO();
if (login.getStatusCode() == 0) {
@@ -393,7 +459,6 @@
}
NewNovaInfoBo newNovaInfoBo = JSON.parseObject(result.getStatusData(), NewNovaInfoBo.class);
led.setInfo(newNovaInfoBo);
- System.out.println(JSON.toJSONString(led.getInfo()) + "--------");
return led;
}
@@ -437,6 +502,52 @@
return newNovaLsit;
}
+
+
+ /**
+ * 璁剧疆寮�鍏冲睆
+ */
+ public boolean setPowerStatus(NewNovaStatusParam param) {
+
+ System.out.println("ViplexCore Demo nvSetScreenPowerStateAsync(璁剧疆灞忓箷寮�鍏�) begin... ");
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ StatusVO login = login(param.getSn(), 0);
+ String status = "CLOSE";
+ if (param.getPowerStatus() == 1) {
+ status = "OPEN";
+ }
+ if (login.getStatusCode() == 0) {
+ String jsonStr = "{\n" +
+ " \"sn\":\"" + param.getSn() + "\",\n" +
+ " \"taskInfo\":{\n" +
+ " \"state\":\"" + status + "\"\n" +
+ " }\n" +
+ "}";
+ instance.nvSetScreenPowerStateAsync(jsonStr, new ViplexCore.CallBack() {
+ @Override
+ public void dataCallBack(int code, String data) {
+
+ System.out.println("\nViplexCore 璁剧疆灞忓箷寮�鍏� code:" + code);
+ System.out.println("\nViplexCore 璁剧疆灞忓箷寮�鍏� data:" + data);
+ countDownLatch.countDown();
+ if (code == 0) {
+ login.setStatusCode(10086);
+ }
+ }
+ });
+ try {
+ countDownLatch.await();
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ if (login.getStatusCode() == 10086) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
/**
* 鑾峰彇闊抽噺
@@ -486,11 +597,11 @@
System.out.println("ViplexCore Demo nvSetScreenBrightnessAsync(Volume) begin... ");
CountDownLatch countDownLatch = new CountDownLatch(1);
- StatusVO login = login(param.getSn());
+ StatusVO login = login(param.getSn(), 0);
if (login.getStatusCode() == 0) {
String jsonStr = "{\n" +
" \"sn\":\"" + param.getSn() + "\",\n" +
- " \"screenBrightnessInfo\":{\n" +
+ " \"volumeInfo\":{\n" +
" \"ratio\":" + param.getVolume() + "\n" +
" }\n" +
"}";
@@ -568,7 +679,7 @@
System.out.println("ViplexCore Demo nvSetScreenBrightnessAsync(璁剧疆浜害) begin... ");
CountDownLatch countDownLatch = new CountDownLatch(1);
- StatusVO login = login(param.getSn());
+ StatusVO login = login(param.getSn(), 0);
if (login.getStatusCode() == 0) {
String jsonStr = "{\n" +
" \"sn\":\"" + param.getSn() + "\",\n" +
@@ -620,10 +731,15 @@
@Override
public void dataCallBack(int code, String data) {
- System.out.println("\nViplexCore 鑾峰彇浜害 code:" + code);
- System.out.println("\nViplexCore 鑾峰彇浜害 data:" + data);
+ System.out.println("\nViplexCore 鑾峰彇鍚屾 code:" + code);
+ System.out.println("\nViplexCore 鑾峰彇鍚屾 data:" + data);
if (code == 0) {
- newNova.setSync(1);
+ boolean enable = (boolean) JSON.parseObject(data, Map.class).get("enable");
+ if (enable) {
+ newNova.setSync(1);
+ }
+ } else {
+ newNova.setSync(-1);
}
countDownLatch.countDown();
}
@@ -656,11 +772,15 @@
new Thread(new Runnable() {
@Override
public void run() {
- //鎺ㄩ�佺粨鏋�
- instance.nvSetSyncPlayAsync("{\n" +
+ login(newNova.getSn(), 0);
+ String str = "{\n" +
" \"sn\":\"" + newNova.getSn() + "\",\n" +
" \"enable\":" + param.isSync() + "\n" +
- "}", new ViplexCore.CallBack() {
+ "}";
+
+ System.out.println("str : " + str);
+ //鎺ㄩ�佺粨鏋�
+ instance.nvSetSyncPlayAsync(str, new ViplexCore.CallBack() {
@Override
public void dataCallBack(int code, String data) {
@@ -695,52 +815,59 @@
throw new BusinessException("閲嶅惎璁惧涓嶈兘涓虹┖ !");
}
param.getNovaList().forEach(newNova -> {
- CountDownLatch countDownLatch = new CountDownLatch(1);
- new Thread(new Runnable() {
- @Override
- public void run() {
- //鎺ㄩ�佺粨鏋�
- instance.nvSetReBootTaskAsync("{\n" +
- " \"sn\":\"" + newNova.getSn() + "\",\n" +
- " \"taskInfo\":{\n" +
- " \"type\":\"REBOOT\",\n" +
- " \"source\":{\n" +
- " \"type\":0,\n" +
- " \"platform\":4\n" +
- " },\n" +
- " \"executionType\":\"IMMEDIATELY\",\n" +
- " \"reason\":\"Just to reboot\",\n" +
- " \"conditions\":[\n" +
- " {\n" +
- " \"cron\":[\n" +
- " \"0 15 10 ? * *\",\n" +
- " \"0 0 12 * * ?\"\n" +
- " ],\n" +
- " \"enable\":false\n" +
- " }\n" +
- " ]\n" +
- " }\n" +
- "}", new ViplexCore.CallBack() {
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ new Thread(new Runnable() {
@Override
- public void dataCallBack(int code, String data) {
-
- System.out.println("\nViplexCore 閲嶅惎 code:" + code);
- System.out.println("\nViplexCore 閲嶅惎 data:" + data);
- if (code == 0) {
- newNova.setStatus(true);
+ public void run() {
+ StatusVO login = login(newNova.getSn(), 1);
+ if (login.getStatusCode() != 0) {
+ countDownLatch.countDown();
+ return;
}
- countDownLatch.countDown();
- }
- });
+ //鎺ㄩ�佺粨鏋�
+ instance.nvSetReBootTaskAsync("{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\",\n" +
+ " \"taskInfo\":{\n" +
+ " \"type\":\"REBOOT\",\n" +
+ " \"source\":{\n" +
+ " \"type\":0,\n" +
+ " \"platform\":4\n" +
+ " },\n" +
+ " \"executionType\":\"IMMEDIATELY\",\n" +
+ " \"reason\":\"Just to reboot\",\n" +
+ " \"conditions\":[\n" +
+ " {\n" +
+ " \"cron\":[\n" +
+ " \"0 15 10 ? * *\",\n" +
+ " \"0 0 12 * * ?\"\n" +
+ " ],\n" +
+ " \"enable\":false\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ "}", new ViplexCore.CallBack() {
+ @Override
+ public void dataCallBack(int code, String data) {
+ System.out.println("\nViplexCore 閲嶅惎 code:" + code);
+ System.out.println("\nViplexCore 閲嶅惎 data:" + data);
+ if (code == 0) {
+ newNova.setStatus(true);
+ }
+ countDownLatch.countDown();
+ }
+ });
+
+ }
+ }).start();
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ login(newNova.getSn(), 0);
}
- }).start();
- try {
- countDownLatch.await(30000, TimeUnit.MILLISECONDS);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- });
+ );
return param.getNovaList();
}
@@ -761,9 +888,9 @@
new Thread(new Runnable() {
@Override
public void run() {
- //鎺ㄩ�佺粨鏋�
- instance.nvSetNetTimingInfoAsync("{\n" +
- " \"sn\":\"" + newNova.getSn() + "\",\n" +
+// login(newNova.getSn(), 0);
+ String ntpStr="{\n" +
+ " \"sn\":\""+newNova.getSn()+"\",\n" +
" \"TimingInfo\":{\n" +
" \"source\":{\n" +
" \"type\":1,\n" +
@@ -774,19 +901,25 @@
" \"type\":\"NTP_CONFIG\",\n" +
" \"action\":4,\n" +
" \"data\":{\n" +
- " \"enable\":" + param.isNtp() + ",\n" +
- " \"server\":\"http://ntpsss.net\"\n" +
+ " \"enable\":"+param.isNtp()+",\n" +
+ " \"server\":\"http://ntp1.aliyun.com\"\n" +
" }\n" +
" }\n" +
" ]\n" +
" }\n" +
- "}", new ViplexCore.CallBack() {
+ "}";
+ System.out.println("ntpStr"+ ntpStr);
+
+ //鎺ㄩ�佺粨鏋�
+ instance.nvSetNetTimingInfoAsync(ntpStr, new ViplexCore.CallBack() {
@Override
public void dataCallBack(int code, String data) {
- System.out.println("\nViplexCore 閲嶅惎 code:" + code);
- System.out.println("\nViplexCore 閲嶅惎 data:" + data);
- if (code == 0) {
+ System.out.println("\nViplexCore ntp code:" + code);
+ System.out.println("\n鏃堕棿 ntp :" + DateTime.now());
+ System.out.println("\nViplexCore ntp data:" + data);
+ if (code == 0 && data.contains("\"status\":1")) {
+ System.out.println("results: " + data.contains("\"status\":1"));
newNova.setStatus(true);
}
countDownLatch.countDown();
@@ -805,4 +938,61 @@
return param.getNovaList();
}
+
+ /**
+ * 鎴睆
+ */
+ public List<NewNovaStatusParam.NovascreenShotDTO> screenShot(NewNovaStatusParam param) {
+
+ System.out.println("ViplexCore Demo nvDownLoadScreenshotAsync(鎴睆) begin... ");
+ NovaFileConfig config = SpringContextHolder.getBean(NovaFileConfig.class);
+ String shotPath = config.getScreenShotPath();
+ param.getScreenShotList().forEach(newNova -> {
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ new Thread(new Runnable() {
+
+ @Override
+ public void run() {
+ login(newNova.getSn(), 0);
+ String pictureName = newNova.getSn() + ".png";
+ String str = "{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\",\n" +
+ " \"width\":400,\n" +
+ " \"height\":400,\n" +
+ " \"downLoadDirectoryPath\":\"" + shotPath.replace(File.separator, "/") + "\",\n" +
+ " \"pictureName\":\"" + pictureName + "\",\n" +
+ " \"pictureType\":0\n" +
+ "}";
+ System.out.println("str" + str);
+ //鎺ㄩ�佺粨鏋�
+ instance.nvDownLoadScreenshotAsync(str, new ViplexCore.CallBack() {
+ @Override
+ public void dataCallBack(int code, String data) {
+
+ System.out.println("\nViplexCore 鎴睆 code:" + code);
+ System.out.println("\nViplexCore 鎴睆 data:" + data);
+ newNova.setCode(code);
+ if (code == 0) {
+ String img = config.getScreenShotPath() + pictureName;
+ newNova.setScreenShot(config.getFileUrl() + img.replace(config.getUploadRootPath(), "").replace(File.separator, "/"));
+ } else {
+ newNova.setScreenShot(data);
+ }
+ countDownLatch.countDown();
+ }
+ });
+
+ }
+ }).start();
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ });
+
+ return param.getScreenShotList();
+ }
+
+
}
--
Gitblit v1.9.3