using DataVAPI.Model; using DataVAPI.Tool.IOT; using DataVAPI.Tool.控制台显示; using DataVAPI.UpAndDown; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Net.Http; using System.Text; namespace DataVAPI.Controllers { /// /// 老IOT设备查询API接口 /// public class IOTDeviceController : BaseController { /// /// 根据设备名称查询设备状态 /// [HttpGet] public JsonMsg GetDeviceProperty(string name) { string st = System.Reflection.MethodBase.GetCurrentMethod().Name; try { if (string.IsNullOrEmpty(name)) { return JsonMsg.Error(null, st, "设备名称不能为空"); ; } else { //DataVModel dataV = SqlContext.Base.GetInfo(name); //return JsonMsg.OK(Tools.JsonToObjectTools(dataV?.json),st); return JsonMsg.Error(null, st, "设备名称不能为空"); ; } } catch (System.Exception ex) { return JsonMsg.Error(null, ex.Message); } } /// /// 命令设置设备属性或命令控制 /// [HttpPost] public JsonMsg SetDeviceProperty([FromBody] CommandModel usersModel) { string st = System.Reflection.MethodBase.GetCurrentMethod().Name; try { HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(Tools.JsonConvertTools(usersModel), Encoding.GetEncoding("UTF-8"), "application/json") }; if (usersModel == null || string.IsNullOrEmpty(usersModel.deviceName)) { return JsonMsg.Error(null, st, "设备名称不能为空"); ; } else { string PubTopic = "/broadcast/" + "grgpECHSL7q" + "/" + usersModel.deviceName + "_SetDevice"; ProcessServer.Instance.Publish(PubTopic, usersModel); return JsonMsg.OK(usersModel, st); } } catch (System.Exception ex) { return JsonMsg.Error(null, st, ex.Message); ; } } /// /// 命令设置设备属性或命令控制 /// /// 设备名称 /// 命令名称:0 控制类 1 设置属性 2 通知信息类 /// 命令变量:执行变量 key为属性或时间 /// 命令变量:value为值或者消息 /// [HttpGet] public JsonMsg SetDeviceProperty(string deviceName, int CommandName, string CommandKey, string CommandValue) { string st = System.Reflection.MethodBase.GetCurrentMethod().Name; try { if (string.IsNullOrEmpty(deviceName)) { return JsonMsg.Error(null, st, "设备名称不能为空"); ; } else { string PubTopic = "/broadcast/" + "grgpECHSL7q" + "/" + deviceName + "_SetDevice"; Dictionary keyValuePair = new Dictionary(); keyValuePair.Add(CommandKey, CommandValue); CommandModel command = new CommandModel() { CommandName = CommandName, deviceName = deviceName, CommandValue = keyValuePair }; ProcessServer.Instance.Publish(PubTopic, command); return JsonMsg.OK(command, st); } } catch (System.Exception ex) { return JsonMsg.Error(null, st, ex.Message); ; } } } }