summaryrefslogtreecommitdiffstats
path: root/doc/tools/pdl2texi/drive.d
blob: ff41d5ad38c3bd53c498a603e2471e25d92a42f4 (plain) (blame)
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
OBJECT:  Drive
  DESCRIPTION:
    This object provides an interface to the elevation/azimuth
    drive system(ECA).  
  THEORY OF OPERATION:
    This object encapsulates the turret drive.  The object provides
    an interface to control the turret drive.  A method is provided
    to set the azimuth and elevation rate of the drive.  Methods are
    provided to request the drive to run in stabilized or power mode
    and set the drive speed to high or low.  A method is also provided
    to allow for drift adjust.  

    This object also tracks drive system on hours.  It gets the hours
    from the EEPROM data, allows the hours to be set, updates the
    hours via the activation and deactivation of the drive, and
    provides access to the hours.

    The object also provides methods to access azimuth and elevation
    displacement, and methods to process changes in the hardware
    discretes drive on, stabilized mode, thermal fault and fault.
  
    The object also provides methods to enable and disable
    both the remote and turret power interlocks which determine if
    the drive can be driven by the remote or turret handstation
    respectively.   

ATTRIBUTE DESCRIPTIONS:


ATTRIBUTE:  Azimuth_displacement
  DESCRIPTION:
    This attribute represents the current azimuth displacement
    of the turret.
  TYPE: floating point
  RANGE: ???
  UNITS: degrees
  REQUIREMENTS:
    AFS 8.2.11 Receive Azimuth Displacement and Elevation Displacement
    AIS 5.2.6 Azimuth Displacement analog


ATTRIBUTE:  Azimuth_rate
  DESCRIPTION:
    Azimuth rate command for movement of the turret. 
  TYPE: floating point
  UNITS: degrees / second
  DEFAULTS: none
  REQUIREMENTS:
    AFS 8.2.3 Send Azimuth and Elevation Rate to ECA
    AIS 5.3.4 Elevation Rate analog
    AIS 5.3.5 Azimuth Rate analog


ATTRIBUTE:  Drift_adjust
  DESCRIPTION:
    This attribute represents the current drift adjustment mode
    of the ECA turret drive.
  TYPE: enumerated
  MEMBERS:
    ADJUST_OFF - drift adjust mode is OFF
    ADJUST_ON  - drift adjust mode is ON
  REQUIREMENTS:
    AFS 8.2.6 Capable of turret drift adjustment
    AIS 5.3.1 Drift Adjust discrete
 

ATTRIBUTE:  Drive_on
  DESCRIPTION:
    Current status of the turret drive.  The turret drive may either be
    switched on or off.
  TYPE: boolean
  MEMBERS:
    FALSE - turret drive is off
    TRUE  - turret drive is on
  DEFAULTS: FALSE
  REQUIREMENTS:
    AFS 8.2.9 Monitor Drive System On
    AIS 5.2.1 Drive System On discrete


ATTRIBUTE:  Drive_system_hours
  DESCRIPTION: 
    Total number of hours drive has been activated. 
  TYPE: integer
  RANGE: 0 - +INFINITY 
  UNITS: seconds
  REQUIREMENTS:
    AFS 4.11 Respond to CDT elapsed time indicator key


ATTRIBUTE:  Elevation_displacement 
  DESCRIPTION:
    This attribute represents the current elevation displacement
    of the turret.
  TYPE: floating point
  RANGE: ???
  UNITS: degrees
  REQUIREMENTS:
    AFS 8.2.11 Receive Azimuth Displacement and Elevation Displacement
    AIS 5.2.7 Elevation Displacement analog


ATTRIBUTE:  Elevation_rate
  DESCRIPTION:
    Elevation rate command for movement of the turret.
  TYPE: floating point
  UNITS: degrees / second
  DEFAULTS: none
  REQUIREMENTS:
    AFS 8.2.3 Send Azimuth and Elevation Rate to ECA
    AIS 5.3.4 Elevation Rate analog
    AIS 5.3.5 Azimuth Rate analog
 

ATTRIBUTE:  Fault
  DESCRIPTION:
    This attribute denotes whether a turret malfunction has occurred.
  TYPE: boolean
  MEMBERS:
    TRUE  - a turret malfunction has occurred
    FALSE - no turret malfunction has occurred
  DEFAULTS: FALSE
  REQUIREMENTS:
    AFS 8.2.7 Check for ECA failure indication
    AIS 5.2.4 Turret Drive Malfunction discrete


