From 5cfaa9b36929545906d57c48c0f07a7c6f23d157 Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期一, 14 十一月 2022 14:50:22 +0800
Subject: [PATCH] changes
---
ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java | 841 +++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 743 insertions(+), 98 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..2d005fd 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,808 @@
package com.sandu.ximon.admin.newnova.utils;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.sandu.common.execption.BusinessException;
+import com.sandu.common.util.SpringContextHolder;
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.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 java.util.LinkedHashMap;
+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 FilePathConfig 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 NovaAPIUtil() {
+ filePathConfig = SpringContextHolder.getBean(FilePathConfig.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));
-
-// 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;
+// login("MZVA51930N2113017308");//todo 鎵嬪姩鐧诲綍杩樻槸鑷姩鐧诲綍
}
+ public static NovaAPIUtil getInstanceUtil() {
+ if (instanceUtil == null) {
+ synchronized (NovaAPIUtil.class) {
+ if (instanceUtil == null) {
+ instanceUtil = new NovaAPIUtil();
+ }
+ }
+ }
+ return instanceUtil;
+ }
/**
* 鐧诲綍
*/
public StatusVO login(String sn) {
- ViplexCore instance = (ViplexCore) Native.loadLibrary(filePathConfig.getStringPath(), ViplexCore.class);
- String rootDir = System.getProperty("user.dir") + "/temp";
- 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() {
+ 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();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
- g_bAPIReturn = false;
+ if (loginSn.get(sn) != null && loginSn.get(sn)) {
+ return new StatusVO(0);
+ }
+ if (!loginInfo.contains(String.format("\"sn\":\"%s\",", sn))) {
+ //鏈悳绱㈠埌灞忓箷 鐧诲綍涓嶆垚鍔�
+ 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\":0}", 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;
+ 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);
+ 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 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("鑺傜洰01");
+ //璁剧疆鑺傜洰鍐呭
+ 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);
+
+ 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);
+// instance.nvStartTransferProgramAsync(trasfromProgram, callBack);
+// String trasfromProgram = String.format(
+// "{\"sn\": \"%s\",\"iconPath\": \"\",\"iconName\": \"\",\"sendProgramFilePaths\": {\"programPath\": \"%s/program13\",\"mediasPath\": {\"C:/Users/Administrator/Desktop/novaWin/demo/java/test.png\": \"test.png\"}},\"programName\": \"jiemu1\",\"deviceIdentifier\": \"Demo\",\"startPlayAfterTransferred\": true,\"insertPlay\": true}",
+// g_sn,
+// rootDir);
+ pageInfo.getSnList().forEach(sn -> {
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ if (transfromProgramVO == null) {
+ return;
+ }
+ transfromProgramVO.setSn(sn);
+ System.out.println(transfromProgramVO);
+
+ //鎺ㄩ�佺粨鏋�
+ TrasfromStatusVO trasfromStatusVO = new TrasfromStatusVO();
+ trasfromStatusVO.setSn(sn);
+ 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();
+ }
+ }
+ });
+
+ }
+ }).start();
+
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ });
+
+
+ return svoList;
+ }
+
+ /**
+ * 鏌ヨ鍦ㄧ嚎鐘舵��
+ *
+ * @return
+ */
+ public List<NewNovaLed> getOnlineStatus(List<NewNovaLed> newNovaListBos) {
+ //璁剧疆寮�鍏冲睆鐘舵��
+ newNovaListBos.forEach(led -> {
+ //鑾峰彇淇℃伅涔嬪墠鍏堢櫥褰�
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ StatusVO login = login(led.getSn());
+ if (login.getStatusCode() == 0) {
+ //鐧婚檰鎴愬姛 璁剧疆涓哄湪绾�
+ led.setIsOnline(1);
+ led.setOnlineSign(1);
+ } else {
+ led.setIsOnline(0);
+ }
+ countDownLatch.countDown();
+ }
+ }).start();
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ });
+ return newNovaListBos;
+ }
+
+
+ /**
+ * 鏌ヨ灞忓箷鍩烘湰淇℃伅
+ */
+
+ public NewNovaLed getInfo(NewNovaLed led) {
+ System.out.println("ViplexCore Demo nvGetProductInfoAsync(鑾峰彇灞忓箷淇℃伅) begin... ");
+ StatusVO login = login(led.getSn());
+
+ StatusVO result = new StatusVO();
+ if (login.getStatusCode() == 0) {
+
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ //鎺ㄩ�佺粨鏋�
+ 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();
+ }
+ });
+
+ }
+ }).start();
+ try {
+ countDownLatch.await(30000, TimeUnit.MICROSECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ } else {
+ throw new BusinessException("璁惧鐧诲綍澶辫触,缁忔鏌ヨ澶囨槸鍚﹁繛鎺�");
+ }
+ NewNovaInfoBo newNovaInfoBo = JSON.parseObject(result.getStatusData(), NewNovaInfoBo.class);
+ led.setInfo(newNovaInfoBo);
+ System.out.println(JSON.toJSONString(led.getInfo()) + "--------");
+ return led;
+ }
+
+
+ /**
+ * 鑾峰彇寮�鍏冲睆鐘舵��
+ */
+ public List<NewNovaLed> getScreenPowerState(List<NewNovaLed> newNovaLsit) {
+
+ System.out.println("ViplexCore Demo nvGetScreenPowerStateAsync(鑾峰彇灞忓箷寮�鍏�) begin... ");
+
+ newNovaLsit.forEach(newNova -> {
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ //鎺ㄩ�佺粨鏋�
+ 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();
+ }
+ });
+
+ }
+ }).start();
+ try {
+ countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ });
+
+ return newNovaLsit;
+ }
+
+ /**
+ * 鑾峰彇闊抽噺
+ */
+ public List<NewNovaLed> getVolumeState(List<NewNovaLed> newNovaLsit) {
+
+ System.out.println("ViplexCore Demo nvGetVolumeAsync(鑾峰彇闊抽噺) begin... ");
+
+ newNovaLsit.forEach(newNova -> {
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ //鎺ㄩ�佺粨鏋�
+ 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();
+ }
+ });
+
+ }
+ }).start();
+ 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());
+ if (login.getStatusCode() == 0) {
+ String jsonStr = "{\n" +
+ " \"sn\":\"" + param.getSn() + "\",\n" +
+ " \"screenBrightnessInfo\":{\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... ");
+
+
+ newNovaLsit.forEach(newNova -> {
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ //鎺ㄩ�佺粨鏋�
+ 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();
+ }
+ });
+
+ }
+ }).start();
+ 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());
+ 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... ");
+
+ newNovaLsit.forEach(newNova -> {
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ //鎺ㄩ�佺粨鏋�
+ 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) {
+ newNova.setSync(1);
+ }
+ countDownLatch.countDown();
+ }
+ });
+
+ }
+ }).start();
+ 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("鍚屾璁惧涓嶈兘涓虹┖ !");
+ }
+ param.getNovaList().forEach(newNova -> {
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ //鎺ㄩ�佺粨鏋�
+ instance.nvSetSyncPlayAsync("{\n" +
+ " \"sn\":\"" + newNova.getSn() + "\",\n" +
+ " \"enable\":" + param.isSync() + "\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);
+ }
+ });
+
+ 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("閲嶅惎璁惧涓嶈兘涓虹┖ !");
+ }
+ 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() {
+ @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);
+ }
+ });
+
+ 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("瀵规椂璁惧涓嶈兘涓虹┖ !");
+ }
+
+ param.getNovaList().forEach(newNova -> {
+ CountDownLatch countDownLatch = new CountDownLatch(1);
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ //鎺ㄩ�佺粨鏋�
+ instance.nvSetNetTimingInfoAsync("{\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://ntpsss.net\"\n" +
+ " }\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);
+ }
+ });
+
+ return param.getNovaList();
+ }
}
--
Gitblit v1.9.3