AJA NTV2 SDK  17.0.1.1246
NTV2 SDK 17.0.1.1246
ntv2serialcontrol.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef _NTV2SERIALCONTROL_H
9 #define _NTV2SERIALCONTROL_H
10 
11 #include "ajaexport.h"
12 #include "basemachinecontrol.h"
13 #include "ntv2card.h"
14 
15 #define NTV2_SERIAL_RESPONSE_SIZE 64
16 
17 
18 typedef struct
19 {
23 
24 
25 
33 {
34  // Instance Methods
35  public:
36  // Constructors & Destructors
37  explicit CNTV2SerialControl (const UWord inDeviceIndex = 0, const UWord inSerialPortIndexNum = 0);
38  virtual ~CNTV2SerialControl ();
39 
40  // Control Methods
41  virtual inline bool Open (void) {return _ntv2Card.IsOpen ();}
42  virtual inline void Close (void) {}
43  virtual ULWord Play (void);
44  virtual ULWord ReversePlay (void);
45  virtual ULWord Stop (void);
46  virtual ULWord FastForward (void);
47  virtual ULWord Rewind (void);
48  virtual ULWord AdvanceFrame (void);
49  virtual ULWord BackFrame (void);
50  virtual ULWord GotoFrameByHMS (UByte inHrs, UByte inMins, UByte inSecs, UByte inFrames);
51  virtual ULWord GetTimecodeString (SByte * timecodeString);
52 
53  // Accessors
54  virtual inline const SerialMachineResponse & GetLastResponse (void) const {return _serialMachineResponse;} // Warning: Not thread safe!
55 
56  virtual bool WriteCommand (const UByte * txBuffer, bool response = true);
57 
58  virtual bool WriteTxBuffer (const UByte * txBuffer, UWord length);
59  virtual bool ReadRxBuffer (UByte * rxBuffer, UWord & actualLength, UWord maxlength);
60 
61  virtual bool GotACK (void);
62 
63  virtual bool WaitForRxInterrupt (void);
64  virtual bool WaitForTxInterrupt (void);
65 
66  // Instance Variables
67  protected:
73 
74 }; // CNTV2SerialControl
75 
76 
77 #if !defined (NTV2_DEPRECATE)
78  typedef CNTV2SerialControl CXenaSerialControl;
79 #endif
80 
81 #endif // _NTV2SERIALCONTROL_H
SByte
int8_t SByte
Definition: ajatypes.h:242
ajaexport.h
Defines the import/export macros for producing DLLs or LIBs.
CBaseMachineControl::Rewind
virtual ULWord Rewind(void)
Definition: basemachinecontrol.h:49
CBaseMachineControl::GotoFrameByHMS
virtual ULWord GotoFrameByHMS(UByte inHrs, UByte inMins, UByte inSecs, UByte inFrames)
Definition: basemachinecontrol.h:55
NTV2_SERIAL_RESPONSE_SIZE
#define NTV2_SERIAL_RESPONSE_SIZE
Definition: ntv2serialcontrol.h:15
CBaseMachineControl
A base class for deck control.
Definition: basemachinecontrol.h:19
CNTV2SerialControl::_serialMachineResponse
SerialMachineResponse _serialMachineResponse
Definition: ntv2serialcontrol.h:69
CBaseMachineControl::Play
virtual ULWord Play(void)
Definition: basemachinecontrol.h:45
basemachinecontrol.h
ULWord
uint32_t ULWord
Definition: ajatypes.h:246
CBaseMachineControl::FastForward
virtual ULWord FastForward(void)
Definition: basemachinecontrol.h:48
ntv2card.h
Declares the CNTV2Card class.
CNTV2SerialControl::GetLastResponse
virtual const SerialMachineResponse & GetLastResponse(void) const
Definition: ntv2serialcontrol.h:54
UWord
uint16_t UWord
Definition: ajatypes.h:244
CNTV2Card
I interrogate and control an AJA video/audio capture/playout device.
Definition: ntv2card.h:262
CBaseMachineControl::BackFrame
virtual ULWord BackFrame(void)
Definition: basemachinecontrol.h:51
CBaseMachineControl::GetTimecodeString
virtual ULWord GetTimecodeString(SByte *pOutTimecodeString)
Definition: basemachinecontrol.h:52
CNTV2SerialControl::_controlRegisterNum
RegisterNum _controlRegisterNum
Which UART control register to use: kRegRS422Control (72) or kRegRS4222Control (246)
Definition: ntv2serialcontrol.h:70
CNTV2SerialControl::Close
virtual void Close(void)
Definition: ntv2serialcontrol.h:42
SerialMachineResponse
Definition: ntv2serialcontrol.h:18
NTV2RegisterNumber
NTV2RegisterNumber
Definition: ntv2publicinterface.h:71
UByte
uint8_t UByte
Definition: ajatypes.h:241
CBaseMachineControl::AdvanceFrame
virtual ULWord AdvanceFrame(void)
Definition: basemachinecontrol.h:50
CBaseMachineControl::Stop
virtual ULWord Stop(void)
Definition: basemachinecontrol.h:47
CNTV2SerialControl::_transmitRegisterNum
RegisterNum _transmitRegisterNum
Which UART transmit data register to use: kRegRS422Transmit (70) or kRegRS4222Transmit (244)
Definition: ntv2serialcontrol.h:72
AJAExport
#define AJAExport
Definition: export.h:33
CNTV2SerialControl::_ntv2Card
CNTV2Card _ntv2Card
Definition: ntv2serialcontrol.h:68
CNTV2SerialControl::Open
virtual bool Open(void)
Definition: ntv2serialcontrol.h:41
CNTV2SerialControl
This sample class demonstrates how to use the Corvid/Kona/Io UART RS422 port(s). It is NOT intended t...
Definition: ntv2serialcontrol.h:32
SerialMachineResponse::length
UByte length
Definition: ntv2serialcontrol.h:20
CNTV2SerialControl::_receiveRegisterNum
RegisterNum _receiveRegisterNum
Which UART receive data register to use: kRegRS422Receive (71) or kRegRS4222Receive (245)
Definition: ntv2serialcontrol.h:71
CBaseMachineControl::ReversePlay
virtual ULWord ReversePlay(void)
Definition: basemachinecontrol.h:46