ATTRIBUTE:  Mode
  DESCRIPTION:
    Current requested drive mode.
  TYPE: enumerated
  MEMBERS:
    POWER - operate in POWER mode
    STAB  - operate in STABILIZED mode
  DEFAULTS: POWER
  REQUIREMENTS:


ATTRIBUTE:  Remote_power_interlock_position
  DESCRIPTION:
    This is the status of the remote's power interlock.
  TYPE: enumerated
  MEMBERS:
    OPEN   - relay is open
    CLOSED - relay is closed
  REQUIREMENTS:  
    AFS 8.2.12 Control Power Interlock
 

ATTRIBUTE:  Speed
  DESCRIPTION:
    Current speed mode of the ECA turret drive.
  TYPE: enumerated
  MEMBERS:
    LOW_SPEED  - turret drive does not allow the maximum rate
    HIGH_SPEED - turret drive allows the maximum rate
  DEFAULTS:  HIGH 
  REQUIREMENTS:
    AFS 8.2.5 Control Turret
    AIS 5.3.3 Turret High Speed Mode discrete


ATTRIBUTE:  Stabilized_mode
  DESCRIPTION:
    Current drive mode indicating whether the ECA electronics are
    operating in Stabilized mode or Power mode.
  TYPE: boolean
  MEMBERS:
    FALSE - not operating in STABILIZED mode
    TRUE  - operating in STABILIZED mode
  DEFAULTS: FALSE
  REQUIREMENTS:
    AFS 8.2.8 Monitor Turret Stab Mode Indicate
    AIS 5.2.3 Turret Stab Mode Indicate discrete


ATTRIBUTE:  State
  DESCRIPTION:
    Current state of the turret drive.
  TYPE: enumerated
  MEMBERS:
    ACTIVATED   - turret drive is ON and active
    DEACTIVATED - turret drive is ON but deactivated
  DEFAULTS: DEACTIVATED
  REQUIREMENTS:
    AFS 8.2.4 Set Plam Grips Active
    AIS 5.3.2 Palm Grips Active discrete


ATTRIBUTE:  Thermal_fault
  DESCRIPTION:
    This attribute denotes whether a turret thermal fault has occurred.
  TYPE: boolean
  MEMBERS:
    TRUE  - a turret thermal fault has occurred
    FALSE - no turret thermal fault has occurred
  DEFAULTS: FALSE
  REQUIREMENTS:
    AFS 8.2.7 Check for ECA failure indication
    AIS 5.2.2 Turret ECA Thermal Failure discrete


ATTRIBUTE:  Turret_power_interlock_position
  DESCRIPTION:
    This is the status of the turret's power interlock.
  TYPE: enumerated
  MEMBERS:
    OPEN   - relay is open
    CLOSED - relay is closed
  REQUIREMENTS:  
    AFS 8.2.12 Control Power Interlock
 

ASSOCIATION DESCRIPTIONS: none

ABSTRACT TYPE DESCRIPTIONS:

ABSTRACT TYPE:  Drift_adjust_t
  DESCRIPTION:
    This abstract type represents the current drift adjustment mode
    of the ECA turret drive.
  VISIBILITY: public
  DERIVATION:  enumerated
  MEMBERS:  
    ADJUST_OFF = 0 - drift adjust mode is OFF
    ADJUST_ON  = 1 - drift adjust mode is ON
  REQUIREMENTS:
    AIS 5.3.1 Drift Adjust discrete

ABSTRACT TYPE: Interlock_status
  DESCRIPTION:
    An interlock state being OPEN or CLOSED.
  VISIBILITY: private
  DERIVATION: enumerated
  MEMBERS:
    OPEN   - interlock relay is in the open state
    CLOSED - interlock relay is in the closed state
  REQUIREMENTS: 
    AFS 8.2.12 Control Power Interlock

ABSTRACT TYPE:  Mode
  DESCRIPTION:
    This type specifies the drive mode of the ECA turret drive.
  VISIBILITY: public  
  DERIVATION: enumerated
  MEMBERS:
    POWER - operate in POWER mode
    STAB  - operate in STABILIZED mode

