新增门监控控制

ups电池获取单位改成int
This commit is contained in:
Yutousama 2022-03-17 09:22:57 +08:00
parent 6d9ba12cf1
commit 301dc63624
5 changed files with 141 additions and 7 deletions

View File

@ -0,0 +1,84 @@
package com.yutou.nas.Controllers;
import com.alibaba.fastjson.JSONObject;
import com.yutou.nas.utils.RedisTools;
import com.yutou.nas.utils.StringUtils;
import com.yutou.nas.utils.Tools;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.Objects;
@Controller
public class DoorController {
@RequestMapping("/door/data.do")
@ResponseBody
public JSONObject getData(){
JSONObject json=new JSONObject();
String zoom=RedisTools.get("door_zoom");
if(StringUtils.isEmpty(zoom)){
zoom="0";
}
json.put("zoom", Float.parseFloat(zoom));
json.put("audio",RedisTools.get("door_audio"));
json.put("restart",RedisTools.get("door_reboot"));
json.put("af",RedisTools.get("door_af"));
File file=new File("web"+File.separator+"apk"+File.separator+"door");
if(file.exists()&& Objects.requireNonNull(file.listFiles()).length!=0){
JSONObject update=new JSONObject();
update.put("versionName", Objects.requireNonNull(file.listFiles())[0].getName().replace("app-release-","").replace(".apk",""));
update.put("url","http://192.168.31.88:803/apk/door/"+ Objects.requireNonNull(file.listFiles())[0].getName());
json.put("update",update);
}
RedisTools.remove("door_audio");
RedisTools.remove("door_reboot");
RedisTools.remove("door_af");
return json;
}
@RequestMapping("/door/zoom.do")
@ResponseBody
public String setZoom(float zoom){
if(zoom>1){
zoom=1;
}
if(zoom<0){
zoom=0;
}
RedisTools.set("door_zoom",zoom+"");
return "1";
}
@RequestMapping(value="/door/audio.do")
@ResponseBody
public String setAudio(@RequestParam("audio") MultipartFile audio){
System.out.println("收到音频");
try {
String path=Tools.createFile("audio",audio,System.currentTimeMillis()+".mp3");
RedisTools.set("door_audio","http://192.168.31.88:801/"+path);
} catch (Exception e) {
e.printStackTrace();
}
return "1";
}
@RequestMapping(value="/door/audio_url.do")
@ResponseBody
public String setAudioUrl(String url){
RedisTools.set("door_audio",url);
return "1";
}
@RequestMapping("/door/reboot.do")
@ResponseBody
public String reboot(){
RedisTools.set("door_reboot","1");
return "1";
}
@RequestMapping("/door/af.do")
@ResponseBody
public String af(){
RedisTools.set("door_af","1");
return "1";
}
}

View File

@ -12,7 +12,7 @@ import org.springframework.context.annotation.Import;
@Import(BTDownloadManager.class)
@SpringBootApplication
public class NasApplication {
public static final String version="1.2.6";
public static final String version="1.2.7";
public static void main(String[] args) {
SpringApplication.run(NasApplication.class, args);
AppData.defaultMusicPath = (String) ConfigTools.load(ConfigTools.CONFIG, "musicDir");

View File

@ -153,7 +153,7 @@ public class tools {
}
@ResponseBody
@RequestMapping("/public/getUPSPower.do")
public float getUPSPower(){
public int getUPSPower(){
return Tools.getSystemUPSPower();
}

View File

@ -1,6 +1,9 @@
package com.yutou.nas.utils;
import com.iflytek.cloud.speech.*;
import com.yutou.nas.interfaces.ObjectInterface;
import java.io.File;
public class AudioTools {
private static boolean init = false;
@ -19,6 +22,7 @@ public class AudioTools {
public static void playText(String text) {
SpeechSynthesizer mss = SpeechSynthesizer.createSynthesizer();
mss.startSpeaking(text, new SynthesizerListener() {
@Override
public void onBufferProgress(int progress, int beginPos, int endPos,
@ -26,6 +30,7 @@ public class AudioTools {
if (progress == 100) {
mss.destroy();
}
}
@Override
@ -58,9 +63,54 @@ public class AudioTools {
}
});
}
public static void getAudio(String text, ObjectInterface objectInterface){
SpeechSynthesizer mss = SpeechSynthesizer.createSynthesizer();
mss.setParameter(SpeechConstant.VOICE_NAME, "xiaoyu");
// 设置语速范围0~100
mss.setParameter(SpeechConstant.SPEED, "50");
// 设置语调范围0~100
//mss.setParameter(SpeechConstant.PITCH, "50");
// 设置音量范围0~100
mss.setParameter(SpeechConstant.VOLUME, "100");
String fileName="html" + File.separator + "audio" + File.separator + System.currentTimeMillis() + ".wav";
mss.synthesizeToUri(
text,
fileName,
new SynthesizeToUriListener() {
@Override
public void onBufferProgress(int progress) {
System.out.println("progress = " + progress);
if (progress == 100) {
objectInterface.out(fileName);
mss.destroy();
}
}
@Override
public void onSynthesizeCompleted(String s, SpeechError speechError) {
System.out.println("s = " + s);
System.out.println("speechError = " + speechError.getErrorDesc());
}
@Override
public void onEvent(int i, int i1, int i2, int i3, Object o, Object o1) {
System.out.println("i = " + i + ", i1 = " + i1 + ", i2 = " + i2 + ", i3 = " + i3 + ", o = " + o + ", o1 = " + o1);
}
}
);
}
public static void main(String[] args) {
init();
playText("小爱同学,开灯");
getAudio("警告!你已经进入监控范围,请立即离开!", new ObjectInterface() {
@Override
public void out(String data) {
super.out(data);
System.out.println(data);
File file=new File(data);
System.out.println(file.getAbsolutePath());
}
});
}
}

View File

@ -30,7 +30,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Tools {
private static float UPSPower=-1.0f;
private static int UPSPower=-1;
/**
* 设置Cookie
*
@ -249,7 +249,7 @@ public class Tools {
file.transferTo(saveFile);
fileName = URLEncoder.encode(fileName, "UTF-8");
com.yutou.nas.utils.Log.i("上传文件保存路径:" + saveFile.getAbsolutePath());
return path + fileName;
return path+"/"+ fileName;
}
public static void download(String url, DownloadInterface downloadInterface) {
@ -378,7 +378,7 @@ public class Tools {
return new SimpleDateFormat("yyyy-MM-dd").format(new Date());
}
public static float getSystemUPSPower(){
public static int getSystemUPSPower(){
AppTools.exec("/sbin/apcaccess |grep BCHARGE ", new ObjectInterface() {
@Override
public void out(String data) {
@ -387,7 +387,7 @@ public class Tools {
Matcher matcher=pattern.matcher(data);
if(matcher.find()) {
String ups = matcher.group();
UPSPower=Float.parseFloat(ups);
UPSPower= (int) Float.parseFloat(ups);
}
}
},false,true);