43 lines
1.2 KiB
C#
43 lines
1.2 KiB
C#
using IniParser;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading;
|
|
|
|
namespace Barsik
|
|
{
|
|
class Program
|
|
{
|
|
private static RegistersContainer registers;
|
|
private static List<BaseMonitoringUnit> units;
|
|
|
|
static void Main(string[] args)
|
|
{
|
|
registers = new RegistersContainer();
|
|
var server = new ModbusServer(registers);
|
|
units = new List<BaseMonitoringUnit>();
|
|
|
|
var configParser = new FileIniDataParser();
|
|
var data = configParser.ReadFile("barsik.ini");
|
|
foreach (var section in data.Sections)
|
|
{
|
|
if (section.SectionName.StartsWith("Unit"))
|
|
{
|
|
var unit = BaseMonitoringUnit.Create(section, registers);
|
|
if (unit != null)
|
|
{
|
|
units.Add(unit);
|
|
Thread unitThread = new Thread(new ThreadStart(unit.Run));
|
|
unitThread.Start();
|
|
}
|
|
}
|
|
}
|
|
server.Port = int.Parse(data["Server"]["Port"]);
|
|
while (true)
|
|
{
|
|
server.Run();
|
|
Thread.Sleep(1000);
|
|
}
|
|
}
|
|
}
|
|
}
|