ABSTRACT TYPE:  Speed
  DESCRIPTION:
    This type specifies the Speed mode of the ECA turret drive.
  VISIBILITY: public
  DERIVATION:  enumerated
  MEMBERS:  
    LOW_SPEED  = 0 - turret drive does not allow the maximum rate
    HIGH_SPEED = 1 - turret drive allows the maximum rate
  REQUIREMENTS:
    AIS 5.3.3 Turret High Speed Mode discrete

ABSTRACT TYPE:  State_t
  DESCRIPTION:
    This type specifies the state of the turret drive.
  VISIBILITY: private
  DERIVATION:  enumerated
  MEMBERS:  
    DEACTIVATED - turret drive is ON but deactivated
    ACTIVATED   - turret drive is ON and active

DATA ITEM DESCRIPTIONS:

DATA ITEM: Azimuth_displacement_control
  DESCRIPTION:
    This data item contains the Azimuth_displacement analog control
    information.
  TYPE: handle


DATA ITEM: Azimuth_rate_control
  DESCRIPTION:
    This data item contains the Azimuth_rate analog control
    information.
  TYPE: handle


DATA ITEM: Drift_adjust_control
  DESCRIPTION:
    This data item contains the Drift_adjust discrete control
    information.
  TYPE: handle


DATA ITEM: Drive_activate_control
  DESCRIPTION:
    This data item contains the activate drive relay control information. 
  TYPE: handle


DATA ITEM: Drive_activated_timestamp
  DESCRIPTION:
    This data item stores the timestamp of the last time the drive was
    activated.  It will be used to compute the activated time when a
    deactivate is received.
  TYPE: time_t
  DEFAULT: none
  NOTES:
    see C library for data type information ??? 


DATA ITEM: Drive_on
  DESCRIPTION:
    The current status of the turret drive representing whether
    the drive is on or off.
  TYPE: boolean
  DEFAULT: FALSE


DATA ITEM: Drive_on_control
  DESCRIPTION:
    This data item contains the Drive_on discrete flag control
    information.
  TYPE: handle


DATA ITEM: Drive_system_hours
  DESCRIPTION:
    This data item stores the actual time the drive has been active.
    This value will be output by the Get_time method and will be set
    by the Set_time method.
  TYPE: integer 
  RANGE: 0 - +INFINITY 
  UNITS: seconds
  DEFAULT: 0


DATA ITEM: Elevation_rate_control
  DESCRIPTION:
    This data item contains the Elevation_rate analog control 
    information.
  TYPE: handle


DATA ITEM: Elevation_displacement_control
  DESCRIPTION:
    This data item contains the Elevation_displacement analog control
    information.
  TYPE: handle


DATA ITEM: Fault_control
  DESCRIPTION:
    This data item contains the Fault discrete flag control
    information.
  TYPE: handle


DATA ITEM: Remote_power_interlock_control
  DESCRIPTION:
    This data item contains the Remote_power_interlock relay control
    information.
  TYPE: handle


DATA ITEM: Stabilized_mode_control
  DESCRIPTION:
    This data item contains the Stabilized_mode discrete flag control
    information.
  TYPE: handle


DATA ITEM: State 
  DESCRIPTION:
    The current state of the turret drive representing an activated or
    deactivated drive.
  TYPE: State_t
  DEFAULT: DEACTIVATED
  

DATA ITEM: Thermal_fault_control
  DESCRIPTION:
    This data item contains the Thermal_fault discrete flag control
    information.
  TYPE: handle


DATA ITEM: Turret_power_interlock_control
  DESCRIPTION:
    This data item contains the Turret_power_interlock relay control
    information.
  TYPE: handle


DATA ITEM: Turret_power_interlock_status
  DESCRIPTION:
    The accurate status of the turret power interlock relay.  This value
    will be used to control the relay during a transition from the remote
    back to the turret console.
  TYPE: Interlock_status
  DEFAULT: none


METHODS DESCRIPTIONS:

