public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ВашСервис>();
}
}
public class Program
{
public static async Task Main(string[] args)
{
var host = CreateHostBuilder(args).Build();
var service = host.Services.GetRequiredService<ВашСервис>();
service.ConnectToServer(); //Подключаемся к SignalR
host.Run();
}
}
<label class="checkbox">
<input type="checkbox">
<span class="label_text">Я переключаю чекбокс</span>
</label>
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
var json = "{\"id\":1,\"number\":42,\"bagGUID\":null}";
var data = JsonSerializer.Deserialize<Barcode>(json);
Console.WriteLine(data!.ToString()); // выведет "Barcode { Id = 1, Number = 42, BagGuid = }"
record Barcode
{
[JsonPropertyName("id")]
public int Id { get; init; }
[JsonPropertyName("number")]
public int Number { get; init; }
[JsonPropertyName("bagGUID")]
public Guid? BagGuid { get; init; }
}
system script add name="Layer7-disable" source="/ip firewall filter set [find comment="RulesF"] disabled=yes"
system script add name="Layer7-enable" source="/ip firewall filter set [find comment="RulesF"] disabled=no"
system scheduler add name="Layer7-disable" start-date=Jan/01/2019 start-time=00:10:00 interval=00:20:00 on-event="/system script run Layer7-disable"
system scheduler add name="Layer7-enable" start-date=Jan/01/2019 start-time=00:00:00 interval=00:20:00 on-event="/system script run Layer7-enable"
MainPage = new NavigationPage(new MainPage());
await Navigation.PushAsync(new Page1());
// Наследуем наш клас от SerialPort для более красивого кода
public class MySerialPort : SerialPort
{
private const int DataSize = 54; // я так и не понял, какой размер данных нужен. Укажите правильное число в байтах
private readonly byte[] _bufer = new byte[DataSize];
private int _stepIndex;
private bool _startRead;
public MySerialPort(string port)
: base()
{
// все папаметры вы должны указать в соответствии с вашим устройством
//base.PortName = COM1;
base.BaudRate = 115200;
base.DataBits = 8;
base.StopBits = StopBits.Two;
base.Parity = Parity.None;
base.ReadTimeout = 1000;
// тут подписываемся на событие прихода данных в порт
// для вашей задачи это должно подойт идеально
base.DataReceived += SerialPort_DataReceived;
}
// открываем порт передав туда имя
public void Open(string portName)
{
if (base.IsOpen)
{
base.Close();
}
base.PortName = portName;
base.Open();
}
// эта функция вызвется каждый раз, когда в порт чтото будет передано от вашего устройства
void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
var port = (SerialPort)sender;
try
{
// узнаем сколько байт пришло
int buferSize = port.BytesToRead;
for (int i = 0; i < buferSize; ++i)
{
// читаем по одному байту
byte bt = (byte)port.ReadByte();
// если встретили начало кадра (0xFF) - начинаем запись в _bufer
if (0xFF == bt)
{
_stepIndex = 0;
_startRead = true;
// раскоментировать если надо сохранять этот байт
//_bufer[_stepIndex] = bt;
//++_stepIndex;
}
// дописываем в буфер все остальное
if (_startRead)
{
_bufer[_stepIndex] = bt;
++_stepIndex;
}
// когда буфер наполнлся данными
if (_stepIndex == DataSize && _startRead)
{
// по идее тут должны быть все ваши данные.
// .. что то делаем ...
// var item = _bufer[7];
_startRead = false;
}
}
}
catch {}
}
}
var port = new MySerialPort();
port.Open("COM5");
var myRegex = new Regex(@"4,|, 4$|^ 4$", RegexOptions.Multiline);
Есть просто номер, который соответствует id в таблице Скана.
var detailsViewModel = db.employees.Include(ep => ep.Position)
.Where(j => j.Id == id)
.Select(emp => new EmploeeViewModel
{
Name = emp.Name,
Position = emp.Position,
Сontract = db.Contract.FirstOrDefault(c => c.Id == emp.ContractId)
}.FirstOrDefault();
return View(detailsViewModel);