From ec63fb17c5ba3e5b2a5a4106c25b4e249a2f980f Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期二, 22 十一月 2022 18:44:51 +0800
Subject: [PATCH] changes
---
ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java | 1166 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 1,062 insertions(+), 104 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 6b71835..356ccc3 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
@@ -1,163 +1,1121 @@
package com.sandu.ximon.admin.newnova.utils;
-import com.sandu.ximon.admin.newnova.conf.FilePathConfig;
-import com.sandu.ximon.admin.newnova.vo.StatusVO;
-import com.sandu.ximon.admin.utils.CountDownLatchUtil;
+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.ProgramPathConfig;
+import com.sandu.ximon.admin.newnova.param.NewNovaStatusParam;
+import com.sandu.ximon.admin.newnova.param.ProgramPrarm;
+import com.sandu.ximon.admin.newnova.vo.*;
+import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.dao.bo.NewNovaInfoBo;
+import com.sandu.ximon.dao.domain.NewNovaLed;
import com.sun.jna.Native;
-import lombok.AllArgsConstructor;
-import org.springframework.stereotype.Component;
+import org.joda.time.DateTime;
-import java.util.LinkedHashMap;
+import java.io.File;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
/**
* @author LiuHaoNan
* @date 2022/11/9
*/
-@Component
-@AllArgsConstructor
public class NovaAPIUtil {
-// @Value("${new-nova.string-path}")
-// public String getStringPath() {
-// return stringPath;
-// }
+ private ProgramPathConfig filePathConfig;
- private final FilePathConfig filePathConfig;
- private final CountDownLatchUtil countDownLatchUtil;
- private static Boolean g_bAPIReturn = false;
- private static int g_code = 0;
- private static String g_sn = "BZSA79353N1310006847"; //BZSA07313J0350000997
+ private Map<String, Boolean> loginSn = new HashMap();
- private static Map loginInfo = new LinkedHashMap();
+ private ViplexCore instance = null;
+ private static NovaAPIUtil instanceUtil = null;
+ private static String loginInfo = null;
-// private static ViplexCore.CallBack callBack = new ViplexCore.CallBack() {
-//
-// @Override
-// public void dataCallBack(int code, String data) {
-// // TODO Auto-generated method stub
-// g_code = code;
-// String strCode = "\nViplexCore Demo code:" + code;
-// String strData = "\nViplexCore Demo data:" + data;
-// System.out.println(strCode);
-// System.out.println(strData);
-// g_bAPIReturn = true;
-// }
-//
-// };
-
-
- static void waitAPIReturn() throws InterruptedException {
- while (!g_bAPIReturn) {
- Thread.sleep(1000);
- }
- g_bAPIReturn = false;
- }
-
-
- /**
- * 鐧诲綍
- */
- public StatusVO login(String sn) {
-
- ViplexCore instance = (ViplexCore) Native.loadLibrary(filePathConfig.getStringPath(), ViplexCore.class);
- String rootDir = System.getProperty("user.dir") + "/temp";
+ private NovaAPIUtil() {
+ filePathConfig = SpringContextHolder.getBean(ProgramPathConfig.class);
+ String rootDir = filePathConfig.getOutPutPath();
+ instance = (ViplexCore) Native.loadLibrary(filePathConfig.getStringPath(), ViplexCore.class);
+ System.setProperty("jna.encoding", "UTF-8");
+ System.out.println("淇濆瓨璺緞:" + rootDir);
+ rootDir = rootDir.replaceAll("\\\\", "/");
String companyInfo = "{\"company\":\"NovaStar\",\"phone\":\"029-68216000\",\"email\":\"hr@novastar.tech\"}";
instance.nvSetDevLang("Java");
System.out.println("nvInit(sdk 鍒濆鍖�):");
System.out.println(instance.nvInit(rootDir, companyInfo));
- ViplexCore.CallBack callBack = new ViplexCore.CallBack() {
+
+
+// login("MZVA51930N2113017308");
+ }
+
+ public static NovaAPIUtil getInstanceUtil() {
+ if (instanceUtil == null) {
+ synchronized (NovaAPIUtil.class) {
+ if (instanceUtil == null) {
+ instanceUtil = new NovaAPIUtil();
+ }
+ }
+ }
+ return instanceUtil;
+ }
+
+ /**
+ * 鐧诲綍
+ * loginType
+ * 0锛氱櫥闄嗗埌灞忎綋绠$悊
+ * 1锛氱櫥闄嗗埌绯荤粺璁剧疆锛堟殫闂ㄧ櫥褰曪級
+ * 2锛氱櫥闄嗗埌璇婃柇妯″潡
+ * 3锛歀CT鐧诲綍
+ * 5锛氬叕缃慡DK鐧诲綍
+ */
+ public StatusVO login(String sn, Integer loginType) {
+
+ StatusVO searchVO = new StatusVO();
+ System.out.println("ViplexCore Demo nvSearchTerminalAsync(鎼滅储) begin... ");
+
+ CountDownLatch countDownLatch1 = new CountDownLatch(1);
+ instance.nvSearchTerminalAsync(new ViplexCore.CallBack() {
@Override
public void dataCallBack(int code, String data) {
- // TODO Auto-generated method stub
- g_code = code;
- String strCode = "\nViplexCore Demo code:" + code;
- String strData = "\nViplexCore Demo data:" + data;
- System.out.println(strCode);
- System.out.println(strData);
- g_bAPIReturn = true;
+ searchVO.setStatusCode(code);
+ searchVO.setStatusData(data);
+ loginInfo = data;
+ System.out.println("\nViplexCore 鎼滅储 code:" + code);
+ System.out.println("\nViplexCore 鎼滅储 data:" + data);
+ countDownLatch1.countDown();
}
-
- };
-
-
- System.out.println("ViplexCore Demo nvSearchTerminalAsync(鎼滅储) begin... ");
- StatusVO statusVO = new StatusVO();
- instance.nvSearchTerminalAsync(callBack);
-// countDownLatchUtil.push();
-// instance.nvSearchTerminalAsync(new ViplexCore.CallBack() {
-//
-// @Override
-// public void dataCallBack(int code, String data) {
-// // TODO Auto-generated method stub
-// g_code = code;
-// statusVO.setStatusCode(code);
-// statusVO.setStatusData(data);
-// System.out.println("\nViplexCore Demo code:" + code);
-// System.out.println("\nViplexCore Demo data:" + data);
-// g_bAPIReturn = true;
-// }
-//
-// });
-
-
-
+ });
try {
- Thread.sleep(3000);
+ countDownLatch1.await(10000, TimeUnit.MILLISECONDS);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
- g_bAPIReturn = false;
+ if (loginSn.get(sn) != null && loginSn.get(sn) && loginType == 0) {
+ return new StatusVO(0);
+ }
+ 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\":\"" + sn + "\",\"ip\":\"\",\"username\":\"admin\",\"rememberPwd\":0,\"password\":\"1234567890\",\"loginType\":0}"
- , g_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() {
@Override
public void dataCallBack(int code, String data) {
- // TODO Auto-generated method stub
- g_code = code;
statusVO.setStatusCode(code);
statusVO.setStatusData(data);
- System.out.println("\nViplexCore Demo code:" + code);
- System.out.println("\nViplexCore Demo data:" + data);
- g_bAPIReturn = true;
+ System.out.println("\nViplexCore 鐧诲綍 code:" + code);
+ System.out.println("\nViplexCore 鐧诲綍 data:" + data);
+ countDownLatch2.countDown();
}
});
try {
- waitAPIReturn();
+ countDownLatch2.await();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
- if (g_code != 0) {
- System.out.println("ViplexCore Demo nvLoginAsync(鐧诲綍) 澶辫触锛�");
- System.out.println("閿欒鐮�:" + g_code);
- return statusVO;
+ if (statusVO.getStatusCode() != 0) {
+ System.out.println("ViplexCore " + sn + " nvLoginAsync(鐧诲綍) 澶辫触锛�");
+ System.out.println("閿欒鐮�:" + statusVO.getStatusCode());
+ } else {
+ //鐧婚檰鎴愬姛涔嬪悗瀛樺叆map淇濆瓨鐧诲綍淇℃伅
+ loginSn.put(sn, true);
}
- //鐧婚檰鎴愬姛涔嬪悗瀛樺叆map淇濆瓨鐧诲綍淇℃伅
- loginInfo.put(sn, instance);
return statusVO;
}
/**
* 鍒涘缓鑺傜洰
*/
- public int createPro(String sn) throws InterruptedException {
- ViplexCore instance = (ViplexCore) loginInfo.get(sn);
-
+ public StatusVO createPro(ProWHVO proWHVO) throws InterruptedException {
+ String createProgram = JSON.toJSONString(proWHVO);
System.out.println("ViplexCore Demo nvCreateProgramAsync(鍒涘缓鑺傜洰) begin... ");
-// instance.nvCreateProgramAsync(createProgram, callBack);
- waitAPIReturn();
+ StatusVO statusVO = new StatusVO();
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ try {
+ instance.nvCreateProgramAsync(createProgram, new ViplexCore.CallBack() {
- return 1;
+ @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);
+ if (code == 0) {
+ JSONObject result = JSON.parseObject(data);
+ //鍒涘缓鑺傜洰鎴愬姛 璁剧疆鐘舵�佷俊鎭负鑺傜洰id
+ statusVO.setStatusData(String.valueOf(result.getJSONObject("onSuccess").getIntValue("programID")));
+ }
+ countDownLatch.countDown();
+ }
+
+ });
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (Exception e) {
+ }
+ return statusVO;
+ }
+
+ /**
+ * 缂栬緫鑺傜洰
+ *
+ * @param pid
+ * @param pageInfo
+ * @return
+ */
+
+ public StatusVO editProgram(int pid, Map pageInfo) {
+ ProgramInfoVO programInfoVO = new ProgramInfoVO();
+ programInfoVO.setProgramID(pid);
+ programInfoVO.setPageInfo(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.nvSetPageProgramAsync(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;
}
+ /**
+ * 鍒朵綔澶氶〉鑺傜洰
+ *
+ * @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;
+ }
+
+
+ /**
+ * 鐢熸垚鑺傜洰
+ *
+ * @param pid
+ * @return
+ */
+ public StatusVO genrateProgram(int pid) {
+ ProGenrateVO proGenrateVO = new ProGenrateVO();
+ proGenrateVO.setProgramID(pid);
+ proGenrateVO.setOutPutPath(filePathConfig.getOutPutPath());
+ System.out.println("ViplexCore Demo nvMakeProgramAsync(鐢熸垚鑺傜洰) begin... ");
+ StatusVO statusVO = new StatusVO();
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ instance.nvMakeProgramAsync(JSON.toJSONString(proGenrateVO), 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;
+ }
+
+
+ /**
+ * 鍙戝竷鑺傜洰
+ *
+ * @param
+ * @return
+ */
+ public List<TrasfromStatusVO> trasfromProgram(ProgramPrarm pageInfo) {
+
+ TransfromProgramVO transfromProgramVO = new TransfromProgramVO();
+ transfromProgramVO.setProgramName(pageInfo.getProgramMsg().getName());
+ //璁剧疆鑺傜洰鍐呭
+ TransfromProgramVO.SendProgramFilePathsDTO sendProgramFilePaths = new TransfromProgramVO.SendProgramFilePathsDTO();
+ //鑺傜洰
+ sendProgramFilePaths.setProgramPath(filePathConfig.getOutPutPath() + "/program" + pageInfo.getProgramID());
+ //鏂囦欢
+ sendProgramFilePaths.setMediasPath(pageInfo.getFileMap());
+
+ transfromProgramVO.setSendProgramFilePaths(sendProgramFilePaths);
+ //鑺傜洰鏍囪瘑
+ transfromProgramVO.setDeviceIdentifier(SecurityUtils.getUserId().toString());
+ transfromProgramVO.setInsertPlay(pageInfo.getInsertPlay());
+ transfromProgramVO.setStartPlayAfterTransferred(pageInfo.getStartPlayAfterTransferred());
+
+ List<TrasfromStatusVO> svoList = new ArrayList<>();
+ System.out.println("ViplexCore Demo nvStartTransferProgramAsync(鍙戦�佽妭鐩�) begin... ");
+// System.out.println(trasfromProgram);
+ CountDownLatch countDownLatch = new CountDownLatch(pageInfo.getSnList().size());
+ pageInfo.getSnList().forEach(sn -> {
+
+ if (transfromProgramVO == null) {
+ return;
+ }
+ 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());
+ countDownLatch.countDown();
+ return;
+ }
+ System.out.println("program: " + JSON.toJSONString(transfromProgramVO));
+ instance.nvStartTransferProgramAsync(JSON.toJSONString(transfromProgramVO), new ViplexCore.CallBack() {
+ @Override
+ public void dataCallBack(int code, String data) {
+
+ trasfromStatusVO.setStatusCode(code);
+ trasfromStatusVO.setStatusData(data);
+ System.out.println("\nViplexCore 鍙戦�佽妭鐩� code:" + code);
+ System.out.println("\nViplexCore 鍙戦�佽妭鐩� data:" + data);
+ //鑺傜洰鍙戝竷鎴愬姛
+ if (trasfromStatusVO.getStatusCode() == 0) {
+ countDownLatch.countDown();
+ svoList.add(trasfromStatusVO);
+ } else if (trasfromStatusVO.getStatusCode() != 65362) {
+ //涓婁紶澶辫触
+ System.out.println("涓婁紶澶辫触");
+ svoList.add(trasfromStatusVO);
+ countDownLatch.countDown();
+ }
+ }
+ });
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ return svoList;
+ }
+
+
+ /**
+ * 鏌ヨ鍦ㄧ嚎鐘舵��
+ *
+ * @return
+ */
+ public List<NewNovaLed> getOnlineStatus(List<NewNovaLed> newNovaListBos, boolean onlineStatus) {
+ List<NewNovaLed> online = new ArrayList<>();
+ CountDownLatch countDownLatch = new CountDownLatch(newNovaListBos.size());
+ //璁剧疆寮�鍏冲睆鐘舵��
+ newNovaListBos.forEach(led -> {
+ //鑾峰彇淇℃伅涔嬪墠鍏堢櫥褰�
+ StatusVO login = login(led.getSn(), 0);
+ if (login.getStatusCode() == 0) {
+ //鐧婚檰鎴愬姛 璁剧疆涓哄湪绾�
+ led.setIsOnline(1);
+ led.setOnlineSign(1);
+ online.add(led);
+ } else {
+ led.setIsOnline(0);
+ }
+ countDownLatch.countDown();
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ if (onlineStatus) {
+ return online;
+ }
+ return newNovaListBos;
+ }
+
+
+ /**
+ * 鏌ヨ灞忓箷鍩烘湰淇℃伅
+ */
+
+ public NewNovaLed getInfo(NewNovaLed led) {
+ System.out.println("ViplexCore Demo nvGetProductInfoAsync(鑾峰彇灞忓箷淇℃伅) begin... ");
+ StatusVO login = login(led.getSn(), 0);
+
+ StatusVO result = new StatusVO();
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ if (login.getStatusCode() == 0) {
+ //鎺ㄩ�佺粨鏋�
+ TrasfromStatusVO trasfromStatusVO = new TrasfromStatusVO();
+ trasfromStatusVO.setSn(led.getSn());
+ instance.nvGetProductInfoAsync("{\n" +
+ " \"sn\":\"" + led.getSn() + "\"\n" +
+ "}", new ViplexCore.CallBack() {
+ @Override
+ public void dataCallBack(int code, String data) {
+ result.setStatusCode(code);
+ result.setStatusData(data);
+ System.out.println("\nViplexCore 鑾峰彇灞忓箷淇℃伅 code:" + code);
+ System.out.println("\nViplexCore 鑾峰彇灞忓箷淇℃伅 data:" + data);
+ countDownLatch.countDown();
+ }
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MICROSECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ } /*else {
+ throw new BusinessException("璁惧鐧诲綍澶辫触,缁忔鏌ヨ澶囨槸鍚﹁繛鎺�");
+ }*/
+ if (result.getStatusCode() == 0) {
+ NewNovaInfoBo newNovaInfoBo = JSON.parseObject(result.getStatusData(), NewNovaInfoBo.class);
+ led.setInfo(newNovaInfoBo);
+ } /*else {
+ throw new BusinessException("璁惧鐧诲綍澶辫触,缁忔鏌ヨ澶囨槸鍚﹁繛鎺�");
+ }*/
+ return led;
+ }
+
+
+ /**
+ * 鑾峰彇寮�鍏冲睆鐘舵��
+ */
+ public List<NewNovaLed> getScreenPowerState(List<NewNovaLed> newNovaLsit) {
+
+ System.out.println("ViplexCore Demo nvGetScreenPowerStateAsync(鑾峰彇灞忓箷寮�鍏�) begin... ");
+
+ CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
+ newNovaLsit.forEach(newNova -> {
+ StatusVO login = login(newNova.getSn(), 0);
+ if (login.getStatusCode() != 0) {
+ countDownLatch.countDown();
+ return;
+ }
+ //鎺ㄩ�佺粨鏋�
+ instance.nvGetScreenPowerStateAsync("{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\"\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 && data.contains("OPEN")) {
+ newNova.setScreenPower(1);
+ }
+ countDownLatch.countDown();
+ }
+ });
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ 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;
+ }
+ }
+
+
+ /**
+ * 鑾峰彇闊抽噺
+ */
+ public List<NewNovaLed> getVolumeState(List<NewNovaLed> newNovaLsit) {
+
+ System.out.println("ViplexCore Demo nvGetVolumeAsync(鑾峰彇闊抽噺) begin... ");
+
+ CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
+ newNovaLsit.forEach(newNova -> {
+ StatusVO login = login(newNova.getSn(), 0);
+ if (login.getStatusCode() != 0) {
+ countDownLatch.countDown();
+ return;
+ }
+ //鎺ㄩ�佺粨鏋�
+ instance.nvGetVolumeAsync("{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\"\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.setVolume((BigDecimal) JSON.parseObject(data, Map.class).get("ratio"));
+ }
+ countDownLatch.countDown();
+ }
+ });
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ return newNovaLsit;
+ }
+
+
+ /**
+ * 璁剧疆闊抽噺
+ */
+ public boolean setVolume(NewNovaStatusParam param) {
+
+ System.out.println("ViplexCore Demo nvSetScreenBrightnessAsync(Volume) begin... ");
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ StatusVO login = login(param.getSn(), 0);
+ if (login.getStatusCode() == 0) {
+ String jsonStr = "{\n" +
+ " \"sn\":\"" + param.getSn() + "\",\n" +
+ " \"volumeInfo\":{\n" +
+ " \"ratio\":" + param.getVolume() + "\n" +
+ " }\n" +
+ "}";
+ instance.nvSetVolumeAsync(jsonStr, new ViplexCore.CallBack() {
+ @Override
+ public void dataCallBack(int code, String data) {
+
+ System.out.println("\nViplexCore Volume code:" + code);
+ System.out.println("\nViplexCore Volume 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;
+ }
+ }
+
+
+ /**
+ * 鑾峰彇浜害
+ */
+ public List<NewNovaLed> getScreenBrightness(List<NewNovaLed> newNovaLsit) {
+
+ System.out.println("ViplexCore Demo nvGetScreenBrightnessAsync(鑾峰彇浜害) begin... ");
+
+
+ CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
+ newNovaLsit.forEach(newNova -> {
+ StatusVO login = login(newNova.getSn(), 0);
+ if (login.getStatusCode() != 0) {
+ countDownLatch.countDown();
+ return;
+ }
+ //鎺ㄩ�佺粨鏋�
+ instance.nvGetScreenBrightnessAsync("{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\"\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.setBrightness((BigDecimal) JSON.parseObject(data, Map.class).get("ratio"));
+ }
+ countDownLatch.countDown();
+ }
+ });
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ return newNovaLsit;
+ }
+
+ /**
+ * 璁剧疆浜害
+ */
+ public boolean setScreenBrightness(NewNovaStatusParam param) {
+
+ System.out.println("ViplexCore Demo nvSetScreenBrightnessAsync(璁剧疆浜害) begin... ");
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ StatusVO login = login(param.getSn(), 0);
+ if (login.getStatusCode() == 0) {
+ String jsonStr = "{\n" +
+ " \"sn\":\"" + param.getSn() + "\",\n" +
+ " \"screenBrightnessInfo\":{\n" +
+ " \"ratio\":" + param.getBrightness() + "\n" +
+ " }\n" +
+ "}";
+ instance.nvSetScreenBrightnessAsync(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;
+ }
+ }
+
+ /**
+ * 鑾峰彇鍚屾
+ */
+ public List<NewNovaLed> getSync(List<NewNovaLed> newNovaLsit) {
+
+ System.out.println("ViplexCore Demo nvGetSyncPlayAsync(鑾峰彇鍚屾) begin... ");
+
+ CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
+ newNovaLsit.forEach(newNova -> {
+ StatusVO login = login(newNova.getSn(), 0);
+ if (login.getStatusCode() != 0) {
+ countDownLatch.countDown();
+ return;
+ }
+ //鎺ㄩ�佺粨鏋�
+ instance.nvGetSyncPlayAsync("{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\"\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) {
+ boolean enable = (boolean) JSON.parseObject(data, Map.class).get("enable");
+ if (enable) {
+ newNova.setSync(1);
+ }
+ } else {
+ newNova.setSync(-1);
+ }
+ countDownLatch.countDown();
+ }
+ });
+
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ return newNovaLsit;
+ }
+
+ /**
+ * 璁剧疆鍚屾
+ */
+ public List<NewNovaStatusParam.NovaDTO> setSync(NewNovaStatusParam param) {
+
+ System.out.println("ViplexCore Demo nvSetSyncPlayAsync(璁剧疆鍚屾) begin... ");
+
+ if (param.getNovaList() == null || param.getNovaList().size() == 0) {
+ throw new BusinessException("鍚屾璁惧涓嶈兘涓虹┖ !");
+ }
+ CountDownLatch countDownLatch = new CountDownLatch(param.getNovaList().size());
+ param.getNovaList().forEach(newNova -> {
+
+ StatusVO login = login(newNova.getSn(), 0);
+ if (login.getStatusCode() != 0) {
+ countDownLatch.countDown();
+ return;
+ }
+ String str = "{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\",\n" +
+ " \"enable\":" + param.isSync() + "\n" +
+ "}";
+
+ System.out.println("str : " + str);
+ //鎺ㄩ�佺粨鏋�
+ instance.nvSetSyncPlayAsync(str, 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();
+ }
+ });
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ return param.getNovaList();
+ }
+
+ /**
+ * 閲嶅惎
+ */
+ public List<NewNovaStatusParam.NovaDTO> reboot(NewNovaStatusParam param) {
+
+ System.out.println("ViplexCore Demo nvSetReBootTaskAsync(閲嶅惎) begin... ");
+ if (param.getNovaList() == null || param.getNovaList().size() == 0) {
+ throw new BusinessException("閲嶅惎璁惧涓嶈兘涓虹┖ !");
+ }
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ param.getNovaList().forEach(newNova -> {
+ logout(newNova.getSn(), 0);
+ StatusVO login = login(newNova.getSn(), 1);
+ if (login.getStatusCode() != 0) {
+ countDownLatch.countDown();
+ return;
+ }
+
+ String rebootStr = "{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\",\n" +
+ " \"taskInfo\":{\n" +
+ " \"type\":\"REBOOT\",\n" +
+ " \"source\":{\n" +
+ " \"type\":0,\n" +
+ " \"platform\":1\n" +
+ " },\n" +
+ " \"executionType\":\"IMMEDIATELY\",\n" +
+ " \"reason\":\"Just to test\",\n" +
+ " \"conditions\":[\n" +
+ " {\n" +
+ " \"cron\":[\n" +
+ " \"0 15 10 ? * *\",\n" +
+ " \"0 0 12 * * ?\"\n" +
+ " ],\n" +
+ " \"enable\":false\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ "}";
+ System.out.println("rebootStr : " + rebootStr);
+ //鎺ㄩ�佺粨鏋�
+ instance.nvSetReBootTaskAsync(rebootStr, 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);
+ loginSn.remove(newNova.getSn());
+ }
+ countDownLatch.countDown();
+ }
+ });
+// StatusVO logout = logout(newNova.getSn(), 1);
+// if (logout.getStatusCode() == 0) {
+// login(newNova.getSn(), 0);
+// }
+ }
+ );
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ return param.getNovaList();
+ }
+
+ /**
+ * ntp瀵规椂
+ */
+ public List<NewNovaStatusParam.NovaDTO> ntp(NewNovaStatusParam param) {
+
+ System.out.println("ViplexCore Demo nvSetNetTimingInfoAsync(ntp) begin... ");
+
+ if (param.getNovaList() == null || param.getNovaList().size() == 0) {
+ throw new BusinessException("瀵规椂璁惧涓嶈兘涓虹┖ !");
+ }
+ CountDownLatch countDownLatch = new CountDownLatch(param.getNovaList().size());
+ param.getNovaList().forEach(newNova -> {
+ StatusVO login = login(newNova.getSn(), 0);
+ if (login.getStatusCode() != 0) {
+ countDownLatch.countDown();
+ return;
+ }
+ String ntpStr = "{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\",\n" +
+ " \"TimingInfo\":{\n" +
+ " \"source\":{\n" +
+ " \"type\":1,\n" +
+ " \"platform\":1\n" +
+ " },\n" +
+ " \"taskArray\":[\n" +
+ " {\n" +
+ " \"type\":\"NTP_CONFIG\",\n" +
+ " \"action\":4,\n" +
+ " \"data\":{\n" +
+ " \"enable\":" + param.isNtp() + ",\n" +
+ " \"server\":\"http://ntp1.aliyun.com\"\n" +
+ " }\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ "}";
+ System.out.println("ntpStr" + ntpStr);
+
+ //鎺ㄩ�佺粨鏋�
+ instance.nvSetNetTimingInfoAsync(ntpStr, new ViplexCore.CallBack() {
+ @Override
+ public void dataCallBack(int code, String data) {
+
+ 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();
+ }
+ });
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ 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();
+ CountDownLatch countDownLatch = new CountDownLatch(param.getScreenShotList().size());
+ param.getScreenShotList().forEach(newNova -> {
+
+ StatusVO login = login(newNova.getSn(), 0);
+ if (login.getStatusCode() != 0) {
+ countDownLatch.countDown();
+ return;
+ }
+ 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();
+ }
+ });
+
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ return param.getScreenShotList();
+ }
+
+
+ /**
+ * 鑾峰彇灞忓箷灏哄
+ */
+ public List<NewNovaLed> getDisplayInfoAsync(List<NewNovaLed> newNovaLsit) {
+
+ System.out.println("ViplexCore Demo nvGetDisplayInfoAsync(鑾峰彇鍒嗚鲸鐜�) begin... ");
+//PlayerInfoVO
+ CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
+ newNovaLsit.forEach(newNova -> {
+ StatusVO login = login(newNova.getSn(), 0);
+ if (login.getStatusCode() != 0) {
+ countDownLatch.countDown();
+ return;
+ }
+ //鎺ㄩ�佺粨鏋�
+ instance.nvGetDisplayInfoAsync("{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\"\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) {
+ PlayerInfoVO playerInfoVO = JSON.parseObject(data, PlayerInfoVO.class);
+ PlayerInfoVO.TaskArrayDTO.DataDTO dataDTO = playerInfoVO.getTaskArray().get(0).getData();
+ newNova.setWidth(dataDTO.getWidth());
+ newNova.setHeight(dataDTO.getHeight());
+ newNova.setRotation(dataDTO.getRotation());
+ }
+ countDownLatch.countDown();
+ }
+ });
+
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ return newNovaLsit;
+
+ }
+
+
+ /**
+ * 鑾峰彇瑙嗛婧�
+ */
+ public List<NewNovaLed> getVideoInfoAsync(List<NewNovaLed> newNovaLsit) {
+
+ System.out.println("ViplexCore Demo nvGetVideoControlInfoAsync(鑾峰彇瑙嗛婧�) begin... ");
+
+ CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
+ newNovaLsit.forEach(newNova -> {
+ StatusVO login = login(newNova.getSn(), 0);
+ if (login.getStatusCode() != 0) {
+ countDownLatch.countDown();
+ return;
+ }
+ //鎺ㄩ�佺粨鏋�
+ instance.nvGetVideoControlInfoAsync("{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\"\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) {
+ VideoInfoVO videoInfoVO = JSON.parseObject(data, VideoInfoVO.class);
+ newNova.setVideoControlInfo(videoInfoVO.getVideoSource());
+ }
+ countDownLatch.countDown();
+ }
+ });
+
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ return newNovaLsit;
+ }
+
+ /**
+ * 鑾峰彇鏃跺尯
+ */
+ public List<NewNovaLed> getTimezone(List<NewNovaLed> newNovaLsit) {
+
+ System.out.println("ViplexCore Demo nvGetCurrentTimeAndZoneAsync(鑾峰彇鏃跺尯) begin... ");
+
+ CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
+ newNovaLsit.forEach(newNova -> {
+ StatusVO login = login(newNova.getSn(), 0);
+ if (login.getStatusCode() != 0) {
+ countDownLatch.countDown();
+ return;
+ }
+ //鎺ㄩ�佺粨鏋�
+ instance.nvGetCurrentTimeAndZoneAsync("{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\"\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) {
+ Map map = JSON.parseObject(data, Map.class);
+ newNova.setTimeZone(map.get("timeZone").toString());
+ newNova.setCurrentTime(map.get("currentTime").toString());
+ }
+ countDownLatch.countDown();
+ }
+ });
+
+ });
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ return newNovaLsit;
+ }
+
+
+ /**
+ * 閫�鍑虹櫥褰�
+ */
+ public StatusVO logout(String sn, Integer type) {
+
+ System.out.println("ViplexCore Demo nvLogoutAsync(閫�鍑虹櫥褰�) begin... ");
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+
+ StatusVO logout = new StatusVO();
+ //鎺ㄩ�佺粨鏋�
+ instance.nvLogoutAsync("{\n" +
+ " \"sn\":\"" + sn + "\",\n" +
+ " \"loginType\":" + type + "\n" +
+ "}", new ViplexCore.CallBack() {
+ @Override
+ public void dataCallBack(int code, String data) {
+
+ System.out.println("\nViplexCore 閫�鍑虹櫥褰� code:" + code);
+ System.out.println("\nViplexCore 閫�鍑虹櫥褰� data:" + data);
+ logout.setStatusCode(code);
+ logout.setStatusData(data);
+ countDownLatch.countDown();
+ }
+ });
+
+ try {
+ countDownLatch.await(10000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ return logout;
+ }
}
--
Gitblit v1.9.3