METHOD:  Activate 
  DESCRIPTION:
    This method activates the turret drive system.  A timestamp of the
    activation is recorded to keep a running count of hours the drive has
    been active.
  VISIBILITY:  public
  INPUTS:  none
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.4 Set Palm Grips Active
    AIS 5.3.2 Palm Grips Active discrete
  PDL:

    if Drive_on
      if State is DEACTIVATED
        close the Drive_activate_control relay using the Relay object
        timestamp Drive_activated_timestamp for Drive_system_hours
        running total
        set State to ACTIVATED
      else
        already in the ACTIVATED state


METHOD:  Create
  DESCRIPTION:
    This method initializes the Turret Drive object.  All monitors of 
    turret drive signals are initialized and/or registered.  All turret
    drive characteristics are set to their initial values.
  VISIBILITY:  public
  INPUTS: none
  OUTPUTS: none
  PDL:

    set State to DEACTIVATED

    get Drive_system_hours to initialize the elapsed drive time
      from the Statistics (eeprom database ???) object - this is
        stored upon shutdown in eeprom

    create Fault_control using Discrete_flag object with the
     following attributes 
      true_sense     - DISCRETE_FLAG_TRUE_IS_1
      is_buffered    - false
      is_monitored   - true
      period         - 10ms
      change_routine - Change_fault
    change fault using initial value returned from create Fault_control
 
    create Thermal_fault_control using Discrete_flag object with
     the following attributes 
      true_sense     - DISCRETE_FLAG_TRUE_IS_0
      is_buffered    - false
      is_monitored   - true
      period         - 10ms
      change_routine - Change_thermal_fault
    change thermal fault using initial value returned from create
     Thermal_fault_control

    create Stabilized_mode_control using Discrete_flag object with the
     following attributes  
      true_sense     - DISCRETE_FLAG_TRUE_IS_1
      is_buffered    - false
      is_monitored   - true
      period         - 10ms 
      change_routine - Change_stabilized_mode
    change stabilized mode using initial value returned from create
     Stabilized_mode_control

    create Drive_on_control using Discrete_flag object with the 
     following attributes 
      true_sense     - DISCRETE_FLAG_TRUE_IS_1
      is_buffered    - false
      is_monitored   - true
      period         - 10ms
      change_routine - Change_drive_on
    change drive on using initial value returned from create
     Drive_on_control

    create Azimuth_rate_control using the Linear_dac object
     with the following attributes:
 none    voltage_low   - -10
      voltage_high  - +10
      logical_low   - -60
      logical_high  - +60
      is_buffered   - false
      period        - none
      initial_value - 0

    create Elevation_rate_control using the Linear_dac object with the
     following attributes:
      voltage_low   - -10
      voltage_high  - +10
      logical_low   - -60
      logical_high  - +60
      is_buffered   - false
      period        - none
      initial_value - 0

    create Azimuth_displacement_control using the Linear_adc object with
     the following attributes:
      voltage low    - 
      voltage high   - 
      logical low    - 
      logical high   - 
      is_buffered    - false 
      is_monitored   - false
      period         - none
      change_routine - none
      delta          - none

    create Elevation_displacement_control using the Linear_adc object 
     with the following attributes:
      voltage low    - 
      voltage high   - 
      logical low    - 
      logical high   - 
      is_buffered    - false
      is_monitored   - false
      period         - none
      change_routine - none
      delta          - none

    create Drive_activate_control using the Relay object with the
     following attributes:
      open_sense    - RELAY_OPEN_IS_0
      is_buffered   - false
      period        - none
      initial_state - RELAY_OPEN

    create Turret_power_interlock_control using the Relay object with 
     the following attributes:
      open_sense    - RELAY_OPEN_IS_0
      is_buffered   - false
      period        - none
      initial_state - RELAY_OPEN
    set Turret_power_interlock_status to OPEN

    create Remote_power_interlock_control using the Relay
     object with the following attributes:
      open_sense    - RELAY_OPEN_IS_0
      is_buffered   - false
      period        - none
      initial_state - RELAY_OPEN

    create Drift_adjust_control using the Discrete_out object with 
     following attributes:
      is_buffered   - false
      period        - 10ms
      initial_value - ADJUST_OFF


