using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using WIDESEA_SerialPortService; namespace WIDESEAWCS_Server.Controllers.SerialPortTest { [Route("api/[controller]")] [ApiController] public class SerialPortTestController : ControllerBase { //引用服务层 private readonly SerialPortTestService _serialPortService; //添加构造函数 public SerialPortTestController(SerialPortTestService serialPortService) { _serialPortService = serialPortService; } // 打开串口并开始持续发送信号 [HttpPost("open")] public IActionResult OpenSerialPort() { if (_serialPortService.GetSerialPortStatus()) { return Ok("串口已打开"); } _serialPortService.OpenSerialPort(); return Ok("串口打开成功,开始发送信号"); } // 关闭串口并停止发送信号 [HttpPost("close")] public IActionResult CloseSerialPort() { if (!_serialPortService.GetSerialPortStatus()) { return Ok("串口已关闭"); } _serialPortService.CloseSerialPort(); return Ok("串口关闭成功,停止发送信号"); } // 发送数据一次 [HttpPost("send")] public IActionResult SendData([FromBody] string data) { if (!_serialPortService.GetSerialPortStatus()) { return BadRequest("串口未打开"); } _serialPortService.SendData(data); return Ok("数据发送成功"); } // 获取串口状态 [HttpGet("status")] public IActionResult GetSerialPortStatus() { return Ok(new { IsOpen = _serialPortService.GetSerialPortStatus() }); } // 获取接收到的所有数据 [HttpGet("receivedData")] public IActionResult GetReceivedData() { return Ok(_serialPortService.GetReceivedData()); } } }