IDAS Communications:
IDAS can be administrated remotely using standard
TCP/IP communications.
The IDAS.INI contains parameters for configuring the ports, the default values are shown in the following table:
|
Name |
Port |
|
Control |
4500 |
|
Command shell |
23 |
|
Diagnostics |
7500 |
|
Status port (TCP) |
4501 |
|
Status port (UDP) |
4501 |
Remote Control
There are 2 ways to control IDAS remotely,
with binary
structured packets or with a .
Both of these connections
are stream blocking socket connections, standard TCP.
Binary Structured
Packet
Note: See Appendix A for data structures and
values references used in this section
IDAS will be waiting for an eIDAS_EXCHANGE structure to
control the recording, playback and configuration process,
the remote station
must define the eIDAS_EXCHANGE.Header.MessageID value to describe the message
and fill the
other fields with appropriate data. IDAS will write the return value
an eIDAS_EXCHANGE structure also.
Command Shell
IDAS can also receive commands in a text user readable format, the user connects to the Command Shell port and waits
for IDAS to respond
with a prompt, the user then sends lines of commands, always waiting for a
response for the next returning
line defined by a 0x0d0a value (CRLF).
Some of the commands are described below:
|
Record |
Starts to record |
|
|
Stop |
Stops the current execution of recording or playback |
|
|
Playback |
Playbacks the array content |
|
|
Pause |
Pauses the record or playback execution |
|
|
Goto (relative time, absolute time, frame) |
Positions the array pointer to a specific time or frame number |
|
|
Export video to |
Exports the content of the array to a specific file |
|
|
Reboot IDAS |
Reboots the OS |
|
|
Shutdown IDAS |
Turns off the machine |
|
|
Close IDAS |
Terminates the IDAS agent program |
Remote Status Capture
IDAS can send status packets (eIDAS_EXCHANGE) via a stream
socket blocking connection or a UDP datagram connection.
These packets are sent
every second.
Remote Diagnostics Capture
IDAS sends information in human readable
text format, sequences of
strings to a TCP socket blocking connection to inform a user about the
current IDAS log.
IDAS also exports these strings to a file in the "Log" directory
located in the IDAS installation directory. The naming convention usesas the current date and time.
Appendix A
/********************************************************************
Definitions
********************************************************************/
/* Error messages */
#define IDAS_OK 0x00000000
#define IDAS_ERROR 0x10000000
#define IDAS_ERROR_FILE_WRITE 0x00000001
#define IDAS_ERROR_FILE_READ 0x00000002
#define IDAS_ERROR_CAMERA_TIMEOUT 0x00000004
#define IDAS_ERROR_TIME_CARD_TRIGGER 0x00000008
#define IDAS_ERROR_FRAME_GRABBER_TRIGGER 0x00000010
#define IDAS_ERROR_MOUNT_POSITION_EMPTY 0x00000020
#define IDAS_ERROR_UNKNOWN_COMMAND 0x00010000
/* Commands */
#define IDAS_CMD 0x0000
#define IDAS_CMD_PLAYFWD (IDAS_CMD + 1)
#define IDAS_CMD_PLAYREV (IDAS_CMD + 2)
#define IDAS_CMD_RECORD (IDAS_CMD + 3)
#define IDAS_CMD_STOP (IDAS_CMD + 4)
#define IDAS_CMD_PAUSE (IDAS_CMD + 5)
#define IDAS_CMD_GOTO_FRAME (IDAS_CMD + 6)
#define IDAS_CMD_GOTO_TIME (IDAS_CMD + 7)
#define IDAS_CMD_AGC (IDAS_CMD + 8)
#define IDAS_CMD_UPPER_COLOR_LIMIT (IDAS_CMD + 9)
#define IDAS_CMD_LOWER_COLOR_LIMIT (IDAS_CMD + 10)
/* Status */
#define IDAS_STATUS 0x0000
#define IDAS_STATUS_PLAYING_FWD (IDAS_STATUS + 1)
#define IDAS_STATUS_PLAYING_REV (IDAS_STATUS + 2)
#define IDAS_STATUS_RECORDING (IDAS_STATUS + 3)
#define IDAS_STATUS_STOPPED (IDAS_STATUS + 4)
#define IDAS_STATUS_PAUSED (IDAS_STATUS + 5)
/* Types */
#define IDAS_TELESCOPE_PRIMARY 0
#define IDAS_TELESCOPE_ACQUISITION 1
#define IDAS_CAMERA_BAND_VISIBLE 0
#define IDAS_CAMERA_BAND_MWIR 1
/* Status messages */
#define IDAS_MESSAGE_UNKNOWN 0
#define IDAS_MESSAGE_INITIALIZATION 1
#define IDAS_MESSAGE_CONFIG_CHANGE 2
#define IDAS_MESSAGE_IDAS_COMMAND 3
#define IDAS_MESSAGE_MOUNT_POSITION 4
#define IDAS_MESSAGE_COMMENT 5
#define IDAS_MESSAGE_STATUS 6
/********************************************************************
Data Structures
********************************************************************/
typedef struct {
DWORD MessageID;
DWORD IDASID;
DWORD MJDN;
DWORD Reserved;
double UTSeconds;
} eIDAS_Header;
typedef struct {
DWORD SHOTSID;DWORD IDASID;
DWORD TelescopeID;
DWORD CameraID;
DWORD FilterID;
DWORD IntensifierID;
} eIDAS_Init;
typedef struct {
DWORD FrameSizeX;
DWORD FrameSizeY;
DWORD IntegrationTime;
DWORD IntensifierSetting;
DWORD FilterPosition;
DWORD AGC;
DWORD Upper_Color_Limit;
DWORD Lower_Color_Limit;
} eIDAS_ConfigChange;
typedef struct {
DWORD CommandNumber;
DWORD CommandValue;
double UTDaySeconds;
} eIDAS_Command;
typedef struct {
double Azimuth;
double Elevation;
} eIDAS_MountPosition;
typedef struct {
char Text[512];
} eIDAS_Comment;
typedef struct {
eIDAS_Init InitInfo;
eIDAS_ConfigChange FrameInfo;
DWORD IDAS_Mode;
DWORD MegaBytes;
DWORD ErrorCode;
DWORD FrameNumber;
DWORD MJDN;
DWORD Reserved;
double UTSeconds;
} eIDAS_Status;
typedef struct {
eIDAS_Header Header;
union {
eIDAS_Init Init;
eIDAS_ConfigChange Cfg;
eIDAS_Command Cmd;
eIDAS_MountPosition Mnt;
eIDAS_Status Status;
eIDAS_Comment Comment;
} Data;
} eIDAS_EXCHANGE;
typedef struct {
eIDAS_Init InitInfo;
DWORD BytesPerPixel;
DWORD FramesCount;
DWORD TimeHigh;
DWORD TimeLow;
eIDAS_Comment Comments;
} eIDAS_FILE_HEADER;
typedef struct {
DWORD TimeHigh;
DWORD TimeLow;
DWORD FrameCount;
DWORD FrameSizeX;
DWORD FrameSizeY;
DWORD FramesDropped;
DWORD IntegrationTime;
DWORD IntensifierSetting;
DWORD FilterPosition;
} eIDAS_FRAME_HEADER;