METHOD:  Deactivate
  DESCRIPTION:
    This method deactivates the turret drive system.  A timestamp of the
    activation is recorded to keep a running count of hours the drive
    has been active.
  VISIBILITY:  public
  INPUTS:  none
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.4 Set Plam Grips Active
    AIS 5.3.2 Palm Grips Active discrete
  PDL:

    if Drive_on
      if State is DEACTIVATED 
        timestamp deactivate for Drive_system_hours running total
        deactivate drive by opening the Drive_activate_control relay
        using the Relay object
        compute running time since last activate
        add running time to Drive_system_hours
        set State to DEACTIVATED
      else
        already in the DEACTIVATED state
 

METHOD:  Disable_remote_power_interlock
  DESCRIPTION:
    This method disables the turret power interlock safety preventing
    the turret from being driven by the remote's handstation. 
  VISIBILITY:  public
  INPUTS:  none
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.12 Control Power Interlock
  PDL:

    open the remote power interlock relay
    return the turret relay to its designated state defined by the
      Turret_power_interlock_status
 

METHOD:  Disable_turret_power_interlock
  DESCRIPTION:
    This method disables the turret power interlock safety preventing
    the turret from being driven by the turret's handstation. 
  VISIBILITY:  public
  INPUTS: none
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.12 Control Power Interlock
  PDL:

    Deactivate the Drive object
    open the turret power interlock relay
    set Turret_power_interlock_status to OPEN


METHOD:  Enable_remote_power_interlock
  DESCRIPTION:
    This method will enable the remote power interlock to allow
    the turret to be driven from the remote station.
  VISIBILITY:  public
  INPUTS: none
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.12 Control Power Interlock
  NOTES:
    At this time the turret's power interlock is opened to avoid
    having both relays closed at a time.
  PDL:

    if Drive_on
      open the turret power interlock relay using the Relay object
      close the remote power interlock relay using the Relay object


METHOD:  Enable_turret_power_interlock
  DESCRIPTION:
    This method will enable the turret power interlock to allow
    the turret to be driven from the turret station.
  VISIBILITY:  public
  INPUTS: none
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.12 Control Power Interlock
  NOTES:
    At this time the closed state is saved to allow the correct state
    to be returned to in the event a remote overrides the turret and the 
    remote gives up its control, we must return to the previous state of
    the turret power interlock.
  PDL:

    if Drive_on
      close the turret power interlock relay using the Relay object

      set the Turret_power_interlock_status to CLOSED to return to
        when remote gives up control


METHOD: Get_AZ_EL_displacement  
  DESCRIPTION:
    This method returns the current azimuth displacement and elevation
    displacement from the ECA.
  VISIBILITY:  public
  INPUTS:  none
  OUTPUTS:
    current azimuth displacement value
    current elevation displacement value
  REQUIREMENTS:
    AFS 8.2.11 Receive Azimuth Displacement and Elevation Displacement
    AIS 5.2.6 Azimuth Displacement analog
    AIS 5.2.7 Elevation Displacement analog
  NOTES:
    Currently supported as an on-demand type of signal.  May change to a
    monitored analog signal.
  PDL:
    
    if Drive_on
      get and return current azimuth displacement and current elevation
      displacement from ECA using the Linear_ADC object
 

METHOD:  Get_hours
  DESCRIPTION:
    This method returns the current value contained in the elapsed
    turret drive active time.
  VISIBILITY:  public
  INPUTS: none
  OUTPUTS:
    elapsed turret drive time - the current elasped turret drive time
  REQUIREMENTS:
  REFERENCES:
    AFS 4.11 Respond to CDT elapsed time indicator key
  NOTES:
  PDL:

    return the current value for Drive_system_hours


METHOD:  Set_drift_adjust
  DESCRIPTION:
    This method provides the ability to set the drift adjust to the 
    value represented by the handstation.  Drift adjust is either ON
    or OFF.
  VISIBILITY:  public
  INPUTS:
    value - new drift adjust value 
      ADJUST_OFF - drift adjust mode is OFF
      ADJUST_ON  - drift adjust mode is ON
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.6 Capable of turret drift adjustment
    AIS 5.3.1 Drift Adjust discrete
  PDL:
 
    if Drive_on
      set drift adjust discrete to value using Discrete_out object

METHOD:  Set_hours
  DESCRIPTION:
    This method will set the turret drive activated elapsed time value
    to the specified value.
  VISIBILITY:  public
  INPUTS:
    new_elapsed_time_value - specified turret drive elapsed time value
  OUTPUTS: none
  REQUIREMENTS:
    AFS 4.11 Respond to CDT elapsed time indicator key
  PDL:
 
    set the value of Drive_system_hours to the value specified by
      new_elapsed_time_value
 

