Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using OPCServer1.Backend.Serwer.Model;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace OPCServer1
- {
- class PlcDatapackageUpdate2
- {
- private DatabaseService databaseService;
- private PlcService plcService;
- private PlcDataPackage plcDataPackage;
- private bool isDatabaseConnected = false;
- private bool isPlcConnected = false;
- public PlcDatapackageUpdate2()
- {
- RunReadAndWriteToDbPlcDataPackageIntervalRoutine();
- databaseService = new DatabaseService();
- plcService = new PlcService();
- plcDataPackage = new PlcDataPackage{};
- }
- public void UpdateIsDbConnected(bool isConnected)
- {
- isDatabaseConnected = isConnected;
- }
- public void UpdateIsPlcConnected(bool isConnected)
- {
- isPlcConnected = isConnected;
- }
- private void RunReadAndWriteToDbPlcDataPackageIntervalRoutine()
- {
- Thread InstanceCaller = new Thread(new ThreadStart(ReadAndWriteToDbPlcDataPackageInterval));
- InstanceCaller.Start();
- }
- private void ReadAndWriteToDbPlcDataPackageInterval()
- {
- for (; ; )
- {
- if (isDatabaseConnected && isPlcConnected)
- {
- ReadAndWriteToDbPlcDataPackage();
- }
- }
- }
- private void ReadAndWriteToDbPlcDataPackage()
- {
- plcDataPackage = plcService.ReadPlcDataPackage();
- StartUpdatePlcDatapackageEverywhere();
- //Thread.Sleep(1);
- }
- private void StartUpdatePlcDatapackageEverywhere(){
- Thread watek = new Thread(new ThreadStart(UpdatePlcDatapackageEverywhere));
- watek.Start();
- }
- private void UpdatePlcDatapackageEverywhere()
- {
- Thread watek1 = new Thread(new ThreadStart(SaveToDb));
- watek1.Start();
- Thread watek2 = new Thread(new ThreadStart(UpdateDiagrams));
- watek2.Start();
- Thread watek3 = new Thread(new ThreadStart(UpdateCurrlentlyMeasurment));
- watek3.Start();
- Thread watek4 = new Thread(new ThreadStart(UpdateVisualization));
- watek4.Start();
- }
- private void SaveToDb()
- {
- databaseService.CreatePlcDataPackage(plcDataPackage);
- }
- private void UpdateDiagrams()
- {
- Diagrams.SetNewSpeedAndTimeData(plcDataPackage.Ramp_actual_speed_freq, plcDataPackage.Time.ToOADate());
- }
- private void UpdateCurrlentlyMeasurment()
- {
- CurrentlyMeasurement.CurrentlyMeasurement_LoadOne(plcDataPackage);
- }
- private void UpdateVisualization()
- {
- Visualization.SetNewPlcDataPackage(plcDataPackage);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement