diff --git a/CyberSystem/ApiServer/ApiServer.csproj b/CyberSystem/ApiServer/ApiServer.csproj index 8768216..c50afcc 100644 --- a/CyberSystem/ApiServer/ApiServer.csproj +++ b/CyberSystem/ApiServer/ApiServer.csproj @@ -9,6 +9,8 @@ + + diff --git a/CyberSystem/ApiServer/Controllers/PostContoller.cs b/CyberSystem/ApiServer/Controllers/PostContoller.cs index 25b31a3..d7a0ed5 100644 --- a/CyberSystem/ApiServer/Controllers/PostContoller.cs +++ b/CyberSystem/ApiServer/Controllers/PostContoller.cs @@ -17,7 +17,7 @@ namespace ApiServer.Controllers } [HttpGet] - [Route("adminpost")] + [Route("admin")] public string GetAdmin() { return "Hello, Admin! It's your POST!!!"; diff --git a/CyberSystem/ApiServer/Controllers/StateController.cs b/CyberSystem/ApiServer/Controllers/StateController.cs new file mode 100644 index 0000000..8af7548 --- /dev/null +++ b/CyberSystem/ApiServer/Controllers/StateController.cs @@ -0,0 +1,15 @@ +using Microsoft.AspNetCore.Mvc; + +namespace ApiServer.Controllers +{ + [ApiController] + [Route("api/state")] + public class StateContoller + { + [HttpGet] + public byte GetActualState() + { + return GetActualStateFromCom.CurrentState; + } + } +} diff --git a/CyberSystem/ApiServer/GetActualStateFromCom.cs b/CyberSystem/ApiServer/GetActualStateFromCom.cs new file mode 100644 index 0000000..de2274b --- /dev/null +++ b/CyberSystem/ApiServer/GetActualStateFromCom.cs @@ -0,0 +1,48 @@ +using System; +using System.IO.Ports; +using System.Threading; +using System.Threading.Tasks; + + +namespace ApiServer +{ + public class GetActualStateFromCom : IHostedService, IDisposable + { + public static byte CurrentState { get; set; } + + static SerialPort _serialPort; + + static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e) + { + SerialPort serialPort = (SerialPort)sender; + string receivedData = serialPort.ReadExisting(); + + Console.WriteLine("Полученные данные: " + receivedData); + CurrentState = Convert.ToByte(receivedData); + } + + public Task StartAsync(CancellationToken cancellationToken) + { + string portName = "COM3"; + int baudRate = 9600; + + _serialPort = new SerialPort(portName, baudRate); + _serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler); + _serialPort.Open(); + + Console.WriteLine("Чтение данных с порта: " + portName); + + return Task.CompletedTask; + } + + public Task StopAsync(CancellationToken cancellationToken) + { + return Task.CompletedTask; + } + + public void Dispose() + { + _serialPort.Dispose(); + } + } +} diff --git a/CyberSystem/ApiServer/Program.cs b/CyberSystem/ApiServer/Program.cs index 0b40fc1..8d6f988 100644 --- a/CyberSystem/ApiServer/Program.cs +++ b/CyberSystem/ApiServer/Program.cs @@ -1,3 +1,5 @@ +using ApiServer; + var builder = WebApplication.CreateBuilder(args); // Add services to the container. @@ -5,15 +7,16 @@ var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); -//builder.Services.AddSwaggerGen(); +builder.Services.AddSwaggerGen(); +builder.Services.AddHostedService(); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { - //app.UseSwagger(); - //app.UseSwaggerUI(); + app.UseSwagger(); + app.UseSwaggerUI(); } app.UseAuthorization(); @@ -21,3 +24,4 @@ app.UseAuthorization(); app.MapControllers(); app.Run(); + diff --git a/CyberSystem/ApiServer/Properties/launchSettings.json b/CyberSystem/ApiServer/Properties/launchSettings.json index e1ba3c5..99277b1 100644 --- a/CyberSystem/ApiServer/Properties/launchSettings.json +++ b/CyberSystem/ApiServer/Properties/launchSettings.json @@ -14,7 +14,7 @@ "dotnetRunMessages": true, "launchBrowser": true, "launchUrl": "swagger", - "applicationUrl": "http://localhost:12345", + "applicationUrl": "http://localhost:12344", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/project1/project1.ino b/project1/project1.ino new file mode 100644 index 0000000..afb393a --- /dev/null +++ b/project1/project1.ino @@ -0,0 +1,20 @@ +const int digitalPin = 13; + +void setup() { + Serial.begin(9600); +} + +void loop() { + const int value = digitalRead(digitalPin); + + if (value == HIGH) + { + Serial.print(1); + } + else + { + Serial.print(0); + } + + delay(500); +}