METHOD: Set_mode
  DESCRIPTION:
    This method sets the requested mode of the turret drive.
  VISIBILITY: public
  INPUTS:
    mode - new requested mode
      POWER - operating in POWER mode
      STAB  - operating in STABILIZED mode
  OUTPUTS:  none
  REQUIREMENTS:
  PDL:
    if mode is POWER
      set drive mode switchlight to PWR_LAMP using the Console object
    else if mode is STAB
      set drive mode switchlight to STB_LAMP using the Console object

    
METHOD:  Set_rate
  DESCRIPTION:
    This method provides the ability to send azimuth and elevation rates
    to the drive.  Two parameters are used as input to designate the
    corresponding rates.  These parameters must be in degrees per second.
  VISIBILITY:  public
  INPUTS:
    azimuth rate   - new azimuth rate in degress per second
    elevation rate - new elevation rate in degress per second
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.3 Send Azimuth and Elevation Rate to ECA
    AIS 5.3.4 Elevation Rate analog
    AIS 5.3.5 Azimuth Rate analog
  NOTES:
    May need to couple these analogs with an interface driver to close
    the window between writes and conversions.
  PDL:

    if Drive_on
      send the new azimuth rate to the Azimuth analog
      send the new elevation rate to Elevation analog


METHOD:  Set_speed
  DESCRIPTION:
    This method sets the turret drive speed mode to the specified value
    either high or low based on user input.
  VISIBILITY:  public
  INPUTS:
    new_speed_value - new value to set the turret speed to
      LOW_SPEED  - turret drive does not allow the maximum rate
      HIGH_SPEED - turret drive allows the maximum rate
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.5 Control Turret
    AIS 5.3.3 Turret High Speed Mode discrete
  PDL:

    if Drive_on
      set turret drive high speed mode discrete to the new_speed_value
       using Discrete_out object


METHOD:  Change_drive_on
  DESCRIPTION:
    This method will be used to report a transition of the drive system
    on discrete.
  VISIBILITY:  private
  INPUTS:
    value - new drive system on value 
      FALSE - indicates drive not on
      TRUE  - indicates drive on
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.9 Monitor Drive System On
    AIS 5.2.1 Drive System On discrete
  REFERENCES:
  NOTES:
  PDL:

    set Drive_on to value
    if Drive_on is FALSE
      deactivate the turret drive using the Drive object


METHOD:  Change_fault
  DESCRIPTION:
    This method will be used to indicate that a turret malfunction
    has been recognized by the turret drive.
  VISIBILITY:  private
  INPUTS:
    value - new value resulting from a fault discrete change
      FALSE - indicates no fault
      TRUE  - indicates fault
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.7 Check for ECA failure indication
    AIS 5.2.4 Turret Drive Malfunction discrete
  PDL:
 
    if value
      send turret fault message using the Display object 
    else 
      return


METHOD:  Change_stabilized_mode
  DESCRIPTION:
    This method will determine a transition from STAB mode to POWER mode.
    It will set the stab mode lamp on the console.
  VISIBILITY:  private
  INPUTS:
    value - new value resulting from a stab mode discrete change
      FALSE - indicates not stabilized mode
      TRUE -  indicates stabilized mode
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.8 Monitor Turret Stab Mode Indicate
    AIS 5.2.3 Turret Stab Mode Indicate discrete
  PDL:

    if value 
      set STAB mode light to LAMP_ON using the Console object
    else value indicates not stabilized mode
      set STAB mode light to LAMP_OFF using the Console object


METHOD:  Change_thermal_fault
  DESCRIPTION:
    This method will be used to indicate that a thermal fault has been
     recognized by the turret drive.
  VISIBILITY:  private
  INPUTS:
    value - new value resulting from a thermal fault discrete change
      FALSE - indicates no thermal fault
      TRUE  - indicates thermal fault
  OUTPUTS: none
  REQUIREMENTS:
    AFS 8.2.7 Check for ECA failure indication
    AIS 5.2.2 Turret ECA Thermal Failure discrete
  PDL:
 
    if value
      send thermal fault message using the Display object
    else 
      return

END OBJECT: Drive