123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- using Shaker.Model;
- using Shaker.Models;
- using Shaker.Tools;
- using ShakerService.Tools;
- using System;
- using System.Collections.Generic;
- using System.Diagnostics.CodeAnalysis;
- using System.Linq;
- using System.Net;
- using System.Text;
- using System.Threading.Tasks;
- namespace ShakerService
- {
- internal partial class Service
- {
- [AllowNull]
- private IDeviceDiscovery.IDeviceDiscovery deviceDiscovery;
- [AllowNull]
- private IOilSourceService.IOilSourceService oilSourceService;
- private AutoResetEvent WaitTriggerLock = new AutoResetEvent(false);
- /// <summary>
- /// 程序主循环,用以退出主程序
- /// </summary>
- private CancellationTokenSource maintokenSource = new CancellationTokenSource();
-
- public void Start()
- {
- string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Plugins");
- deviceDiscovery = IModel.Tools.PluginsLoader.Defalut.Load<IDeviceDiscovery.IDeviceDiscovery>(path)?.FirstOrDefault();
- if(deviceDiscovery!=null)
- {
- deviceDiscovery.Init(Shaker.Model.Topic.DISCOVERYPORT,Topic.MulticastGroup);
- deviceDiscovery.OnDeviceFound = (args) =>
- {
- return new ResultDeviceModel()
- {
- Success = true,
- DeviceInfoModel = new DeviceInfoModel()
- {
- DeviceName = ViewModel.ServiceConfigViewModel.Instance.Name,
- SN = ViewModel.ServiceConfigViewModel.Instance.SN,
- }
- };
- };
- deviceDiscovery.Start();
- }
- oilSourceService = IModel.Tools.PluginsLoader.Defalut.Load<IOilSourceService.IOilSourceService>(path)?.FirstOrDefault();
- if (oilSourceService != null)
- {
- oilSourceService.Init(Communication.Instance.Context, Communication.Instance.DbConnection);
- oilSourceService.Start();
- }
- }
- public void Stop()
- {
- oilSourceService?.Stop();
- deviceDiscovery?.Stop();
- }
- private void MainTask()
- {
- while(!maintokenSource.IsCancellationRequested)
- {
- RTInit();
- }
- }
- private void RTInit()
- {
- }
- }
- }
|