From 6554fd4bf83e50d39fc75f1c4ac3fbf6675f1962 Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期四, 10 十一月 2022 09:28:10 +0800
Subject: [PATCH] changes
---
dao/src/main/resources/mapper/PoleBindingMapper.xml | 3
ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java | 163 ++++++++++
ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/param/NewNovaLedParam.java | 19 +
ximon-admin/pom.xml | 16 +
dao/src/main/resources/mapper/NewNovaLedMapper.xml | 23 +
ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/vo/StatusVO.java | 16 +
ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/conf/FilePathConfig.java | 22 +
ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/APITest.java | 275 +++++++++---------
dao/src/main/java/com/sandu/ximon/dao/domain/NewNovaFile.java | 3
dao/src/main/java/com/sandu/ximon/dao/mapper/NewNovaLedMapper.java | 20 +
sandu-common/src/main/java/com/sandu/common/file/config/NovaFileConfig.java | 24 +
/dev/null | 0
ximon-admin/src/main/resources/application-local.yml | 13
ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedService.java | 40 ++
ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedController.java | 47 +++
sandu-common/src/main/java/com/sandu/common/file/impl/LocalFileUploadImpl.java | 3
dao/src/main/java/com/sandu/ximon/dao/domain/NewNovaLed.java | 185 ++++++++++++
17 files changed, 729 insertions(+), 143 deletions(-)
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/NewNovaFile.java b/dao/src/main/java/com/sandu/ximon/dao/domain/NewNovaFile.java
index b0937fa..1886301 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/NewNovaFile.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/NewNovaFile.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
+import java.time.LocalDateTime;
import java.util.Date;
import lombok.Data;
@@ -69,7 +70,7 @@
/**
* 涓婁紶鏃堕棿
*/
- private Date createTime;
+ private LocalDateTime createTime;
/**
* 瑙嗛鏃堕暱
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/NewNovaLed.java b/dao/src/main/java/com/sandu/ximon/dao/domain/NewNovaLed.java
new file mode 100644
index 0000000..87d8853
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/NewNovaLed.java
@@ -0,0 +1,185 @@
+package com.sandu.ximon.dao.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 鏂拌鐡﹁澶囪〃
+ *
+ * @TableName new_nova_led
+ */
+@NoArgsConstructor
+@TableName(value = "new_nova_led")
+@Data
+public class NewNovaLed implements Serializable {
+ /**
+ * 鎾斁鍣↖D
+ */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 鎾斁鍣ㄥ悕绉�(鏁版嵁搴�)
+ */
+ private String name;
+
+ /**
+ * 鎾斁鍣ㄥ悕绉�(server)
+ */
+ private String playerName;
+
+ /**
+ * 鎾斁鍣↖D(Vnnox)
+ */
+ private String playerId;
+
+ /**
+ * 鎾斁鍣ㄥ敮涓�鏍囪瘑,濡傛灉涓簄ull浠h〃娌℃湁缁戝畾鎾斁鍣�(Vnnox)
+ */
+ private String sn;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private LocalDateTime createTime;
+
+ /**
+ * 鍒嗚鲸鐜�
+ */
+ private Integer onlineSign;
+
+ /**
+ * 鏇存柊鏃堕棿
+ */
+ private LocalDateTime updateTime;
+
+ @TableField(exist = false)
+ private static final long serialVersionUID = 1L;
+
+// /**
+// * 浜у搧鍚嶇О
+// */
+// @JsonIgnore
+// @TableField(exist = false)
+// private String productName;
+//
+// /**
+// * 鏄剧ず灞忓搴�,鍗曚綅涓哄儚绱�
+// */
+// @TableField(exist = false)
+// private Integer width;
+//
+// /**
+// * 鏄剧ず灞忛珮搴�,鍗曚綅涓哄儚绱�
+// */
+// @TableField(exist = false)
+// private Integer height;
+//
+// /**
+// * 鏃嬭浆瑙掑害:0锛�90锛�180锛�270
+// */
+// @TableField(exist = false)
+// private Integer rotation;
+//
+// /**
+// * 鏄剧ず灞忓埆鍚�
+// */
+// @JsonIgnore
+// @TableField(exist = false)
+// private String aliasName;
+//
+// /**
+// * 鏄惁鏈変汉宸茬粡鐧婚檰
+// */
+// @JsonIgnore
+// @TableField(exist = false)
+// private Boolean logined;
+//
+// /**
+// * 鑻ュ凡缁忔湁浜虹櫥闄嗭紝浠h〃宸茬粡鐧婚檰鐨勭敤鎴峰悕鍒楄〃
+// */
+// @TableField(exist = false)
+// private List<String> username;
+//
+// /**
+// * tcp杩炴帴绔彛
+// */
+// @TableField(exist = false)
+// private Integer tcpPort;
+//
+// /**
+// * ftp杩炴帴绔彛
+// */
+// @TableField(exist = false)
+// private Integer ftpPort;
+//
+// /**
+// * 绯荤粺璁剧疆ftp绔彛
+// */
+// @TableField(exist = false)
+// private Integer syssetFtpPort;
+//
+// /**
+// * 绯荤粺璁剧疆tcp绔彛
+// */
+// @TableField(exist = false)
+// private Integer syssetTcpPort;
+//
+// /**
+// * 缁堢杩斿洖鐨刱ey,鍙備笌ftp鐨勫瘑鐮佺敓浜ц鍒�
+// */
+// @TableField(exist = false)
+// private String key;
+//
+// /**
+// * 绯荤粺骞冲彴淇℃伅锛堟殏鏃朵細鍑虹幇rk3368,rk312x锛�
+// */
+// @TableField(exist = false)
+// private String platform;
+//
+// /**
+// * True琛ㄧず缁堢鏀寔鍔犲瘑妯″紡锛屽綋鐒跺鏋滄槸鏂扮殑缁堢涓�瀹氭槸True
+// */
+// @TableField(exist = false)
+// private Boolean privacy;
+//
+//
+// /**
+// * 褰撳墠灞忎綋鐘舵�侊紝terminalState鍏辨湁6涓��,鍒嗗埆浠h〃锛�
+// * 0锛氭湭杩炴帴浠讳綍缁堢锛屽綋鍓嶅浜庢湭杩炴帴鐘舵��
+// * 1锛氳繛鎺ユ垚鍔熶絾鏄湭鐧诲綍鐘舵��
+// * 2锛氳浠栦汉鐧诲綍鐘舵��
+// * 3锛氱櫥褰曟垚鍔熺姸鎬�
+// * 4锛氬瘑鐮侀敊璇姸鎬�
+// * 5锛氱绾跨姸鎬侊紝澶勪簬鎼滅储涓嶅埌鐨勭姸鎬侊紝浣嗘槸鏇剧粡琚悳绱㈠埌杩�
+// */
+// @TableField(exist = false)
+// private Integer terminalState;
+//
+// /**
+// * 璁板綍鐐瑰嚮蹇界暐瀵嗙爜鐨勬椂闂存埑
+// */
+// @JsonIgnore
+// @TableField(exist = false)
+// private Long ignoreTime;
+//
+// /**
+// * 鏄惁璁颁綇瀵嗙爜锛宼rue琛ㄧず璁颁綇锛宖alse锛岃〃绀烘病鏈�
+// */
+// @TableField(exist = false)
+// private Boolean hasPassword;
+//
+// /**
+// * 瀵嗙爜
+// */
+// @TableField(exist = false)
+// private String password;
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/NewNovaLedMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/NewNovaLedMapper.java
new file mode 100644
index 0000000..92b0c0c
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/NewNovaLedMapper.java
@@ -0,0 +1,20 @@
+package com.sandu.ximon.dao.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sandu.ximon.dao.domain.NewNovaLed;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author Administrator
+ * @description 閽堝琛ㄣ�恘ew_nova_led(鏂拌鐡﹁澶囪〃)銆戠殑鏁版嵁搴撴搷浣淢apper
+ * @createDate 2022-11-09 11:10:48
+ * @Entity com.sandu.ximon.dao.domain.NewNovaLed
+ */
+@Mapper
+public interface NewNovaLedMapper extends BaseMapper<NewNovaLed> {
+
+}
+
+
+
+
diff --git a/dao/src/main/resources/mapper/NewNovaLedMapper.xml b/dao/src/main/resources/mapper/NewNovaLedMapper.xml
new file mode 100644
index 0000000..862178c
--- /dev/null
+++ b/dao/src/main/resources/mapper/NewNovaLedMapper.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sandu.ximon.dao.mapper.NewNovaLedMapper">
+
+ <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.NewNovaLed">
+ <id property="id" column="id" jdbcType="BIGINT"/>
+ <result property="name" column="name" jdbcType="VARCHAR"/>
+ <result property="playerName" column="player_name" jdbcType="VARCHAR"/>
+ <result property="playerId" column="player_id" jdbcType="VARCHAR"/>
+ <result property="sn" column="sn" jdbcType="VARCHAR"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="resolution" column="resolution" jdbcType="VARCHAR"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,name,player_name,
+ player_id,sn,create_time,
+ resolution,update_time
+ </sql>
+</mapper>
diff --git a/dao/src/main/resources/mapper/PoleBindingMapper.xml b/dao/src/main/resources/mapper/PoleBindingMapper.xml
index d23236e..7c6ec6d 100644
--- a/dao/src/main/resources/mapper/PoleBindingMapper.xml
+++ b/dao/src/main/resources/mapper/PoleBindingMapper.xml
@@ -23,9 +23,10 @@
<select id="getPoleByBinding" resultType="com.sandu.ximon.dao.domain.Pole">
SELECT t2.*
FROM `pole_binding` t1
- LEFT JOIN pole t2 ON t1.pole_id = t2.id
+ LEFT JOIN pole t2 ON t1.pole_id = t2.id AND t1.device_type=0
<where>
t1.device_code = #{Mac}
+ AND t1.device_type=0
<if test="type != null">
AND t1.device_type = #{type}
</if>
diff --git a/sandu-common/src/main/java/com/sandu/common/file/config/NovaFileConfig.java b/sandu-common/src/main/java/com/sandu/common/file/config/NovaFileConfig.java
new file mode 100644
index 0000000..5213661
--- /dev/null
+++ b/sandu-common/src/main/java/com/sandu/common/file/config/NovaFileConfig.java
@@ -0,0 +1,24 @@
+package com.sandu.common.file.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/11/9
+ */
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "new-nova-file.upload")
+public class NovaFileConfig {
+
+ /**
+ * 鏈嶅姟鍣ㄥ瓨鍌ㄧ殑鏍硅矾寰�
+ */
+ private String uploadRootPath;
+ /**
+ * 鏈嶅姟鍣╥p鍜岀鍙�
+ */
+ private String realUrl;
+}
diff --git a/sandu-common/src/main/java/com/sandu/common/file/impl/LocalFileUploadImpl.java b/sandu-common/src/main/java/com/sandu/common/file/impl/LocalFileUploadImpl.java
index 4b254a2..14f6fb0 100644
--- a/sandu-common/src/main/java/com/sandu/common/file/impl/LocalFileUploadImpl.java
+++ b/sandu-common/src/main/java/com/sandu/common/file/impl/LocalFileUploadImpl.java
@@ -9,6 +9,7 @@
import com.sandu.common.execption.BusinessException;
import com.sandu.common.file.*;
import com.sandu.common.file.config.FileProperties;
+import com.sandu.common.file.config.NovaFileConfig;
import com.sandu.common.util.SpringContextHolder;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -41,7 +42,7 @@
@Override
public FileUploadDto uploadFile(MultipartFile multipartFile) {
- FileProperties fileProperties = SpringContextHolder.getBean(FileProperties.class);
+ NovaFileConfig fileProperties = SpringContextHolder.getBean(NovaFileConfig.class);
String originalFilename = multipartFile.getOriginalFilename();
long size = multipartFile.getSize();
String suffix = FileUtil.getSuffix(originalFilename);
diff --git a/ximon-admin/pom.xml b/ximon-admin/pom.xml
index 046861c..bcecb14 100644
--- a/ximon-admin/pom.xml
+++ b/ximon-admin/pom.xml
@@ -105,6 +105,22 @@
</exclusion>
</exclusions>
</dependency>
+
+ <!--鏂拌鐡︿緷璧�-->
+ <!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna -->
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.6.0</version>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna-platform -->
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.6.0</version>
+ </dependency>
+
</dependencies>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/conf/FilePathConfig.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/conf/FilePathConfig.java
new file mode 100644
index 0000000..dcc2adf
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/conf/FilePathConfig.java
@@ -0,0 +1,22 @@
+package com.sandu.ximon.admin.newnova.conf;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/11/9
+ */
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "new-nova")
+public class FilePathConfig {
+
+ /**
+ * 渚濊禆瀛樻斁璺緞
+ */
+ private String stringPath;
+
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedController.java
new file mode 100644
index 0000000..703ae72
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedController.java
@@ -0,0 +1,47 @@
+package com.sandu.ximon.admin.newnova.led;
+
+import com.sandu.common.domain.ResponseVO;
+import com.sandu.common.util.ResponseUtil;
+import com.sandu.ximon.admin.newnova.param.NewNovaLedParam;
+import com.sandu.ximon.admin.newnova.utils.NovaAPIUtil;
+import com.sandu.ximon.admin.newnova.vo.StatusVO;
+import com.sandu.ximon.admin.security.PermissionConfig;
+import com.sandu.ximon.dao.domain.LedV2RegisterResultEntity;
+import com.sandu.ximon.dao.enums.MenuEnum;
+import lombok.AllArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.net.URISyntaxException;
+import java.util.Map;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/11/9
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/v1/nova/led")
+public class NewNovaLedController {
+ private final PermissionConfig permissionConfig;
+ private final NewNovaLedService newNovaLedService;
+ private final NovaAPIUtil novaApiUtil;
+
+ @PostMapping("/validateSN")
+ public ResponseVO<Object> validateSN(@RequestBody @Validated NewNovaLedParam param) {
+ if (!permissionConfig.check(MenuEnum.VNNOX_ADD.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ boolean b= newNovaLedService.saveLed(param);
+ return ResponseUtil.success("ledV2RegisterResultEntity");
+ }
+ @PostMapping("/test")
+ public ResponseVO<Object> validateSN() {
+ StatusVO mzva51930N2113017308 = novaApiUtil.login("MZVA51930N2113017308");
+ return ResponseUtil.success(mzva51930N2113017308);
+ }
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedService.java
new file mode 100644
index 0000000..9771100
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedService.java
@@ -0,0 +1,40 @@
+package com.sandu.ximon.admin.newnova.led;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.sandu.common.execption.BusinessException;
+import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.admin.newnova.param.NewNovaLedParam;
+import com.sandu.ximon.dao.domain.NewNovaLed;
+import com.sandu.ximon.dao.mapper.NewNovaLedMapper;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/11/9
+ */
+@Service
+@AllArgsConstructor
+public class NewNovaLedService extends BaseServiceImpl<NewNovaLedMapper, NewNovaLed> {
+
+
+ /**
+ * 灞忓箷娉ㄥ唽
+ *
+ * @param param
+ * @return
+ */
+ public boolean saveLed(NewNovaLedParam param) {
+ NewNovaLed one = getOne(Wrappers.lambdaQuery(NewNovaLed.class).eq(NewNovaLed::getSn, param.getSn()));
+ if (one != null) {
+ throw new BusinessException("璁惧宸插瓨鍦�,璇峰嬁閲嶅娉ㄥ唽锛�");
+ }
+ NewNovaLed led = new NewNovaLed();
+ led.setSn(param.getSn());
+ led.setName(param.getName());
+ return save(led);
+ }
+
+
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/libs/jna-5.6.0.jar b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/libs/jna-5.6.0.jar
deleted file mode 100644
index fda5aa4..0000000
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/libs/jna-5.6.0.jar
+++ /dev/null
Binary files differ
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/libs/jna-platform-5.6.0.jar b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/libs/jna-platform-5.6.0.jar
deleted file mode 100644
index 91b2635..0000000
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/libs/jna-platform-5.6.0.jar
+++ /dev/null
Binary files differ
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/param/NewNovaLedParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/param/NewNovaLedParam.java
new file mode 100644
index 0000000..f6e19ed
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/param/NewNovaLedParam.java
@@ -0,0 +1,19 @@
+package com.sandu.ximon.admin.newnova.param;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/11/9
+ */
+@Data
+public class NewNovaLedParam {
+
+ @NotBlank(message = "sn鐮佷笉鑳戒负绌�")
+ private String sn;
+
+ private String name;
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/APITest.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/APITest.java
index 5636dc4..c913936 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/APITest.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/APITest.java
@@ -1,166 +1,161 @@
package com.sandu.ximon.admin.newnova.utils;
import com.sun.jna.Native;
-/*
-* 浣跨敤鍓嶉槄璇�:
-* 1 鍏充簬鍙兘鍙戠敓鐨勬悳绱笉鍒癟鍗$殑鍘熷洜锛�
-* 1.1. 鎵撳紑浜唀xpress锛屽鑷磚dp绔彛琚崰鐢紝璇峰叧闂璭xpress杞欢鍚庨噸璇�
-* 1.2. SDK鍜孴鍗′笉鍦ㄥ悓涓�涓眬鍩熺綉锛屽彲浠ュ皾璇曟寚瀹歩p鎼滅储锛屼娇鐢ㄦ柟娉曡锛歨ttps://docapi.vnnox.com/web/#/7?page_id=609
-* 2 鍏充簬浣跨敤sdk鍔ㄦ�佸簱鍙兘鍑虹幇鐨勯棶棰樺強瑙e喅鏂规硶锛�
-*
-* 2.1. 鍦╨inux涓嬪鏋滃嚭鐜發ib***.so file too short ,杩欑閿欒锛屾湁鍙兘鏄蒋杩炴帴澶辨晥锛屽彲浠ュ皾璇曞垹闄ゅ師鏈夋枃浠讹紝灏濊瘯 ln -s 閲嶆柊鐢熸垚杞繛鎺ャ�傛瘮濡傦細 ./libcurl.so: file too short锛岄鍏� rm libcurl.so锛岀劧鍚巐n -s libcurl.so.4.3.0 libcurl.so鍗冲彲銆�
-* 2.2. 閽堝java椤圭洰锛屼娇鐢↗NA鍔犺浇so搴撴椂锛岃浣跨敤缁濆璺緞銆傛瘮濡傦細
-* //winodws
-* ViplexCore instance = (ViplexCore) Native.loadLibrary("D:\\ViplexCore3.3.0.01_x64\\bin\\viplexcore.dll",ViplexCore.class);
-* //鎴栬�� linux
-* ViplexCore instance = (ViplexCore) Native.loadLibrary("home/user/desktop/ViplexCore_3.3.0.01_CentOS/bin/libviplexcore.so",ViplexCore.class);
-*
-* 2.3. 閽堝java椤圭洰锛屽鏋滆浣跨敤鐩稿璺緞锛岃灏唖dk鍔ㄦ�佸簱璺緞娣诲姞鍒癱lasspath鐜鍙橀噺锛屾湁涓嬮潰鍑犵鏂规硶锛堜篃鍙互鎼滅储鐩稿叧鏁欑▼娣诲姞锛夛紝渚嬪锛�
-* 2.3.1. 鍛戒护琛屼娇鐢細 javac -cp "C:\Users\HiWin10\Downloads\ViplexCore3.3.0.01_x64\bin" (璇﹁SDK demo/java/涓媟unDemo.sh鎴栬�卹unDemo.bat鏂囦欢)
-* 2.3.2. 瀵煎叆鐜鍙橀噺锛屽锛� export CLASSPATH=$CLASSPATH:home/user/ViplexCore3.3.0.01_x64/
-* 2.3.3. 閽堝springboot椤圭洰锛� java -Xbootclasspath/a:/home/nova/novasdk/
-* */
+/*
+ * 浣跨敤鍓嶉槄璇�:
+ * 1 鍏充簬鍙兘鍙戠敓鐨勬悳绱笉鍒癟鍗$殑鍘熷洜锛�
+ * 1.1. 鎵撳紑浜唀xpress锛屽鑷磚dp绔彛琚崰鐢紝璇峰叧闂璭xpress杞欢鍚庨噸璇�
+ * 1.2. SDK鍜孴鍗′笉鍦ㄥ悓涓�涓眬鍩熺綉锛屽彲浠ュ皾璇曟寚瀹歩p鎼滅储锛屼娇鐢ㄦ柟娉曡锛歨ttps://docapi.vnnox.com/web/#/7?page_id=609
+
+ * 2 鍏充簬浣跨敤sdk鍔ㄦ�佸簱鍙兘鍑虹幇鐨勯棶棰樺強瑙e喅鏂规硶锛�
+ *
+ * 2.1. 鍦╨inux涓嬪鏋滃嚭鐜發ib***.so file too short ,杩欑閿欒锛屾湁鍙兘鏄蒋杩炴帴澶辨晥锛屽彲浠ュ皾璇曞垹闄ゅ師鏈夋枃浠讹紝灏濊瘯 ln -s 閲嶆柊鐢熸垚杞繛鎺ャ�傛瘮濡傦細 ./libcurl.so: file too short锛岄鍏� rm libcurl.so锛岀劧鍚巐n -s libcurl.so.4.3.0 libcurl.so鍗冲彲銆�
+ * 2.2. 閽堝java椤圭洰锛屼娇鐢↗NA鍔犺浇so搴撴椂锛岃浣跨敤缁濆璺緞銆傛瘮濡傦細
+ * //winodws
+ * ViplexCore instance = (ViplexCore) Native.loadLibrary("D:\\ViplexCore3.3.0.01_x64\\bin\\viplexcore.dll",ViplexCore.class);
+ * //鎴栬�� linux
+ * ViplexCore instance = (ViplexCore) Native.loadLibrary("home/user/desktop/ViplexCore_3.3.0.01_CentOS/bin/libviplexcore.so",ViplexCore.class);
+ *
+ * 2.3. 閽堝java椤圭洰锛屽鏋滆浣跨敤鐩稿璺緞锛岃灏唖dk鍔ㄦ�佸簱璺緞娣诲姞鍒癱lasspath鐜鍙橀噺锛屾湁涓嬮潰鍑犵鏂规硶锛堜篃鍙互鎼滅储鐩稿叧鏁欑▼娣诲姞锛夛紝渚嬪锛�
+ * 2.3.1. 鍛戒护琛屼娇鐢細 javac -cp "C:\Users\HiWin10\Downloads\ViplexCore3.3.0.01_x64\bin" (璇﹁SDK demo/java/涓媟unDemo.sh鎴栬�卹unDemo.bat鏂囦欢)
+ * 2.3.2. 瀵煎叆鐜鍙橀噺锛屽锛� export CLASSPATH=$CLASSPATH:home/user/ViplexCore3.3.0.01_x64/
+ * 2.3.3. 閽堝springboot椤圭洰锛� java -Xbootclasspath/a:/home/nova/novasdk/
+ * */
public class APITest {
static Boolean g_bAPIReturn = false;
static int g_code = 0;
- static String g_sn = "BZSA79353N1310006847"; //BZSA07313J0350000997
+ static String g_sn = "MZVA51930N2113017308"; //BZSA07313J0350000997
- static void waitAPIReturn() throws InterruptedException
- {
- while (!g_bAPIReturn)
- {
+ static void waitAPIReturn() throws InterruptedException {
+ while (!g_bAPIReturn) {
Thread.sleep(1000);
}
g_bAPIReturn = false;
}
- static void testApi() throws InterruptedException
- {
- System.setProperty("jna.encoding", "UTF-8");
- ViplexCore instance = (ViplexCore) Native.loadLibrary("viplexcore",ViplexCore.class);
- //褰撻渶瑕侀泦鎴愬埌椤圭洰涓椂锛岃淇敼涓婇潰鍔犺浇搴撶殑浣嶇疆涓轰綘涓嬭浇鐨剆dk搴撶殑缁濆璺緞锛寃indows涓嬪锛�
- //ViplexCore instance = (ViplexCore) Native.loadLibrary("D:\\ViplexCore3.3.0.01_x64\\bin\\viplexcore.dll",ViplexCore.class);
-
- //褰撻渶瑕侀泦鎴愬埌椤圭洰涓椂锛岃淇敼姝ゅ鍔犺浇搴撶殑浣嶇疆涓轰綘涓嬭浇鐨剆dk搴撶殑缁濆璺緞锛宭inux涓嬪锛�
- //ViplexCore instance = (ViplexCore) Native.loadLibrary("home/user/desktop/ViplexCore_3.3.0.01_CentOS/bin/libviplexcore.so",ViplexCore.class);
- ViplexCore.CallBack callBack = new ViplexCore.CallBack() {
+ static void testApi() throws InterruptedException {
+ System.setProperty("jna.encoding", "UTF-8");
+// ViplexCore instance = (ViplexCore) Native.loadLibrary("viplexcore",ViplexCore.class);
+ //褰撻渶瑕侀泦鎴愬埌椤圭洰涓椂锛岃淇敼涓婇潰鍔犺浇搴撶殑浣嶇疆涓轰綘涓嬭浇鐨剆dk搴撶殑缁濆璺緞锛寃indows涓嬪锛�
+ ViplexCore instance = (ViplexCore) Native.loadLibrary("C:\\Users\\Administrator\\Desktop\\novaWin\\bin\\viplexcore.dll", ViplexCore.class);
- @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;
- }
-
- };
+ //褰撻渶瑕侀泦鎴愬埌椤圭洰涓椂锛岃淇敼姝ゅ鍔犺浇搴撶殑浣嶇疆涓轰綘涓嬭浇鐨剆dk搴撶殑缁濆璺緞锛宭inux涓嬪锛�
+// ViplexCore instance = (ViplexCore) Native.loadLibrary("C:\\Users\\Administrator\\Desktop\\novaLinux\\bin\\libviplexcore.so",ViplexCore.class);
+ ViplexCore.CallBack callBack = new ViplexCore.CallBack() {
- String rootDir = System.getProperty("user.dir") + "/temp";
- rootDir = rootDir.replaceAll( "\\\\","/");
- String createProgram = "{\"name\":\"Demo\",\"width\":500,\"height\":500,\"tplID\":1,\"winInfo\":{\"height\":100,\"width\":100,\"left\":0,\"top\":0,\"zindex\":0,\"index\":0}}";
- String editProgram = "{\"programID\":1,\"pageID\":1,\"pageInfo\":{\"name\":\"鑺傜洰\",\"widgetContainers\":[{\"audioGroup\":\"\",\"backgroundColor\":\"#00000000\",\"backgroundDrawable\":\"\",\"contents\":{\"widgetGroups\":[],\"widgets\":[{\"id\":1,\"enable\":true,\"repeatCount\":1,\"layout\":{\"y\":\"0\",\"height\":\"100%\",\"x\":\"0\",\"width\":\"100%\"},\"backgroundColor\":\"#00000000\",\"backgroundDrawable\":\"\",\"backgroundMusic\":\"\",\"zOrder\":0,\"displayRatio\":\"FULL\",\"outAnimation\":{\"type\":0,\"duration\":0},\"dataSource\":\"62ea7e60c493c1f860ae256eef8ec89c.png\",\"type\":\"PICTURE\",\"constraints\":[{\"cron\":[],\"endTime\":\"4017-12-30T23:59:59Z+8:00\",\"startTime\":\"1970-01-01T00:00:00Z+8:00\"}],\"border\":{\"borderThickness\":\"2px,3px,5%,6\",\"style\":0,\"backgroundColor\":\"#ff000000\",\"name\":\"border\",\"cornerRadius\":\"2%\",\"effects\":{\"headTailSpacing\":\"\",\"isHeadTail\":false,\"speedByPixelEnable\":true,\"speed\":0,\"animation\":\"CLOCK_WISE\"}},\"inAnimation\":{\"type\":0,\"duration\":1000},\"duration\":3605000,\"name\":\"test.png\",\"originalDataSource\":\"./test.png\",\"functionStorage\":\"\",\"isSupportSpecialEffects\":false}]},\"enable\":true,\"id\":1,\"itemsSource\":\"\",\"layout\":{\"height\":\"1.0\",\"width\":\"1.0\",\"x\":\"0.0\",\"y\":\"0.0\"},\"name\":\"widgetContainers1\",\"pickCount\":0,\"pickPolicy\":\"ORDER\",\"zOrder\":0}]}}";
- String genrateProgram = String.format(
- "{\"programID\":1,\"outPutPath\":\"%s/\",\"mediasPath\":[{\"oldPath\":\"test\",\"newPath\":\"test\"}]}",
- rootDir);
- String trasfromProgram = String.format(
- "{\"sn\": \"%s\",\"iconPath\": \"\",\"iconName\": \"\",\"sendProgramFilePaths\": {\"programPath\": \"%s/program1\",\"mediasPath\": {\"./test.png\": \"test.png\"}},\"programName\": \"program1\",\"deviceIdentifier\": \"Demo\",\"startPlayAfterTransferred\": true,\"insertPlay\": true}",
- g_sn,
- rootDir);
-
-
- Boolean bTestVideo = false;
- if (bTestVideo)
- {
- editProgram = "{\"programID\":1,\"pageID\":1,\"pageInfo\":{\"name\":\"Demo\",\"widgetContainers\":[{\"contents\":{\"widgets\":[{\"constraints\":[{\"cron\":[\"0 0 0 ? * 1,2,3,4,5,6,7\"],\"endTime\":\"4017-12-30T23:59:59Z 8:00\",\"startTime\":\"1970-01-01T00:00:00Z 8:00\"}],\"duration\":5000,\"dataSource\":\"219c7dd3260d6bf98ebf61b6da440ffd.avi\",\"type\":\"VIDEO\",\"name\":\"test.vai\",\"originalDataSource\":\"./test.avi\"}]},\"id\":1,\"name\":\"widgetContainers1\"}]}}";
-
- trasfromProgram = String.format(
- "{\"sn\":\"%s\",\"iconPath\": \"\",\"iconName\": \"\",\"sendProgramFilePaths\": {\"programPath\": \"%s/program1\",\"mediasPath\": {\"./test.avi\": \"test.avi\"}},\"programName\": \"program1\",\"deviceIdentifier\": \"Demo\",\"startPlayAfterTransferred\": true,\"insertPlay\": true}",
- g_sn,
- rootDir);
- }
-
-
-
-
-
-
-
- Boolean testText = false;
- if (testText) {
- editProgram = "{\"programID\":1,\"pageID\":1,\"pageInfo\":{\"name\":\"jiemu\",\"widgetContainers\":[{\"contents\":{\"widgets\":[{\"constraints\":[{\"cron\":[\"0 0 0 ? * 1,2,3,4,5,6,7\"],\"endTime\":\"4017-12-30T23:59:59Z+8:00\",\"startTime\":\"1970-01-01T00:00:00Z+8:00\"}],\"duration\":5000,\"metadata\":{\"content\":{\"autoPaging\":true,\"backgroundMusic\":{\"duration\":0,\"isTextSync\":false},\"displayStyle\":{\"scrollAttributes\":{\"effects\":{\"animation\":\"MARQUEE_LEFT\",\"speed\":3}},\"type\":\"SCROLL\"},\"paragraphs\":[{\"backgroundColor\":\"#00000000\",\"horizontalAlignment\":\"CENTER\",\"letterSpacing\":0,\"lineSpacing\":0,\"lines\":[{\"segs\":[{\"content\":\"绠�浣撶箒楂旀棩鏈獮頃滉淡鞏�.English123\"}]}],\"verticalAlignment\":\"CENTER\"}],\"textAttributes\":[{\"backgroundColor\":\"#ff000000\",\"attributes\":{\"font\":{\"family\":[\"Arial\"],\"isUnderline\":false,\"size\":20,\"style\":\"NORMAL\"},\"letterSpacing\":0,\"textColor\":\"#ffff0000\"}}]}},\"name\":\"text\",\"type\":\"ARCH_TEXT\"}]},\"id\":1,\"name\":\"widgetContainers1\"}]}}";
- trasfromProgram = String.format(
- "{\"sn\": \"%s\",\"iconPath\": \"\",\"iconName\": \"\",\"sendProgramFilePaths\": {\"programPath\": \"%s/program1\",\"mediasPath\": {}},\"programName\": \"program1\",\"deviceIdentifier\": \"Demo\",\"startPlayAfterTransferred\": true,\"insertPlay\": true}",
- g_sn,
- rootDir);
- }
-
- 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));
- System.out.println("ViplexCore Demo nvSearchTerminalAsync(鎼滅储) begin... ");
- instance.nvSearchTerminalAsync(callBack);
- Thread.sleep(3000);
- g_bAPIReturn = false;
-
- // System.out.println("ViplexCore Demo nvSearchAppointIpAsync(鎸囧畾IP鎼滅储) begin... ");
- // String requestData = "{\"ip\":\"172.18.179.106\"}";
- // instance.nvSearchAppointIpAsync(requestData, callBack);
- // Thread.sleep(2000);
-
- System.out.println("ViplexCore Demo nvLoginAsync(鐧诲綍) begin... ");
- String loginParam = String.format("{\"sn\":\"%s\",\"username\":\"admin\",\"rememberPwd\":1,\"password\":\"1234567890\",\"loginType\":0}"
- , g_sn);
- instance.nvLoginAsync(loginParam, callBack);
- waitAPIReturn();
- if (g_code != 0) {
- System.out.println("ViplexCore Demo nvLoginAsync(鐧诲綍) 澶辫触锛�");
- return;
+ @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;
}
- System.out.println("ViplexCore Demo nvCreateProgramAsync(鍒涘缓鑺傜洰) begin... ");
- instance.nvCreateProgramAsync(createProgram, callBack);
- waitAPIReturn();
+
+ };
+
+ String rootDir = System.getProperty("user.dir") + "/temp";
+ System.out.println("淇濆瓨璺緞:" + rootDir);
+ rootDir = rootDir.replaceAll("\\\\", "/");
+ String createProgram = "{\"name\":\"jiemu1\",\"width\":240,\"height\":144}";
+ String editProgram = "{\"programID\":13,\"pageID\":1,\"pageInfo\":{\"name\":\"鑺傜洰01\",\"widgetContainers\":[{\"contents\":{\"widgets\":[{\"constraints\":[{\"cron\":[\"0 0 0 ? * 1,2,3,4,5,6,7\"],\"endTime\":\"4017-12-30T23:59:59Z+8:00\",\"startTime\":\"1970-01-01T00:00:00Z+8:00\"}],\"duration\":5000,\"dataSource\":\"62ea7e60c493c1f860ae256eef8ec89c.png\",\"type\":\"PICTURE\",\"name\":\"test.png\",\"originalDataSource\":\"C:/Users/Administrator/Desktop/novaWin/demo/java/test.png\"}]},\"id\":1,\"name\":\"widgetContainers1\"}]}}";
+ String genrateProgram = String.format(
+ "{\"programID\":13,\"outPutPath\":\"%s/\"}",
+ rootDir);
+ 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);
- String requestDatapath = "{\"filePath\":\"./test.png\"}";
- System.out.println("ViplexCore Demo nvGetFileMD5Async(鑾峰彇MD5) begin... ");
- instance.nvGetFileMD5Async(requestDatapath, callBack);
- waitAPIReturn();
+// Boolean bTestVideo = false;
+// if (bTestVideo) {
+// editProgram = "{\"programID\":1,\"pageID\":1,\"pageInfo\":{\"name\":\"Demo\",\"widgetContainers\":[{\"contents\":{\"widgets\":[{\"constraints\":[{\"cron\":[\"0 0 0 ? * 1,2,3,4,5,6,7\"],\"endTime\":\"4017-12-30T23:59:59Z 8:00\",\"startTime\":\"1970-01-01T00:00:00Z 8:00\"}],\"duration\":5000,\"dataSource\":\"219c7dd3260d6bf98ebf61b6da440ffd.avi\",\"type\":\"VIDEO\",\"name\":\"test.vai\",\"originalDataSource\":\"./test.avi\"}]},\"id\":1,\"name\":\"widgetContainers1\"}]}}";
+//
+// trasfromProgram = String.format(
+// "{\"sn\":\"%s\",\"iconPath\": \"\",\"iconName\": \"\",\"sendProgramFilePaths\": {\"programPath\": \"%s/program1\",\"mediasPath\": {\"./test.avi\": \"test.avi\"}},\"programName\": \"program1\",\"deviceIdentifier\": \"Demo\",\"startPlayAfterTransferred\": true,\"insertPlay\": true}",
+// g_sn,
+// rootDir);
+// }
+//
+//
+// Boolean testText = false;
+// if (testText) {
+// editProgram = "{\"programID\":1,\"pageID\":1,\"pageInfo\":{\"name\":\"jiemu\",\"widgetContainers\":[{\"contents\":{\"widgets\":[{\"constraints\":[{\"cron\":[\"0 0 0 ? * 1,2,3,4,5,6,7\"],\"endTime\":\"4017-12-30T23:59:59Z+8:00\",\"startTime\":\"1970-01-01T00:00:00Z+8:00\"}],\"duration\":5000,\"metadata\":{\"content\":{\"autoPaging\":true,\"backgroundMusic\":{\"duration\":0,\"isTextSync\":false},\"displayStyle\":{\"scrollAttributes\":{\"effects\":{\"animation\":\"MARQUEE_LEFT\",\"speed\":3}},\"type\":\"SCROLL\"},\"paragraphs\":[{\"backgroundColor\":\"#00000000\",\"horizontalAlignment\":\"CENTER\",\"letterSpacing\":0,\"lineSpacing\":0,\"lines\":[{\"segs\":[{\"content\":\"绠�浣撶箒楂旀棩鏈獮頃滉淡鞏�.English123\"}]}],\"verticalAlignment\":\"CENTER\"}],\"textAttributes\":[{\"backgroundColor\":\"#ff000000\",\"attributes\":{\"font\":{\"family\":[\"Arial\"],\"isUnderline\":false,\"size\":20,\"style\":\"NORMAL\"},\"letterSpacing\":0,\"textColor\":\"#ffff0000\"}}]}},\"name\":\"text\",\"type\":\"ARCH_TEXT\"}]},\"id\":1,\"name\":\"widgetContainers1\"}]}}";
+// trasfromProgram = String.format(
+// "{\"sn\": \"%s\",\"iconPath\": \"\",\"iconName\": \"\",\"sendProgramFilePaths\": {\"programPath\": \"%s/program1\",\"mediasPath\": {}},\"programName\": \"program1\",\"deviceIdentifier\": \"Demo\",\"startPlayAfterTransferred\": true,\"insertPlay\": true}",
+// g_sn,
+// rootDir);
+// }
- System.out.println("ViplexCore Demo nvSetPageProgramAsync(缂栬緫鑺傜洰) begin... ");
- instance.nvSetPageProgramAsync(editProgram, callBack);
- waitAPIReturn();
+ 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));
+ System.out.println("ViplexCore Demo nvSearchTerminalAsync(鎼滅储) begin... ");
+ instance.nvSearchTerminalAsync(callBack);
+ Thread.sleep(3000);
+ g_bAPIReturn = false;
- System.out.println("ViplexCore Demo nvMakeProgramAsync(鐢熸垚鑺傜洰) begin... ");
- instance.nvMakeProgramAsync(genrateProgram, callBack);
- waitAPIReturn();
+ // System.out.println("ViplexCore Demo nvSearchAppointIpAsync(鎸囧畾IP鎼滅储) begin... ");
+ // String requestData = "{\"ip\":\"172.18.179.106\"}";
+ // instance.nvSearchAppointIpAsync(requestData, callBack);
+ // Thread.sleep(2000);
- System.out.println("ViplexCore Demo nvStartTransferProgramAsync(鍙戦�佽妭鐩�) begin... ");
- instance.nvStartTransferProgramAsync(trasfromProgram, callBack);
- Thread.sleep(10000);
- g_bAPIReturn = false;
-
- System.out.println("ViplexCore Demo nvGetProgramInfoAsync(鑾峰彇鑺傜洰淇℃伅) begin... ");
- String requestDatasn = String.format("{\"sn\":\"%s\"}", g_sn);
- instance.nvGetProgramInfoAsync(requestDatasn, callBack);
- waitAPIReturn();
-
- System.out.println("ViplexCore Demo nvSetVolumeAsync(璁剧疆闊抽噺) begin... ");
- String setVolumeParam = String.format("{\"sn\":\"%s\",\"volumeInfo\":{\"ratio\":60.0}}", g_sn);
- instance.nvSetVolumeAsync(setVolumeParam, callBack);
- waitAPIReturn();
-
- System.out.println("ViplexCore Demo nvGetVolumeAsync(鑾峰彇闊抽噺) begin... ");
- String getVolumeParam = String.format("{\"sn\":\"%s\"}", g_sn);
- instance.nvGetVolumeAsync(getVolumeParam, callBack);
- waitAPIReturn();
+ System.out.println("ViplexCore Demo nvLoginAsync(鐧诲綍) begin... ");
+ String loginParam = String.format("{\"sn\":\"MZVA51930N2113017308\",\"ip\":\"\",\"username\":\"admin\",\"rememberPwd\":0,\"password\":\"123456\",\"loginType\":0}"
+ , g_sn);
+ instance.nvLoginAsync(loginParam, callBack);
+ waitAPIReturn();
+ if (g_code != 0) {
+ System.out.println("ViplexCore Demo nvLoginAsync(鐧诲綍) 澶辫触锛�");
+ System.out.println("閿欒鐮�:" + g_code);
+ return;
}
+ System.out.println("ViplexCore Demo nvCreateProgramAsync(鍒涘缓鑺傜洰) begin... ");
+ instance.nvCreateProgramAsync(createProgram, callBack);
+ waitAPIReturn();
- public static void main(String[] args) throws InterruptedException{
+
+ String requestDatapath = "{\"filePath\":\"C:/Users/Administrator/Desktop/novaWin/demo/java/test.png\"}";
+ System.out.println("ViplexCore Demo nvGetFileMD5Async(鑾峰彇MD5) begin... ");
+ instance.nvGetFileMD5Async(requestDatapath, callBack);
+ waitAPIReturn();
+
+ System.out.println("ViplexCore Demo nvSetPageProgramAsync(缂栬緫鑺傜洰) begin... ");
+ instance.nvSetPageProgramAsync(editProgram, callBack);
+ waitAPIReturn();
+
+ System.out.println("ViplexCore Demo nvMakeProgramAsync(鐢熸垚鑺傜洰) begin... ");
+ instance.nvMakeProgramAsync(genrateProgram, callBack);
+ waitAPIReturn();
+
+ System.out.println("ViplexCore Demo nvStartTransferProgramAsync(鍙戦�佽妭鐩�) begin... ");
+ System.out.println(trasfromProgram);
+ instance.nvStartTransferProgramAsync(trasfromProgram, callBack);
+ Thread.sleep(10000);
+ g_bAPIReturn = false;
+
+ System.out.println("ViplexCore Demo nvGetProgramInfoAsync(鑾峰彇鑺傜洰淇℃伅) begin... ");
+ String requestDatasn = String.format("{\"sn\":\"%s\"}", g_sn);
+ instance.nvGetProgramInfoAsync(requestDatasn, callBack);
+ waitAPIReturn();
+//
+// System.out.println("ViplexCore Demo nvSetVolumeAsync(璁剧疆闊抽噺) begin... ");
+// String setVolumeParam = String.format("{\"sn\":\"%s\",\"volumeInfo\":{\"ratio\":60.0}}", g_sn);
+// instance.nvSetVolumeAsync(setVolumeParam, callBack);
+// waitAPIReturn();
+//
+// System.out.println("ViplexCore Demo nvGetVolumeAsync(鑾峰彇闊抽噺) begin... ");
+// String getVolumeParam = String.format("{\"sn\":\"%s\"}", g_sn);
+// instance.nvGetVolumeAsync(getVolumeParam, callBack);
+// waitAPIReturn();
+ }
+
+ public static void main(String[] args) throws InterruptedException {
testApi();
}
}
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
new file mode 100644
index 0000000..6b71835
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java
@@ -0,0 +1,163 @@
+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.sun.jna.Native;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/11/9
+ */
+@Component
+@AllArgsConstructor
+public class NovaAPIUtil {
+
+
+// @Value("${new-nova.string-path}")
+// public String getStringPath() {
+// return stringPath;
+// }
+
+ 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 static Map loginInfo = new LinkedHashMap();
+
+
+
+// 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";
+ 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() {
+
+ @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;
+ }
+
+ };
+
+
+ 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);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ g_bAPIReturn = false;
+
+
+ System.out.println("ViplexCore Demo nvLoginAsync(鐧诲綍) begin... ");
+ String loginParam = String.format("{\"sn\":\"" + sn + "\",\"ip\":\"\",\"username\":\"admin\",\"rememberPwd\":0,\"password\":\"1234567890\",\"loginType\":0}"
+ , g_sn);
+ 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;
+ }
+
+ });
+ try {
+ waitAPIReturn();
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ if (g_code != 0) {
+ System.out.println("ViplexCore Demo nvLoginAsync(鐧诲綍) 澶辫触锛�");
+ System.out.println("閿欒鐮�:" + g_code);
+ return statusVO;
+ }
+ //鐧婚檰鎴愬姛涔嬪悗瀛樺叆map淇濆瓨鐧诲綍淇℃伅
+ loginInfo.put(sn, instance);
+ return statusVO;
+ }
+
+ /**
+ * 鍒涘缓鑺傜洰
+ */
+ public int createPro(String sn) throws InterruptedException {
+ ViplexCore instance = (ViplexCore) loginInfo.get(sn);
+
+ System.out.println("ViplexCore Demo nvCreateProgramAsync(鍒涘缓鑺傜洰) begin... ");
+// instance.nvCreateProgramAsync(createProgram, callBack);
+ waitAPIReturn();
+
+ return 1;
+ }
+
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/vo/StatusVO.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/vo/StatusVO.java
new file mode 100644
index 0000000..be27490
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/vo/StatusVO.java
@@ -0,0 +1,16 @@
+package com.sandu.ximon.admin.newnova.vo;
+
+import lombok.Data;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/11/9
+ */
+@Data
+public class StatusVO {
+
+ private int statusCode;
+
+ private String statusData;
+
+}
diff --git a/ximon-admin/src/main/resources/application-local.yml b/ximon-admin/src/main/resources/application-local.yml
index d7443c2..a56408a 100644
--- a/ximon-admin/src/main/resources/application-local.yml
+++ b/ximon-admin/src/main/resources/application-local.yml
@@ -81,3 +81,16 @@
key-id: LTAI5tPdpt5wvJyLipRijFSP
key-secret: 1ahYfCKd0yTddsUnuDLQzI23MLh4VQ
bucket-name: ximonsmart
+
+#鏂拌鐡�
+new-nova:
+ #渚濊禆鍦板潃
+ string-path: C:\Users\Administrator\Desktop\novaWin\bin\viplexcore.dll
+
+new-nova-file:
+ upload:
+ #鏂囦欢鏈嶅姟鍣ㄨ矾寰�
+ upload-root-path: E:\file\novafile
+ storage: local
+ #鏈嶅姟鍣ㄦ枃浠跺墠缂�
+ real-url: http://localhost/
\ No newline at end of file
--
Gitblit v1.9.3