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());
|
}
|
}
|
}
|