-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMainPanel.vb
More file actions
1782 lines (1677 loc) · 72.9 KB
/
MainPanel.vb
File metadata and controls
1782 lines (1677 loc) · 72.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Public Class MainPanel
Private theCMRI As InterfaceCMRI
Private Block1, Block2, Block3, Block4, Block5, Block6, Block7, Block8, Block9, Block10 As Integer
Private Signal4Selected As PictureBox
Private Signal8Selected As PictureBox
Private Signal10Selected As PictureBox
Private Signal12Selected As PictureBox
Private Signal24Selected As PictureBox
Private Signal26Selected As PictureBox
Private Sig4Dir, Sig8Dir, Sig10Dir, Sig12Dir, Sig24Dir, Sig26Dir As Integer
Private Turnout3SavedPic As New PictureBox
Private Turnout7SavedPic As New PictureBox
Private Turnout9SavedDownPic As New PictureBox
Private Turnout9SavedUpPic As New PictureBox
Private Turnout11SavedPic As New PictureBox
Private Turnout15SavedPic As New PictureBox
Private Turnout23SavedDownPic As New PictureBox
Private Turnout23SavedUpPic As New PictureBox
Private Turnout25SavedPic As New PictureBox
Function CheckExit() As Boolean
'Dim response As MsgBoxResult
Dim loopRunning As Boolean
loopRunning = timerMainLoop.Enabled
timerMainLoop.Enabled = False
'response = MsgBox("Are you sure you want to exit?", MsgBoxStyle.YesNo, "Exit the CTC Application")
'If response = MsgBoxResult.Yes Then
End
'End If
timerMainLoop.Enabled = loopRunning
Return True
End Function
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
If CheckExit() Then
End If
End Sub
Private Sub RunWithCMRISimulatorToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RunWithCMRISimulatorToolStripMenuItem.Click
theCMRI = New TestCMRI()
Call InitializeRailroad(theCMRI)
Call DoOneControlCycle()
timerMainLoop.Interval = 10
timerMainLoop.Enabled = True
End Sub
Private Sub RunWithCMRIToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RunWithCMRIToolStripMenuItem.Click
theCMRI = New CMRI()
Call InitializeRailroad(theCMRI)
Me.StopRunToolStripMenuItem.Enabled = True
Me.ResumeRunToolStripMenuItem.Enabled = False
Call DoOneControlCycle()
timerMainLoop.Interval = 100
timerMainLoop.Enabled = True
End Sub
Private Sub StopRunToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles StopRunToolStripMenuItem.Click
timerMainLoop.Enabled = False
Me.ResumeRunToolStripMenuItem.Enabled = True
Me.StopRunToolStripMenuItem.Enabled = False
End Sub
Private Sub timerMainLoop_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles timerMainLoop.Tick
'Don't allow the loop to run again, while we are doing the railroad.
timerMainLoop.Enabled = False
Call DoOneControlCycle()
timerMainLoop.Enabled = True
End Sub
Private Sub MainPanel_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
e.Cancel = CheckExit()
End Sub
Private Sub ResumeRunToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ResumeRunToolStripMenuItem.Click
timerMainLoop.Enabled = True
Me.ResumeRunToolStripMenuItem.Enabled = False
Me.StopRunToolStripMenuItem.Enabled = True
End Sub
Private Sub RepairSignalsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RepairSignalsToolStripMenuItem.Click
DlgSigMaint.ShowDialog()
End Sub
Private Sub SystemParametersToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SystemParametersToolStripMenuItem.Click
If DlgSystemParams.ShowDialog() = Windows.Forms.DialogResult.OK Then
CCDL = DlgSystemParams.txtCCDL.Text 'Control Code transmission delay (5 seconds)
ICDL = DlgSystemParams.txtICDL.Text 'Indication Code transmission delay (10 seconds)
SMDL = DlgSystemParams.txtSMDL.Text 'Switch motor transition delay (12 seconds)
RTDL = DlgSystemParams.txtRTDL.Text 'Signal running time delay (60 seconds)
'LKDL = 90 'Lock release time delay (90 seconds)
End If
End Sub
Private Sub SignalTestToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SignalTestToolStripMenuItem.Click
SignalTest.Show()
End Sub
Private Sub LampTestToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LampTestToolStripMenuItem.Click
' Toggle LampTest - CTC WriteRailroad logic will use LAMPTEST to turn on all lamps.
If LAMPTEST Then
LAMPTEST = False
Else
LAMPTEST = True
End If
LampTestToolStripMenuItem.Checked = LAMPTEST
End Sub
Private Sub MainPanel_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Sub UpdateFormObjects()
UpdateBlocksFromRead() ' get block occupied/clear from C/MRI nodes
UpdateBlockOccupancyLines() ' set occupied/clear/routed based on TLVnn and FSnn
UpdateSignals() ' make signals clear/stop/running time
UpdateTurnouts()
UpdateTrafficSticks()
UpdateFlash()
UpdateClock()
UpdateTrainIDs()
End Sub
Private Sub UpdateClock()
' redraw clock
lblClock.Text = FormatFastClock()
End Sub
Private Sub UpdateTrainIDs()
Dim scratch As String
If CDEIND = 1 Then
Exit Sub
End If
scratch = TrainID(1) + Chr(13) + LocoID(1)
'If FS1 = EAST Then scratch = "< " + TrainID(1) + Chr(13) + LocoID(1)
'If FS1 = WEST Then scratch = TrainID(1) + " >" + Chr(13) + LocoID(1)
lblBlock1.Text = scratch
scratch = TrainID(2) + Chr(13) + LocoID(2)
'If FS2 = EAST Then scratch = "< " + TrainID(2) + Chr(13) + LocoID(2)
'If FS2 = WEST Then scratch = TrainID(2) + " >" + Chr(13) + LocoID(2)
lblBlock2.Text = scratch
scratch = TrainID(3) + Chr(13) + LocoID(3)
'If FS3 = EAST Then scratch = "< " + TrainID(3) + Chr(13) + LocoID(3)
'If FS3 = WEST Then scratch = TrainID(3) + " >" + Chr(13) + LocoID(3)
lblBlock3.Text = scratch
scratch = TrainID(4) + Chr(13) + LocoID(4)
'If FS4 = EAST Then scratch = "< " + TrainID(4) + Chr(13) + LocoID(4)
'If FS4 = WEST Then scratch = TrainID(4) + " >" + Chr(13) + LocoID(4)
lblBlock4.Text = scratch
scratch = TrainID(5) + Chr(13) + LocoID(5)
'If FS5 = EAST Then scratch = "< " + TrainID(5) + Chr(13) + LocoID(5)
'If FS5 = WEST Then scratch = TrainID(5) + " >" + Chr(13) + LocoID(5)
lblBlock5.Text = scratch
lblBlock5A.Text = scratch
scratch = TrainID(6) + Chr(13) + LocoID(6)
'If FS6 = EAST Then scratch = "< " + TrainID(6) + Chr(13) + LocoID(6)
'If FS6 = WEST Then scratch = TrainID(6) + " >" + Chr(13) + LocoID(6)
lblBlock6.Text = scratch
lblBlock6A.Text = scratch
scratch = TrainID(7) + Chr(13) + LocoID(7)
'If FS7 = EAST Then scratch = "< " + TrainID(7) + Chr(13) + LocoID(7)
'If FS7 = WEST Then scratch = TrainID(7) + " >" + Chr(13) + LocoID(7)
lblBlock7.Text = scratch
scratch = TrainID(8) + Chr(13) + LocoID(8)
'If FS8 = EAST Then scratch = "< " + TrainID(8) + Chr(13) + LocoID(8)
'If FS8 = WEST Then scratch = TrainID(8) + " >" + Chr(13) + LocoID(8)
lblBlock8.Text = scratch
scratch = TrainID(9) + Chr(13) + LocoID(9)
'If FS9 = EAST Then scratch = "< " + TrainID(9) + Chr(13) + LocoID(9)
'If FS9 = WEST Then scratch = TrainID(9) + " >" + Chr(13) + LocoID(9)
lblBlock9.Text = scratch
scratch = TrainID(10) + Chr(13) + LocoID(10)
'If FS10 = EAST Then scratch = "< " + TrainID(10) + Chr(13) + LocoID(10)
'If FS10 = WEST Then scratch = TrainID(10) + " >" + Chr(13) + LocoID(10)
lblBlock10.Text = scratch
scratch = TrainID(11) + Chr(13) + LocoID(11)
lblBlock11.Text = scratch
scratch = TrainID(12) + Chr(13) + LocoID(12)
lblBlock12.Text = scratch
scratch = TrainID(13) + Chr(13) + LocoID(13)
lblBlock13.Text = scratch
scratch = TrainID(14) + Chr(13) + LocoID(14)
lblBlock14.Text = scratch
'Dim labelRef As Label
'For n = 1 To 15
'labelRef = Me.Controls("lblBlock" & n)
'labelRef.Text = TrainID(n) + Chr(13) + LocoID(n)
'Next
End Sub
Sub UpdateFlash()
If SGL4LTK = DARKLT Then
If Not IsNothing(Signal4Selected) Then
If FLASH Then
If Sig4Dir = LEFTLT Then
Signal4Selected.Image = KCSubCTCV3.My.Resources.WhiteLeft
Else
Signal4Selected.Image = KCSubCTCV3.My.Resources.WhiteRight
End If
Else
If Sig4Dir = LEFTLT Then
Signal4Selected.Image = KCSubCTCV3.My.Resources.GreenLeft
Else
Signal4Selected.Image = KCSubCTCV3.My.Resources.GreenRight
End If
End If
End If
End If
If SGL8LTK = DARKLT Then
If Not IsNothing(Signal8Selected) Then
If FLASH Then
If Sig8Dir = LEFTLT Then
Signal8Selected.Image = KCSubCTCV3.My.Resources.WhiteLeft
Else
Signal8Selected.Image = KCSubCTCV3.My.Resources.WhiteRight
End If
Else
If Sig8Dir = LEFTLT Then
Signal8Selected.Image = KCSubCTCV3.My.Resources.GreenLeft
Else
Signal8Selected.Image = KCSubCTCV3.My.Resources.GreenRight
End If
End If
End If
End If
If SGL10LTK = DARKLT Then
If Not IsNothing(Signal10Selected) Then
If FLASH Then
If Sig10Dir = LEFTLT Then
Signal10Selected.Image = KCSubCTCV3.My.Resources.WhiteLeft
Else
Signal10Selected.Image = KCSubCTCV3.My.Resources.WhiteRight
End If
Else
If Sig10Dir = LEFTLT Then
Signal10Selected.Image = KCSubCTCV3.My.Resources.GreenLeft
Else
Signal10Selected.Image = KCSubCTCV3.My.Resources.GreenRight
End If
End If
End If
End If
If SGL12LTK = DARKLT Then
If Not IsNothing(Signal12Selected) Then
If FLASH Then
If Sig12Dir = LEFTLT Then
Signal12Selected.Image = KCSubCTCV3.My.Resources.WhiteLeft
Else
Signal12Selected.Image = KCSubCTCV3.My.Resources.WhiteRight
End If
Else
If Sig12Dir = LEFTLT Then
Signal12Selected.Image = KCSubCTCV3.My.Resources.GreenLeft
Else
Signal12Selected.Image = KCSubCTCV3.My.Resources.GreenRight
End If
End If
End If
End If
If SGL24LTK = DARKLT Then
If Not IsNothing(Signal24Selected) Then
If FLASH Then
If Sig24Dir = LEFTLT Then
Signal24Selected.Image = KCSubCTCV3.My.Resources.WhiteLeft
Else
Signal24Selected.Image = KCSubCTCV3.My.Resources.WhiteRight
End If
Else
If Sig24Dir = LEFTLT Then
Signal24Selected.Image = KCSubCTCV3.My.Resources.GreenLeft
Else
Signal24Selected.Image = KCSubCTCV3.My.Resources.GreenRight
End If
End If
End If
End If
If SGL26LTK = DARKLT Then
If Not IsNothing(Signal26Selected) Then
If FLASH Then
If Sig26Dir = LEFTLT Then
Signal26Selected.Image = KCSubCTCV3.My.Resources.WhiteLeft
Else
Signal26Selected.Image = KCSubCTCV3.My.Resources.WhiteRight
End If
Else
If Sig26Dir = LEFTLT Then
Signal26Selected.Image = KCSubCTCV3.My.Resources.GreenLeft
Else
Signal26Selected.Image = KCSubCTCV3.My.Resources.GreenRight
End If
End If
End If
End If
' Flash turnouts that are out of correspondence.
If SWL3LTK = DARKLT Then
If FLASH Then
picTurnout3.Image = KCSubCTCV3.My.Resources.TurnoutLeftDownBlank
Else
picTurnout3.Image = Turnout3SavedPic.Image
End If
End If
If SWL7LTK = DARKLT Then
If FLASH Then
picTurnout7.Image = KCSubCTCV3.My.Resources.TurnoutRightUpBlank
Else
picTurnout7.Image = Turnout7SavedPic.Image
End If
End If
If SWL9LTK = DARKLT Then
If FLASH Then
picTurnout9Down.Image = KCSubCTCV3.My.Resources.TurnoutLeftDownBlank
picTurnout9Up.Image = KCSubCTCV3.My.Resources.TurnoutLeftUpBlank
Else
picTurnout9Down.Image = Turnout9SavedDownPic.Image
picTurnout9Up.Image = Turnout9SavedUpPic.Image
End If
End If
If SWL11LTK = DARKLT Then
If FLASH Then
picTurnout11.Image = KCSubCTCV3.My.Resources.TurnoutLeftDownBlank
Else
picTurnout11.Image = Turnout11SavedPic.Image
End If
End If
If SWL15LTK = DARKLT Then
If FLASH Then
picTurnout15.Image = KCSubCTCV3.My.Resources.TurnoutLeftUpBlank
Else
picTurnout15.Image = Turnout15SavedPic.Image
End If
End If
If SWL23LTK = DARKLT Then
If FLASH Then
picTurnout23Down.Image = KCSubCTCV3.My.Resources.TurnoutRightDownBlank
picTurnout23Up.Image = KCSubCTCV3.My.Resources.TurnoutRightUpBlank
Else
picTurnout23Down.Image = Turnout23SavedDownPic.Image
picTurnout23Up.Image = Turnout23SavedUpPic.Image
End If
End If
If SWL25LTK = DARKLT Then
If FLASH Then
picLock25Down.Image = KCSubCTCV3.My.Resources.TurnoutRightDownBlank
Else
picLock25Down.Image = Turnout25SavedPic.Image
End If
End If
End Sub
Sub UpdateTurnouts()
If CDEIND = 1 Then
Exit Sub
End If
UpdateTurnout3()
UpdateTurnout7()
UpdateTurnout9()
UpdateTurnout11()
UpdateTurnout15()
UpdateTurnout17()
UpdateTurnout19()
UpdateTurnout23()
UpdateTurnout25()
End Sub
Sub UpdateTurnout3()
If SWL3LTK = NORLT Then
Turnout3SavedPic.Image = KCSubCTCV3.My.Resources.TurnoutLeftDownNormal
Select Case Block9
Case CLR
picTurnout3.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftDownNormal
Case OCC
picTurnout3.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftDownNormalRed
Case RTD
picTurnout3.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftDownNormalGreen
End Select
Else
Turnout3SavedPic.Image = KCSubCTCV3.My.Resources.TurnoutLeftDownReverse
Select Case Block9
Case CLR
picTurnout3.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftDownReverse
Case OCC
picTurnout3.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftDownReverseRed
Case RTD
picTurnout3.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftDownReverseGreen
End Select
End If
End Sub
Sub UpdateTurnout7()
Select Case SWL7LTK
Case NORLT
Turnout7SavedPic.Image = KCSubCTCV3.My.Resources.TurnoutRightUpNormal
Select Case Block7
Case CLR
picTurnout7.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightUpNormal
Case OCC
If SWL9LTK = NORLT Then
picTurnout7.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightUpNormalRed
End If
Case RTD
If SWL9LTK = NORLT Then
picTurnout7.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightUpNormalGreen
End If
End Select
Case REVLT
Turnout7SavedPic.Image = KCSubCTCV3.My.Resources.TurnoutRightUpReverse
Select Case Block7
Case CLR
picTurnout7.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightUpReverse
Case OCC
If SWL9LTK = NORLT Then
picTurnout7.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightUpReverseRed
End If
Case RTD
If SWL9LTK = NORLT Then
picTurnout7.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightUpReverseGreen
End If
End Select
End Select
End Sub
Sub UpdateTurnout9()
Select Case SWL9LTK
Case NORLT
Turnout9SavedDownPic.Image = KCSubCTCV3.My.Resources.TurnoutLeftDownNormal
Turnout9SavedUpPic.Image = KCSubCTCV3.My.Resources.TurnoutLeftUpNormal
Select Case Block7
Case CLR
picTurnout9Down.Image = Global.KCSubCTCV3.My.Resources.TurnoutLeftDownNormal
Case OCC
picTurnout9Down.Image = Global.KCSubCTCV3.My.Resources.TurnoutLeftDownNormalRed
Case RTD
picTurnout9Down.Image = Global.KCSubCTCV3.My.Resources.TurnoutLeftDownNormalGreen
End Select
Select Case Block8
Case CLR
picTurnout9Up.Image = Global.KCSubCTCV3.My.Resources.TurnoutLeftUpNormal
Case OCC
If SWL11LTK = NORLT Then
picTurnout9Up.Image = Global.KCSubCTCV3.My.Resources.TurnoutLeftUpNormalRed
End If
Case RTD
If SWL11LTK = NORLT Then
picTurnout9Up.Image = Global.KCSubCTCV3.My.Resources.TurnoutLeftUpNormalGreen
End If
End Select
Case REVLT
Turnout9SavedDownPic.Image = KCSubCTCV3.My.Resources.TurnoutLeftDownReverse
Turnout9SavedUpPic.Image = KCSubCTCV3.My.Resources.TurnoutLeftUpReverse
Select Case Block7
Case CLR
picTurnout9Down.Image = Global.KCSubCTCV3.My.Resources.TurnoutLeftDownReverse
Case OCC
picTurnout9Down.Image = Global.KCSubCTCV3.My.Resources.TurnoutLeftDownReverseRed
Case RTD
picTurnout9Down.Image = Global.KCSubCTCV3.My.Resources.TurnoutLeftDownReverseGreen
End Select
Select Case Block8
Case CLR
picTurnout9Up.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftUpReverse
Case OCC
picTurnout9Up.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftUpReverseRed
Case RTD
picTurnout9Up.Image = Global.KCSubCTCV3.My.Resources.TurnoutLeftUpReverseGreen
End Select
End Select
End Sub
Sub UpdateTurnout11()
Select Case SWL11LTK
Case NORLT
Turnout11SavedPic.Image = KCSubCTCV3.My.Resources.TurnoutLeftDownNormal
Select Case Block8
Case CLR
picTurnout11.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftDownNormal
Case OCC
If SWL9LTK = NORLT Then
picTurnout11.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftDownNormalRed
End If
Case RTD
If SWL9LTK = NORLT Then
picTurnout11.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftDownNormalGreen
End If
End Select
Case REVLT
Turnout11SavedPic.Image = KCSubCTCV3.My.Resources.TurnoutLeftDownReverse
Select Case Block8
Case CLR
picTurnout11.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftDownReverse
Case OCC
If SWL9LTK = NORLT Then
picTurnout11.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftDownReverseRed
End If
Case RTD
If SWL9LTK = NORLT Then
picTurnout11.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftDownReverseGreen
End If
End Select
End Select
End Sub
Sub UpdateTurnout15()
Select Case SWL15LTK
Case NORLT
Turnout15SavedPic.Image = KCSubCTCV3.My.Resources.TurnoutLeftUpNormal
Select Case Block7
Case CLR
picTurnout15.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftUpNormal
Case OCC
picTurnout15.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftUpNormalRed
Case RTD
picTurnout15.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftUpNormalGreen
End Select
Case REVLT
Turnout15SavedPic.Image = KCSubCTCV3.My.Resources.TurnoutLeftUpReverse
Select Case Block7
Case CLR
picTurnout15.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftUpReverse
Case OCC
picTurnout15.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftUpReverseRed
Case RTD
picTurnout15.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutLeftUpReverseGreen
End Select
End Select
End Sub
Sub UpdateTurnout17()
picLock17.Image = Global.KCSubCTCV3.My.Resources.LockLeftUpLocked
If Block7 = OCC And SWL15LTK = REVLT Then
picLock17.Image = Global.KCSubCTCV3.My.Resources.LockLeftUpOccupied
End If
If Block7 = RTD And SWL15LTK = REVLT Then
picLock17.Image = Global.KCSubCTCV3.My.Resources.LockLeftUpGreen
End If
If UL17 = UNLOCKED Then
picLock17.Image = Global.KCSubCTCV3.My.Resources.LockLeftUpUnlocked
End If
End Sub
Sub UpdateTurnout19()
picLock19.Image = KCSubCTCV3.My.Resources.LockLeftDownLocked
If Block8 = OCC And SWL9LTK = NORLT Then
picLock19.Image = KCSubCTCV3.My.Resources.LockLeftDownOccupied
End If
If Block8 = RTD And SWL9LTK = NORLT Then
picLock19.Image = KCSubCTCV3.My.Resources.LockLeftDownGreen
End If
If UL19 = UNLOCKED Then
picLock19.Image = KCSubCTCV3.My.Resources.LockLeftDownUnlocked
End If
End Sub
Sub UpdateTurnout23()
Select Case SWL23LTK
Case NORLT
Turnout23SavedUpPic.Image = KCSubCTCV3.My.Resources.TurnoutRightUpNormal
Turnout23SavedDownPic.Image = KCSubCTCV3.My.Resources.TurnoutRightDownNormal
Select Case Block3
Case CLR
picTurnout23Down.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightDownNormal
Case OCC
picTurnout23Down.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightDownNormalRed
Case RTD
picTurnout23Down.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightDownNormalGreen
End Select
Select Case Block4
Case CLR
picTurnout23Up.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightUpNormal
Case OCC
If SWL25LTK = NORLT Then
picTurnout23Up.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightUpNormalRed
End If
Case RTD
If SWL25LTK = NORLT Then
picTurnout23Up.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightUpNormalGreen
End If
End Select
Case REVLT
Turnout23SavedDownPic.Image = KCSubCTCV3.My.Resources.TurnoutRightDownReverse
Turnout23SavedUpPic.Image = KCSubCTCV3.My.Resources.TurnoutRightUpReverse
Select Case Block3
Case CLR
picTurnout23Down.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightDownReverse
Case OCC
picTurnout23Down.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightDownReverseRed
Case RTD
picTurnout23Down.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightDownReverseGreen
End Select
Select Case Block4
Case CLR
picTurnout23Up.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightUpReverse
Case OCC
picTurnout23Up.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightUpReverseRed
Case RTD
picTurnout23Up.Image = Global.KCSubCTCV3.My.Resources.Resources.TurnoutRightUpReverseGreen
End Select
End Select
End Sub
Sub UpdateTurnout25()
picLock25Down.Image = KCSubCTCV3.My.Resources.TurnoutRightDownNormal
Turnout25SavedPic.Image = KCSubCTCV3.My.Resources.TurnoutRightDownNormal
picLock25Up.Image = KCSubCTCV3.My.Resources.LockRightUpLocked
Select Case Block4
Case CLR
If SWL25LTK = LNOR Then
picLock25Down.Image = KCSubCTCV3.My.Resources.TurnoutRightDownNormal
End If
If SWL25LTK = LREV Then
picLock25Down.Image = KCSubCTCV3.My.Resources.TurnoutRightDownReverse
End If
Case RTD And TLV26 <> NDT
If SWL25LTK = LNOR And SWL23LTK = LNOR Then
picLock25Down.Image = KCSubCTCV3.My.Resources.TurnoutRightDownNormalGreen
End If
If SWL25LTK = LREV Then
picLock25Down.Image = KCSubCTCV3.My.Resources.TurnoutRightDownReverseGreen
End If
Case OCC
If SWL25LTK = LNOR And SWL23LTK = LNOR Then
picLock25Down.Image = KCSubCTCV3.My.Resources.TurnoutRightDownNormalRed
End If
If SWL25LTK = LREV Then
picLock25Down.Image = KCSubCTCV3.My.Resources.TurnoutRightDownReverseRed
End If
If SWL23LTK = LREV Then
picTurnout23Up.Image = KCSubCTCV3.My.Resources.TurnoutRightUpReverseRed
End If
End Select
If SWL25LTK = LREV Then
'Turnout25SavedPic.Image = KCSubCTCV3.My.Resources.TurnoutRightDownReverse
'picLock25Down.Image = KCSubCTCV3.My.Resources.TurnoutRightDownReverse
picLock25Up.Image = KCSubCTCV3.My.Resources.LockRightUpUnlocked
End If
End Sub
Sub UpdateBlocksFromRead()
Select Case CDEIND
Case 0
lineControl.BorderColor = Color.White
lineIndicate.BorderColor = Color.White
Case 1
lineIndicate.BorderColor = Color.Red
lineControl.BorderColor = Color.White
Case 2
lineControl.BorderColor = Color.Red
lineIndicate.BorderColor = Color.White
End Select
' Follow occupancy detectors
' If doing an indication code, don't process office functions.
If CDEIND = 1 Then
Exit Sub
End If
Block1 = BK1
Block2 = BK2
Block3 = BK3
Block4 = BK4
Block5 = BK5
Block6 = BK6
Block7 = BK7
Block8 = BK8
Block9 = BK9
Block10 = BK10
End Sub
Sub UpdateSignals()
If CDEIND = 1 Then
Exit Sub
End If
UpdateSignal4()
UpdateSignal8()
UpdateSignal10()
UpdateSignal12()
UpdateSignal24()
UpdateSignal26()
End Sub
Sub UpdateSignal4()
Select Case SGL4LTK 'SGL4LT = RIGHTLT
Case LEFTLT
Signal4Selected = picSig4L
Sig4Dir = LEFTLT
picSig4RA.Image = KCSubCTCV3.My.Resources.RedRight
picSig4RB.Image = KCSubCTCV3.My.Resources.RedRight
picSig4L.Image = KCSubCTCV3.My.Resources.GreenLeft
Case RIGHTLT
Sig4Dir = RIGHTLT
If SWL3LTK = NORLT Then
Signal4Selected = picSig4RA
picSig4RA.Image = KCSubCTCV3.My.Resources.GreenRight
picSig4RB.Image = KCSubCTCV3.My.Resources.RedRight
picSig4L.Image = KCSubCTCV3.My.Resources.RedLeft
Else
Signal4Selected = picSig4RB
picSig4RA.Image = KCSubCTCV3.My.Resources.RedRight
picSig4RB.Image = KCSubCTCV3.My.Resources.GreenRight
picSig4L.Image = KCSubCTCV3.My.Resources.RedLeft
End If
Case STOPLT
picSig4RA.Image = KCSubCTCV3.My.Resources.RedRight
picSig4RB.Image = KCSubCTCV3.My.Resources.RedRight
picSig4L.Image = KCSubCTCV3.My.Resources.RedLeft
Signal4Selected = Nothing
Case DARKLT
' see if running time
End Select
End Sub
Sub UpdateSignal8()
Select Case SGL8LTK
Case LEFTLT
Sig8Dir = LEFTLT
picSig8RA.Image = KCSubCTCV3.My.Resources.RedRight
picSig8RB.Image = KCSubCTCV3.My.Resources.RedRight
If SWL15LTK = NORLT Then
Signal8Selected = picSig8LA
picSig8LA.Image = KCSubCTCV3.My.Resources.GreenLeft
picSig8LB.Image = KCSubCTCV3.My.Resources.RedLeft
Else
Signal8Selected = picSig8LB
picSig8LA.Image = KCSubCTCV3.My.Resources.RedLeft
picSig8LB.Image = KCSubCTCV3.My.Resources.GreenLeft
End If
Case RIGHTLT
Sig8Dir = RIGHTLT
picSig8LA.Image = KCSubCTCV3.My.Resources.RedLeft
picSig8LB.Image = KCSubCTCV3.My.Resources.RedLeft
If SWL7LTK = NORLT Then
Signal8Selected = picSig8RA
picSig8RA.Image = KCSubCTCV3.My.Resources.GreenRight
picSig8RB.Image = KCSubCTCV3.My.Resources.RedRight
Else
Signal8Selected = picSig8RB
picSig8RA.Image = KCSubCTCV3.My.Resources.RedRight
picSig8RB.Image = KCSubCTCV3.My.Resources.GreenRight
End If
Case STOPLT
picSig8RA.Image = KCSubCTCV3.My.Resources.RedRight
picSig8RB.Image = KCSubCTCV3.My.Resources.RedRight
picSig8LA.Image = KCSubCTCV3.My.Resources.RedLeft
picSig8LB.Image = KCSubCTCV3.My.Resources.RedLeft
Signal8Selected = Nothing
Case DARKLT
' what goes here
End Select
End Sub
Sub UpdateSignal10()
Select Case SGL10LTK
Case LEFTLT
Sig10Dir = LEFTLT
picSig10L.Image = KCSubCTCV3.My.Resources.GreenLeft
Signal10Selected = picSig10L
Case RIGHTLT
Sig10Dir = RIGHTLT
Signal10Selected = picSig10R
picSig10R.Image = KCSubCTCV3.My.Resources.GreenRight
Case STOPLT
picSig10L.Image = KCSubCTCV3.My.Resources.RedLeft
picSig10R.Image = KCSubCTCV3.My.Resources.RedRight
Signal10Selected = Nothing
End Select
End Sub
Sub UpdateSignal12()
Select Case SGL12LTK
Case LEFTLT
' *** never true
Case RIGHTLT
Sig12Dir = RIGHTLT
Signal12Selected = picSig12R
picSig12R.Image = KCSubCTCV3.My.Resources.GreenRight
Case STOPLT
picSig12R.Image = KCSubCTCV3.My.Resources.RedRight
Signal12Selected = Nothing
End Select
End Sub
Private Sub lblCoburgWest_Click(sender As Object, e As EventArgs) Handles lblBlock11.Click
Dim trainID As String
trainID = InputBox("Enter the Train ID", "Assign departing train to block.", "None")
If trainID <> "None" Then
lblBlock11.Text = trainID
LogTrain(trainID + " called, on duty.")
End If
End Sub
Sub UpdateSignal24()
Select Case SGL24LTK
Case LEFTLT
Sig24Dir = LEFTLT
Signal24Selected = picSig24L
picSig24L.Image = KCSubCTCV3.My.Resources.GreenLeft
Case RIGHTLT
Sig24Dir = RIGHTLT
Signal24Selected = picSig24R
picSig24R.Image = KCSubCTCV3.My.Resources.GreenRight
Case STOPLT
Signal24Selected = Nothing
picSig24L.Image = KCSubCTCV3.My.Resources.RedLeft
picSig24R.Image = KCSubCTCV3.My.Resources.RedRight
End Select
End Sub
Sub UpdateSignal26()
Select Case SGL26LTK
Case LEFTLT
Sig26Dir = LEFTLT
If SWL25LTK = LNOR Then
Signal26Selected = picSig26LA
picSig26LA.Image = KCSubCTCV3.My.Resources.GreenLeft
Else
Signal26Selected = picSig26LB
picSig26LB.Image = KCSubCTCV3.My.Resources.GreenLeft
End If
Case RIGHTLT
Sig26Dir = RIGHTLT
Signal26Selected = picSig26R
picSig26R.Image = KCSubCTCV3.My.Resources.GreenRight
Case STOPLT
Signal26Selected = Nothing
picSig26LA.Image = KCSubCTCV3.My.Resources.RedLeft
picSig26LB.Image = KCSubCTCV3.My.Resources.RedLeft
picSig26R.Image = KCSubCTCV3.My.Resources.RedRight
End Select
End Sub
Sub UpdateTrafficSticks()
If CDEIND = 1 Then
Exit Sub
End If
UpdateTrafficFS1()
UpdateTrafficFS2()
UpdateTrafficFS3()
UpdateTrafficFS4()
UpdateTrafficFS5()
UpdateTrafficFS6()
UpdateTrafficFS7()
UpdateTrafficFS8()
UpdateTrafficFS9()
End Sub
Private Sub UpdateTrafficFS9()
If FS9 = NDT Then
If Block9 = OCC Then
picTraffic9West.Image = My.Resources.TrafficOccupiedEastEnd
If SWL3LTK = LNOR Then
picTraffic9EastA.Image = My.Resources.TrafficOccupiedWestEnd
Else
picTraffic9EastB.Image = My.Resources.TrafficOccupiedWestEnd
End If
Else
picTraffic9West.Image = My.Resources.TrafficNoneWest
picTraffic9EastA.Image = My.Resources.TrafficNoneEast
picTraffic9EastB.Image = My.Resources.TrafficNoneEast
End If
Else
If FS9 = EAST Then
If Block9 = OCC Then
picTraffic9West.Image = My.Resources.TrafficOccupiedEastEnd
If SWL3LTK = LNOR Then
picTraffic9EastA.Image = My.Resources.TrafficOccupiedEast
Else
picTraffic9EastB.Image = My.Resources.TrafficOccupiedEast
End If
Else
picTraffic9West.Image = My.Resources.TrafficClearedEastEnd
If SWL3LTK = LNOR Then
picTraffic9EastA.Image = My.Resources.TrafficClearedEast
Else
picTraffic9EastB.Image = My.Resources.TrafficClearedEast
End If
End If
Else
If Block9 = OCC Then
picTraffic9West.Image = My.Resources.TrafficOccupiedWest
If SWL3LTK = LNOR Then
picTraffic9EastA.Image = My.Resources.TrafficOccupiedWestEnd
Else
picTraffic9EastB.Image = My.Resources.TrafficOccupiedWestEnd
End If
Else
picTraffic9West.Image = My.Resources.TrafficClearedWest
If SWL3LTK = LNOR Then
picTraffic9EastA.Image = My.Resources.TrafficClearedWestEnd
Else
picTraffic9EastB.Image = My.Resources.TrafficClearedWestEnd
End If
End If
End If
End If
End Sub
Private Sub UpdateTrafficFS8()
If FS8 = NDT Then
If Block8 = OCC Then
picTraffic8West.Image = My.Resources.TrafficOccupiedEastEnd
picTraffic8East.Image = My.Resources.TrafficOccupiedWestEnd
Else
picTraffic8West.Image = My.Resources.TrafficNoneWest
picTraffic8East.Image = My.Resources.TrafficNoneEast
End If
Else
If FS8 = EAST Then
If Block8 = OCC Then
picTraffic8West.Image = My.Resources.TrafficOccupiedEastEnd
If SWL11LTK = LNOR Then
picTraffic8East.Image = My.Resources.TrafficOccupiedEast
End If
Else
If SWL9LTK = LNOR Then
picTraffic8West.Image = My.Resources.TrafficClearedEastEnd
End If
If SWL11LTK = LNOR Then
picTraffic8East.Image = My.Resources.TrafficClearedEast
End If
End If
Else
If Block8 = OCC Then
picTraffic8West.Image = My.Resources.TrafficOccupiedWest
If SWL11LTK = LNOR Then
picTraffic8East.Image = My.Resources.TrafficOccupiedWestEnd
End If
Else
If SWL9LTK = LNOR Then
picTraffic8West.Image = My.Resources.TrafficClearedWest
End If
If SWL11LTK = LNOR Then
picTraffic8East.Image = My.Resources.TrafficClearedWestEnd
End If
End If
End If
End If
End Sub
Private Sub UpdateTrafficFS7()
' Block 7
If FS7 = NDT Then
If Block7 = OCC Then
If SWL15LTK = LNOR Then
picTraffic7WestA.Image = My.Resources.TrafficOccupiedWestEnd
Else
picTraffic7WestB.Image = My.Resources.TrafficOccupiedWestEnd
End If
If SWL7LTK = LNOR Then
If SWL9LTK = LNOR Then
picTraffic7EastA.Image = My.Resources.TrafficOccupiedEastEnd
End If
Else
picTraffic7EastB.Image = My.Resources.TrafficOccupiedEastEnd
End If
Else
picTraffic7WestA.Image = My.Resources.TrafficNoneWest
picTraffic7EastA.Image = My.Resources.TrafficNoneEast
picTraffic7WestB.Image = My.Resources.TrafficNoneWest
picTraffic7EastB.Image = My.Resources.TrafficNoneEast
End If
Else
If FS7 = EAST Then
If Block7 = OCC Then
If SWL15LTK = LNOR Then
picTraffic7WestA.Image = My.Resources.TrafficOccupiedEastEnd
Else
picTraffic7WestB.Image = My.Resources.TrafficOccupiedEastEnd
End If
If SWL7LTK = LNOR And SWL9LTK = LNOR Then
picTraffic7EastA.Image = My.Resources.TrafficOccupiedEast
Else
If SWL9LTK = LNOR Then
picTraffic7EastB.Image = My.Resources.TrafficOccupiedEast
End If
End If
Else
' block routed and east
If SWL7LTK = LNOR Then
If SWL9LTK = LNOR Then
picTraffic7EastA.Image = My.Resources.TrafficClearedEast