Advertisement
Guest User

Untitled

a guest
Jan 21st, 2020
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. using OPCServer1.Backend.Serwer.Model;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8.  
  9. namespace OPCServer1
  10. {
  11. class PlcDatapackageUpdate2
  12. {
  13. private DatabaseService databaseService;
  14. private PlcService plcService;
  15. private PlcDataPackage plcDataPackage;
  16.  
  17. private bool isDatabaseConnected = false;
  18. private bool isPlcConnected = false;
  19.  
  20.  
  21.  
  22. public PlcDatapackageUpdate2()
  23. {
  24. RunReadAndWriteToDbPlcDataPackageIntervalRoutine();
  25. databaseService = new DatabaseService();
  26. plcService = new PlcService();
  27. plcDataPackage = new PlcDataPackage{};
  28. }
  29.  
  30. public void UpdateIsDbConnected(bool isConnected)
  31. {
  32. isDatabaseConnected = isConnected;
  33. }
  34.  
  35. public void UpdateIsPlcConnected(bool isConnected)
  36. {
  37. isPlcConnected = isConnected;
  38. }
  39.  
  40. private void RunReadAndWriteToDbPlcDataPackageIntervalRoutine()
  41. {
  42. Thread InstanceCaller = new Thread(new ThreadStart(ReadAndWriteToDbPlcDataPackageInterval));
  43. InstanceCaller.Start();
  44. }
  45.  
  46. private void ReadAndWriteToDbPlcDataPackageInterval()
  47. {
  48. for (; ; )
  49. {
  50. if (isDatabaseConnected && isPlcConnected)
  51. {
  52. ReadAndWriteToDbPlcDataPackage();
  53. }
  54.  
  55.  
  56. }
  57. }
  58.  
  59. private void ReadAndWriteToDbPlcDataPackage()
  60. {
  61. plcDataPackage = plcService.ReadPlcDataPackage();
  62.  
  63. StartUpdatePlcDatapackageEverywhere();
  64.  
  65. //Thread.Sleep(1);
  66. }
  67.  
  68. private void StartUpdatePlcDatapackageEverywhere(){
  69. Thread watek = new Thread(new ThreadStart(UpdatePlcDatapackageEverywhere));
  70. watek.Start();
  71. }
  72.  
  73. private void UpdatePlcDatapackageEverywhere()
  74. {
  75. Thread watek1 = new Thread(new ThreadStart(SaveToDb));
  76. watek1.Start();
  77. Thread watek2 = new Thread(new ThreadStart(UpdateDiagrams));
  78. watek2.Start();
  79. Thread watek3 = new Thread(new ThreadStart(UpdateCurrlentlyMeasurment));
  80. watek3.Start();
  81. Thread watek4 = new Thread(new ThreadStart(UpdateVisualization));
  82. watek4.Start();
  83. }
  84.  
  85. private void SaveToDb()
  86. {
  87. databaseService.CreatePlcDataPackage(plcDataPackage);
  88. }
  89.  
  90. private void UpdateDiagrams()
  91. {
  92. Diagrams.SetNewSpeedAndTimeData(plcDataPackage.Ramp_actual_speed_freq, plcDataPackage.Time.ToOADate());
  93. }
  94.  
  95. private void UpdateCurrlentlyMeasurment()
  96. {
  97. CurrentlyMeasurement.CurrentlyMeasurement_LoadOne(plcDataPackage);
  98. }
  99.  
  100.  
  101. private void UpdateVisualization()
  102. {
  103. Visualization.SetNewPlcDataPackage(plcDataPackage);
  104. }
  105.  
  106. }
  107.  
  108.  
  109. }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement