VIVIX SDK Developer Manual











































© Vieworks 2022 All rights reserved.
Under copyright laws, this manual may not be reproduced, in whole or in part, without the written permission of Vieworks.
The specifications and related information in this manual may be changed without notice. Refer to Vieworks Download System (VDS) for the latest version of our manuals.
Contents	

Contents




1 Instruction


1.1 Document Guide

This document provides information about the software module and the related API for developing VIVIX-S detectors based on Windows.

The end user can access to the VIVIX-S detector and provide the way of image acquisition and check the status information. Since this SDK is composed of Dll and is thread-safe, it can be used under the multi-thread environment safely.	
Caution
If the user is not fully acquainted with this manual, unsuspected problem can be happened due to carelessness. To prevent any medical accidents, the user should fully understand the instructions of this manual before using this SDK.	
Target
This manual is intended for developers who use VIVIX-S detector models with VIVIX SDK.	
Contact Department
For any comments or inquiries regarding this document, contact via email below.	
Item	
Contents	
Department	
Customer Support Team in Vieworks	
E-mail	
CustomerSupport@vieworks.com	

1.1.1 Symbols
Before attempting to use VIVIX SDK, follow the instructions in this manual along with the caution symbol. It is important for you to read and understand the contents of this manual for operating the software safely.	
Caution
This symbol is used to indicate a potentially hazardous situation which may cause death, personal injury or substantial property damage if the instructions are ignored. Be sure to understand the instructions of this symbol for the safe operation.	
Information
This symbol is used to indicate reference and complementary information related to the product. Users should read the instructions of this symbol carefully.	

1.1.2 Notation
Bold Types
We applied bold font style to the words which indicated products terms, or the words and sentences which are needed to transmit clear meaning to the customers. This helps you to easily distinguish the words from other technical ones for explaining functions.	
Sample Source Code (Examples)
The source code is written in black on a gray background in this document.	
Vieworks.VIVIX.net.CVIVIXNet pSDK;
Vieworks.VIVIX.net.RESULT result = pSDK.DetectorOpen(0);
if(result == Vieworks.VIVIX.net.RESULT.RESULT_SUCCESS) 
{
		System.Diagnostics.Trace.WriteLine(“Detector connected”);
}
else 
{
		System.Diagnostics.Trace.WriteLine(“Detector not connected”);
}

1.2 Notices

When using VIVIX SDK, be sure to take the following precautions. Otherwise, problems may occur and the equipment may not function correctly.	
Open Detector
Make sure you connect the detector correctly.	
Network Card Setting
Need to set the network card.	
VwFilter
Need to install the VwFilter.	
Calibration
  • To ensure optimal system performance, it is important to verify that the system is calibrated correctly. 	
  • Check if the calibration is performed after the equipment is completed to be installed or repaired.	
  • Do not try to use the system if the calibration has not been performed.	
  • You can process calibration with the calibration data CD (provided).	
The calibration result can be different through the use environment. Therefore, if the result performed by the provided calibration data is not satisfied, you can create the data in the field by using the calibration software (Setup) by yourself.	

1.2.1 Trademarks
The name “Vieworks” and the Vieworks logo are registered trademarks of Vieworks.	
© Vieworks. 2022 All rights reserved.
The copyright of this document is owned by Vieworks. Under copyright laws, this document cannot be reproduced, in whole or in part, without the written permission of Vieworks.	



2 Programming Guide


2.1 Overview

VIVIX SDK provides SDK (Software Development Kit) to build applications for VIVIX-S detectors.
This SDK provides API (Application Programming Interface) for development as follows:	
  • VIVIX Acquisition SDK C++ API	
  • VIVIX Acquisition SDK C# API	

2.1.1 Hieratchy chart
	

2.1.2 Features
  • Initializing connection	
  • Operation	
  • Set / Get value	
  • Set state	
  • File I/O	

2.2 Requirements


2.2.1 Specifications
Components	
Minimum Spec.	
Recommended Spec.	
OS	
M.S. Windows 7 Professional SP1 (64bit)
M.S. Windows 8.1 Professional (64bit)	
M.S. Windows 10 Professional (64bit)	
LAN Card	
Gigabit Ethernet card for 
detector interface (Intel® Series)
Speed: 1Gbps 
Jumbo Frames: 9K
Receive Descriptors: 1024
802.11ac (Wireless)
LAN card for network interface
(optional)	
1000BASE-T Gigabit Ethernet card for 
detector interface (Intel® I210 Series)
Speed: 1Gbps or higher
Jumbo Frames: 9K
Receive Descriptors: 2K or more
802.11ac (Wireless)
Gigabit supported LAN card for network interface (optional)	
CPU	
Intel® Core™ i5 3330-CPU
(or compatible CPU)	
Intel® Core™ i7 8700-CPU or higher
(or compatible CPU)	
Memory	
4GB	
16GB or more	
HDD or SSD	
1TB	
2TB or more	
Monitor	
General monitor: 1280 x 800	
General monitor:
1920 x 1080, 2560 x 1440
Surface pro 4 : 2160 x 1440	
CD-ROM	
	
CD or DVD Reader / Writer	

2.2.2 Development tool
  • Microsoft Visual Studio 2012 or higher	

2.2.3 Device
This documentation describes coding method that helps user to build application for the following VIVIX-S detector models using VIVIX Image Acquisition SDK.	
  • FXRD-1717S/1417S	
  • FXRD-1417W	
  • FXRD-1012N/1417N/1717N	
  • VXTD-2532E	
  • FXRD-1717V	
  • FXRD-2530VW/3643VW/4343VW	
  • FXRD-2530FW/3643FW/4343FW	
  • FXRS-02A/03A/04A	

2.2.4 Driver
  • VwFilter v6.7.9	

2.3 Package Information


2.3.1 Installation (Unpacking)
After you download the VIVIX SDK package, unpacking VIVIX SDK in the location you want to install.
‘Visual C++ Redistributable for Visual Studio 2012 Update 4 (x86 or x64 version)’ should be installed to use VIVIX SDK, according to the application you plan to develop.
For more information, refer to the next section.	

2.3.2 Modules
VIVIX SDK includes Headers, Libraries and DLLs to compile and link VIVIX SDK APIs.	
Name	
Description	
[VIVIX SDK]	
VIVIX SDK package root	
Include	
Header files of VIVIX SDK	
lib	
Static link library of VIVIX SDK	
bin	
Dynamic link library of VIVIX SDK	
Name	
Path	
Description	
VIVIX_SDK.dll	
[SDK ROOT]/bin/win32/Debug	
Dynamic link library for debug in 32bit	
[SDK ROOT]/bin/win32/Release	
Dynamic link library for release in 32bit	
[SDK ROOT]/bin/x64/Debug	
Dynamic link library for debug in 64bit	
[SDK ROOT]/bin/x64/Release	
Dynamic link library for release in 64bit	

2.3.3 DLL File Version
VIVIX_SDK
VIVIX_SDK_NET	
VWFX.LOGGER	
iCloak.SDK	
opencv_core249
opencv_imgproc249	
CLAllSerial_MD_VC80_v2_3
CLProtocol_MD_VC80_v2_3
GCBase_MD_VC80_v2_3
GenApi_MD_VC80_v2_3
Log_MD_VC80_v2_3
MathParser_MD_VC80_v2_3	
TLI.V6	
1.0.3.61 ~ 1.0.4.3	
2.0.0.3	
-	
2.4.9	
2.3.1.0	
1.0.0.37	
1.0.4.4	
2.0.0.4	
1.0.4.5 ~ 1.0.4.14	
2.0.0.5	
1.0.4.15 ~ 1.0.4.16	
2.0.0.6	
1.0.4.23 ~ 1.0.11	
2.0.0.6	
6.0.4.0	
1.0.15 ~ 1.0.16	
2.0.0.6	
6.0.4.0
6.6.1.13	
1.0.17 ~ 1.0.18	
-	
2.0.0	
1.0.19~1.0.22	
-	
-	
1.0.23~1.0.25	
2.1.0	
1.1.2	
3.0.4	
1.1.4	
3.0.7	
1.1.5	
3.0.8	

2.4 Detector Connect & Setup

Before using VIVIX SDK, you need to connect detector.	

2.4.1 Connecting a detector
Refer to the user manual of each detector model.	

2.5 Understanding Libraries-


2.5.1 Name spaces
VIVIX SDK is embodied in the namespace Vieworks.VIVIX.	

2.5.2 Classes
VIVIX SDK provides classes for developing ‘C++’. The following classes are used for developing ‘C++’.

	
Class	
Description	
CVIVIXSDK	
Class for initializing VIVIX SDK, registers a detector and SCU, sets the storage route of logs, and acquires the interface instance of a detector and SCU.	
CDetector	
Interface class for common functions of a detector. The interface class of each model inherits this class.	
CSCU	
Interface class for using the SCU functions.	
CFXRDS	
Interface class about the functions of FXRD-1417S, FXRD-1717S and FXRD-1717V, if it inherits CDetector.	
CFXRDW	
Interface class about the functions of FXRD-1417W, if it inherits CDetector.	
CFXRDN	
Interface class about the specialized functions of FXRD-1012N, FXRD-1717N, VXTD-2532E and FXRD-1417N, FXRD-VW Series, FXRD-FW Series if it inherits CDetector.	

2.5.3 Type definitions
For indicating what a variable represents, VIVIX SDK uses some typedef.
For more information, see <33 Types and EnumeratorsTypes and Enumerators>.	

2.5.4 Enumerations
For indicating what a variable represents, VIVIX SDK uses some enumerations.
For more information, see <33 Types and EnumeratorsTypes and Enumerators>.	

2.5.5 Structures
For processing structured data, VIVIX SDK uses some struct.
For more information, see <33 Types and EnumeratorsTypes and Enumerators>.	



3 Types and Enumerators


3.1 Types

Type	
Type	
Description	
DETECTOR_ID	
int	
Classifies a detector from SDK.	
FILE_PATH	
wchar_t[256]	
Sends a file route.	
MODEL_NAME	
wchar_t[21]	
Sends a model name.	
SERIAL	
wchar_t[21]	
Sends serial numbers.	
DRIVE_MODE_NAME	
char[128]	
Sends a drive mode name.	

3.1.1 DETECTOR_ID
The ID used for classifying a detector from SDK.	
Syntax (C++)
typedef int DETECTOR_ID;
Remarks
DETECTOR_ID is allocated from VIVIX Setup and has a value from 0 ~ 4.	

3.1.2 FILE_PATH
The type used for sending a file route.	
Syntax (C++)
typedef wchar_t[256] FILE_PATH;

3.1.3 MODEL_NAME
The type used for sending a model name.	
Syntax (C++)
typedef wchar_t[21] MODEL_NAME;

3.1.4 SERIAL
The type used for sending serial numbers.	
Syntax (C++)
typedef wchar_t[21] SERIAL;

3.1.5 DRIVE_MODE_NAME
The type used for sending a drive mode name.
Syntax (C++)
typedef char[128] DRIVE_MODE_NAME;	

3.2 Enumerators


3.2.1 BATTERY_REMAIN_LEVEL
BATTERY_REMAIN_LEVEL is the value that represents battery remain level of wireless detector and specifies a battery remain level of wireless detector.	
Syntax
enum BATTERY_REMAIN_LEVEL		// C++
public enum BATTERY_REMAIN_LEVEL	// C#
{
	BATTERY_UNKNOWN = 0, 
	BATTERY_LOW = 1,
	BATTERY_QUARTER = 2,
	BATTERY_HALF = 3,
	BATTERY_HALFQUARTER = 4,
	BATTERY_FULL = 5
};
Member	
Value	
Description	
BATTERY_UNKNOWN	
0	
Unknown battery level.	
BATTERY_LOW	
1	
Low battery level (1 ~ 30%)	
BATTERY_QUARTER	
2	
1/4 battery level (31 ~ 50%)	
BATTERY_HALF	
3	
1/2 battery level (51 ~ 60%)	
BATTERY_HALFQUARTER	
4	
3/4 battery level (61 ~ 80%)	
BATTERY_FULL	
5	
Full battery level (81 ~ 100%)	
Remarks
This information is only for the detector models which use a battery pack.	

3.2.2 CALIBRATION_TYPE
CALIBRATION_TYPE is the value that represents calibration type.	
Syntax
enum CALIBRATION_TYPE			// C++
public enum CALIBRATION_TYPE		// C#
{
	CALIBRATION _OFFSET = 0,
	CALIBRATION _DEFECT = 1,
	CALIBRATION _GAIN = 2
};
Member	
Value	
Description	
CALIBRATION_OFFSET	
0	
Offset calibration	
CALIBRATION_DEFECT	
1	
Defect calibration	
CALIBRATION_GAIN	
2	
Gain calibration	

3.2.3 CALIBRATION_FILE_TYPE
CALIBRATION_FILE_TYPE is the value that represents calibration file types.	
Syntax
enum CALIBRATION_FILE_TYPE 		// C++
public enum CALIBRATION_FILE_TYPE 	// C#
{
	CALIBRATION_FILE_OFFSET = 1,
	CALIBRATION_FILE_DEFECT = 2,
	CALIBRATION_FILE_GAIN = 3
};
Member	
Value	
Description	
CALIBRATION_FILE_OFFSET	
1	
Offset calibration file	
CALIBRATION_FILE_DEFECT	
2	
Defect offset calibration file	
CALIBRATION_FILE_GAIN	
3	
Gain calibration file	

3.2.4 PATIENT_LIST_SET_TYPE
PATIENT_LIST_SET_TYPE is the value that represents method of PatientInfoListSet function.	
Syntax
enum PATIENT_LIST_SET_TYPE 		// C++
public enum PATIENT_LIST_SET_TYPE	// C#
{
	PATIENT_LIST_REPLACE = 1,
	PATIENT_LIST_UPDATE = 2
};
Member	
Value	
Description	
PATIENT_LIST_REPLACE	
1	
Replaces patient list	
PATIENT_LIST_UPDATE	
2	
Updates the list to its original state	

3.2.5 CONNECTION_INTERFACE
CONNECTION_INTERFACE is the value that represents interface of wireless detector.	
Syntax
enum CONNECTION_INTERFACE 		// C++
public enum CONNECTION_INTERFACE 	// C#
{
	INTERFACE_UNKNOWN = 0,
	INTERFACE_WIRELESS = 1,
	INTERFACE_TETHER = 2,
	INTERFACE_AP = 3
};
Member	
Value	
Description	
INTERFACE_UNKNOWN	
0	
Unknown connection interface.	
INTERFACE_WIRELESS	
1	
Wireless interface. SCU is in AP mode, and the detector is connected wirelessly.	
INTERFACE_TETHER	
2	
Tether interface. SCU and detector is connected with a tether cable.	
INTERFACE_AP	
3	
AP interface. The detector is in AP mode.	

3.2.6 CONNECTION_STATE
CONNECTION_STATE is the value that represents connection state with the device.	
Syntax
enum CONNECTION_STATE			// C++
public enum CONNECTION_STATE		// C#
{
	NOT_CONNECTED = 0,
	CONNECTED = 1,
	DISCONNECTED = 2
};
Member	
Value	
Description	
NOT_CONNECTED	
0	
Not connected with device.	
CONNECTED	
1	
Connect with device.	
DISCONNECTED	
2	
Disconnect device	

3.2.7 DEBOUNCE_TYPE
DEBOUNCE_TYPE is value that represents debounce type.	
Syntax
enum DEBOUNCE_TYPE		// C++
public enum DEBOUNCE_TYPE	// C#
{
	DEBOUNCE_DR = 0,
	DEBOUNCE_AED= 1
};
Member	
Value	
Description	
DEBOUNCE_DR	
0	
For setting debounce time of DR trigger	
DEBOUNCE_AED	
1	
For setting debounce time of AED trigger	

3.2.8 DETECTOR_TYPE
DETECTOR_TYPE is the value that represents detector types.	
Syntax
enum DETECTOR_TYPE 		// C++
public enum DETECTOR_TYPE 	// C#
{
	NO_DETECTOR = 0,
	FXRD1417_S = 6,
	FXRD1717_S = 7,
	FXRD1417_W = 8,
	FXRD1012_N = 9,
	FXRD1717_N = 10,
	FXRD1417_N = 11,
	FXRD1012_C = 12,
	FXRD1717_V = 13,
	FXRD1012_T = 14,	
	VXTD2532_E = 14,
	FXRD1751_S = 15,
	FXRD3643_V = 16,	
	FXRD4343_V = 17,
	FXRD2530_V = 18,
	FXRD3643_F = 19,
	FXRD4343_F = 20,
	FXRD2530_F = 21,
};
Member	
Value	
Description	
NO_DETECTOR	
0	
No detector	
FXRD1417_S	
6	
FXRD 1417S (Wired detector)	
FXRD1717_S	
7	
FXRD 1717S (Wired detector)	
FXRD1417_W	
8	
FXRD 1417W (Wireless detector)	
FXRD1012_N	
9	
FXRD 1012N	
FXRD1717_N	
10	
FXRD 1717N	
FXRD1417_N	
11	
FXRD 1417N	
FXRD1012_C	
12	
FXRD 1012C (deprecated)	
FXRD1717_V	
13	
FXRD 1717V (Wired detector)	
FXRD1012_T	
14	
FXRD 1012_T detector. (Old name of 2532_E)	
VXTD2532_E	
14	
FXRD 2532_E detector.	
FXRD1751_S	
15	
FXRD 1751S (Long Format)	
FXRD3643_V	
16	
FXRD 3643V	
FXRD4343_V	
17	
FXRD 4343V	
FXRD2530_V	
18	
FXRD 2530V	
FXRD3643_F	
19	
FXRD 3643F	
FXRD4343_F	
20	
FXRD 4343F	
FXRD2530_F	
21	
FXRD 2530F	
VXTD2532_EV	
22	
VXTD 2532_V detector (NDT model)	

3.2.9 DETECTOR_CLASS
DETECTOR_CLASS is the value that represents class of the detector.	
Syntax
enum DETECTOR_CLASS			// C++
public enum DETECTOR_CLASS		// C#
{
	DETECTOR_CLASS_UNKNOWN = -1,
	DETECTOR_CLASS_FXRDS = 0,
	DETECTOR_CLASS_FXRDW = 1,
	DETECTOR_CLASS_FXRDN = 2,
};
Member	
Value	
Description	
DETECTOR_CLASS_UNKNOWN	
-1	
Unknown Detector Class	
DETECTOR_CLASS_FXRDS	
0	
FXRDS Class	
DETECTOR_CLASS_FXRDW	
1	
FXRDW Class	
DETECTOR_CLASS_FXRDN	
2	
FXRDN Class.	

3.2.10 DIRECTION
DIRECTION is the value that represents detector direction.	
Syntax
enum DIRECTION			// C++
public enum DIRECTION		// C#
{
	DIRECTION_NONE = 0,
	DIRECTION_CW90 = 1,
	DIRECTION_CW180 = 2,
	DIRECTION_CW270 = 3
};
Member	
Value	
Description	
DIRECTION_NONE	
0	
0 degree	
DIRECTION_CW90	
1	
Clockwise 90 degree.	
DIRECTION_CW180	
2	
Clockwise 180 degree.	
DIRECTION_CW270	
3	
Clockwise 270 degree.	
Remarks
Coordinates and the direction of an image are shown as follows;
When the detector is placed with the object as the same direction, the direction is DIRECTION_NONE.	

3.2.11 ERROR_TYPE
ERROR_TYPE is the value that represents error type.	
Syntax
enum ERROR_TYPE		// C++
public enum ERROR_TYPE		// C#
{
	ERR_NOT_CALIBRATED = 1,
	ERR_NOT_ENOUGH_MEMORY = 2,
	ERR_IMAGE_TIMEOUT = 3,
	ERR_IMAGE_ACQ_FAILED = 4,
	ERR_HARDDISK_CAPACITY_SHORTAGE = 5,
	ERR_GAIN_CALIBRATION_DATA_IS_EXPIRED = 20
};
Member	
Value	
Description	
ERR_NOT_CALIBRATED	
1	
Detector is not calibrated.	
ERR_NOT_ENOUGH_MEMORY	
2	
Not enough memory.	
ERR_IMAGE_TIMEOUT	
3	
Failed to transmit an image because of timeout.	
ERR_IMAGE_ACQ_FAILED	
4	
Image acquisition failed.	
ERR_HARDDISK_CAPACITY_SHORTAGE	
5	
Not enough hard disk.	
ERR_DEVICE_INTERNAL_CONNECTION_ERROR	
6	
Multi board detector internal connection has error.	
ERR_DEVICE_IN_RECOVERY_MODE	
7	
Device is in recovery mode.	
ERR_AED_SENSOR_ERROR	
9	
AED Sensor error occured.	
ERR_OVERLAP_IMAGE_TIMEOUT	
10	
Overlap image timeout occured.	
ERR_GAIN_CALIBRATION_DATA_IS_EXPIRED	
20	
Gain calibration data is need to update	
Remarks
Perform Gain Calibration again if ERR_GAIN_CALIBRATION_DATA_IS_EXPIRED is returned.	

3.2.12 GAIN_PRESET
GAIN_PRESET is the value that represents gain preset.	
Syntax
enum GAIN_PRESET		// C++
public enum GAIN_PRESET		// C#
{
	GAIN_TYPE_0 = 0,
	GAIN_TYPE_1 = 1,
	GAIN_TYPE_2 = 2,
	GAIN_TYPE_3 = 3,
	GAIN_TYPE_4 = 4,
	GAIN_TYPE_5 = 5
};
Member	
Value	
Description	
GAIN_TYPE_0	
0	
Gain type 0	
GAIN_TYPE_1	
1	
Gain type 1	
GAIN_TYPE_2	
2	
Gain type 2	
GAIN_TYPE_3	
3	
Gain type 3	
GAIN_TYPE_4	
4	
Gain type 4	
GAIN_TYPE_5	
5	
Gain type 5	
Remarks
You can select the Gain Type to adjust the sensitivity of the detector to acquire X-ray images with desired brightness according to the specifications of X-ray generator or the type of objects. The following table describes each Gain Type of the sensitivity ratio.	

3.2.13 IMAGE_MODE
IMAGE_MODE is the value that represents image mode.	
Syntax
enum IMAGE_MODE		// C++
public enum IMAGE_MODE		// C#
{
	IMAGE_MODE_UNKNOWN = 0,
	IMAGE_MODE_PREVIEW = 1,
	IMAGE_MODE_NORMAL = 2,
	IMAGE_MODE_BACKUP = 3,
	IMAGE_MODE_STORED = 4
};
Member	
Value	
Description	
IMAGE_MODE_UNKNOWN	
0	
Unknown image mode	
IMAGE_MODE_PREVIEW	
1	
Preview image mode	
IMAGE_MODE_NORMAL	
2	
Normal image mode	
IMAGE_MODE_BACKUP	
3	
Backup image mode	
IMAGE_MODE_STORED	
4	
Stored image mode	
Remarks
  • IMAGE_MODE indicates the image type, and is sent to the Callback Notification function with images. IMAGE_MODE_PREVIEW indicates a preview image (a quarter size of the main image), sent before receiving the main image. IMAGE_MODE_NORMAL indicates the actual main image.	
  • IMAGE_MODE_BACKUP is the image stored in the detector because the image transmission failed	
  • IMAGE_MODE_STORED is the image recorded without the SDK connection in the detector of FXRD-1417W model.	

3.2.14 NEUTERED
NEUTERED is the value that represents neutered information for veterinary use.	
Syntax
enum NEUTERED			// C++
public enum NEUTERED		// C#
{
	UNKNOWN,
	ALTERED,
	UNALTERED
};
Member	
Value	
Description	
UNKNOWN	
0	
No information for neutered.	
ALTERED	
1	
Altered.	
UNALTERED	
2	
Unaltered.	

3.2.15 OFFSET_REFRESH_STATUS
OFFSET_REFRESH_STATUS is the value that represents offset refresh status.	
Syntax
enum OFFSET_REFRESH_STATUS			// C++
public enum OFFSET_REFRESH_STATUS		// C#
{
	OFFSET_REFRESH_FAILED = -1,
	OFFSET_REFRESH_DONE = 1,
	OFFSET_REFRESH_VALIDATION_ERROR = 2
};
Member	
Value	
Description	
OFFSET_REFRESH_FAILED	
-1	
Offset refresh failed.	
OFFSET_REFRESH_DONE	
1	
Offset refresh done.	
OFFSET_REFRESH_VALIDATION_ERROR	
2	
Not used	
Remarks
OFFSET_REFRESH_VALIDATION_ERROR is not used now, and is schedules to be removed.	

3.2.16 REBOOT_STATUS
REBOOT_STATUS is the value that represents detector and SCU reboot status.	
Syntax
enum REBOOT_STATUS			// C++
public enum REBOOT_STATUS		// C#
{
	REBOOT_FINISH_TRANS = 0,
	REBOOT_ERASE = 1,
	REBOOT_WRITE = 2,
	REBOOT_START = 3,
	REBOOT_DONE = 4
};
Member	
Value	
Description	
REBOOT_FINISH_TRANS	
0	
Reboot finish trans.	
REBOOT_ERASE	
1	
Reboot erase	
REBOOT_WRITE	
2	
Reboot write	
REBOOT_START	
3	
Reboot start	
REBOOT_DONE	
4	
Reboot done	

3.2.17 RESULT
RESULT is the value that represents result of function.	
Syntax
enum RESULT			// C++
public enum RESULT		// C#
{
	RESULT_SUCCESS = 0,
	RESULT_ERROR = -1,
	RESULT_SDK_IS_NOT_INITIALIZED = -2,
	RESULT_INVALID_PARAMETER = -3,
	RESULT_NOT_ENOUGH_MEMORY = -4,
	RESULT_INVALID_MODEL = -5,
	RESULT_ALREADY_REGISTERED_DEVICE = -6,
	RESULT_DETECTOR_ID_ALREADY_IN_USE = -7,
	RESULT_COMMAND_IS_NOT_READY = -8,
	RESULT_NOT_SUPPORTED_VERSION = -9,
	RESULT_NOT_SUPPORTED_MODEL = -10,
	RESULT_NOT_ENOUGH_HARD_DISK	= -11,
	RESULT_INVALID_CASTING	= -12,
	RESULT_SCU_NO_INFORMATION = -20,
	RESULT_SCU_ALREADY_CONNECTED = -21,
	RESULT_CONNECTED_FAILED = -22,
	RESULT_SCU_NOT_CONNECTED = -23,
	RESULT_DETECTOR_NO_INFORMATION = -50,
	RESULT_DETECTOR_ALREADY_CONNECTED = -51,
	RESULT_DETECTOR_NOT_CONNECTED = -52,
	RESULT_DETECTOR_NOT_INITIALIZED = -53,
	RESULT_DETECTOR_NOT_CALIBRATED = -54,
	RESULT_DETECTOR_NOT_CALIBRATION_MODE = -55,
	RESULT_DETECTOR_OFFSET_CALIBRATION_IS_NOT_READY = -56,
	RESULT_DETECTOR_IS_IN_BUSY = -57,
	RESULT_DETECTOR_IS_IN_SLEEP = -58,
	RESULT_DETECTOR_SLEEP_MODE_IS_NOT_ENABLED = -59,
	RESULT_DETECTOR_NOT_OFFSET_CALIBRATED = -61,
	RESULT_DETECTOR_NOT_DEFECT_CALIBRATED = -62,
	RESULT_DETECTOR_NOT_GAIN_CALIBRATED = -63,
	RESULT_OSF_DATA_IS_NOT_READY = -64,
	RESULT_DATA_NOT_FOUND = -65,
	RESULT_COMMAND_TIMEOUT = -66,
	RESULT_IO_INVALID_UNKNOWN = -100,
	RESULT_IO_FILE_NOT_EXIST = -101,
	RESULT_IO_INSUFFICIENT_PERMISSION = -102,
	RESULT_IO_INVALID_FILE = -103,
	RESULT_INVALID_MODEL = -104,
	RESULT_INVALID_SERIAL = -105,
	RESULT_IO_NOT_SUPPORTED_VERSION = -106,
	RESULT_IO_CRC_MISMATCH = -107,
	RESULT_IO_FILE_OPEN_FAILED = -108,
	RESULT_IO_HEADER_MISMATCH = -109,
	RESULT_IO_INVALID_FILE_PATH = -110,
	RESULT_IO_INVALID_BUFFER = -111,
	RESULT_IO_INVALID_SIZE = -112,
	RESULT_IO_EXPOSURE_TIME_MISMATCH = -113,
	RESULT_DEVICE_NO_NEEDED_UPDATE = -150,
RESULT_ALREADY_CONNECTED_IP = - 160,
RESULT_ALREADY_REGISTERED_IP = - 161,
	RESULT_SDK_IS_ALREADY_IN_USE = -999
};
Member	
Value	
Description	
RESULT_SUCCESS	
 0	
Command was successfully operated.	
RESULT_ERROR	
-1	
Command failed because of unknown reason.	
RESULT_SDK_IS_NOT_INITIALIZED	
-2	
SDK is not initialized to use.	
RESULT_INVALID_PARAMETER	
-3	
Parameter value is invalid.	
RESULT_NOT_ENOUGH_MEMORY	
-4	
Memory is not enough to operate command.	
RESULT_INVALID_MODEL	
-5	
Not supported or invalid model for command.	
RESULT_ALREADY_REGISTERED_DEVICE	
-6	
Already registered device. Duplicated device.	
RESULT_DETECTOR_ID_ALREADY_IN_USE	
-7	
Duplicated detector ID	
RESULT_COMMAND_IS_NOT_READY	
-8	
Command is not ready to perform.	
RESULT_NOT_SUPPORTED_VERSION	
-9	
Not supported version of firmware.	
RESULT_NOT_SUPPORTED_MODEL	
-10	
Not supported model.	
RESULT_NOT_ENOUGH_HARD_DISK	
-11	
Not enough hard disk. 	
RESULT_SCU_NO_INFORMATION	
-20	
There is no SCU information.	
RESULT_SCU_ALREADY_CONNECTED	
-21	
SCU has been already connected.	
RESULT_CONNECTED_FAILED	
-22	
Failed to connect with SCU.	
RESULT_SCU_NOT_CONNECTED	
-23	
SCU was not connected.	
RESULT_DETECTOR_NO_INFORMATION	
-50	
There is no detector information.	
RESULT_DETECTOR_ALREADY_CONNECTED	
-51	
Detector has been already connected.	
RESULT_DETECTOR_NOT_CONNECTED	
-52	
Detector is not connected.	
RESULT_DETECTOR_NOT_INITIALIZED	
-53	
Detector was not initialized.	
RESULT_DETECTOR_NOT_CALIBRATED	
-54	
Detector was not calibrated.	
RESULT_DETECTOR_NOT_CALIBRATION_MODE	
-55	
Cannot run calibration without calibration mode.	
RESULT_DETECTOR_OFFSET_CALIBRATION_IS_NOT_READY	
-56	
Cannot perform offset calibration right now.	
RESULT_DETECTOR_IS_IN_BUSY	
-57	
Detector is in busy.	
RESULT_DETECTOR_IS_IN_SLEEP	
-58	
Detector is in sleep mode.	
RESULT_DETECTOR_SLEEP_MODE_IS_NOT_ENABLED	
-59	
Sleep mode is not enabled.	
RESULT_DETECTOR_NOT_PRE_OFFSET_CALIBRATED	
-60	
Pre-offset was not calibrated.	
RESULT_DETECTOR_NOT_POST_OFFSET_CALIBRATED	
-61	
Post-offset was not calibrated.	
RESULT_DETECTOR_NOT_DEFECT_CALIBRATED	
-62	
Defect was not calibrated.	
RESULT_DETECTOR_NOT_GAIN_CALIBRATED	
-63	
Gain was not calibrated.	
RESULT_OSF_DATA_IS_NOT_READY	
-64	
Detector OSF data is not created.	
RESULT_DATA_NOT_FOUND	
-65	
Data does not exist.	
RESULT_COMMAND_TIMEOUT	
-66	
Timeout occurred during operation.	
RESULT_IO_INVALID_UNKNOWN	
-100	
File-related error occurred.	
RESULT_IO_FILE_NOT_EXIST	
-101	
File does not exist.	
RESULT_IO_INSUFFICIENT_PERMISSION	
-102	
Insufficient permission to access file.	
RESULT_IO_INVALID_FILE	
-103	
Invalid file	
RESULT_INVALID_MODEL	
-104	
The model is not matched with file information.	
RESULT_INVALID_SERIAL	
-105	
Serial is not matched with file information.	
RESULT_IO_NOT_SUPPORTED_VERSION	
-106	
File version is not supported or invalid.	
RESULT_IO_CRC_MISMATCH	
-107	
CRC is not matched with file information.	
RESULT_IO_FILE_OPEN_FAILED	
-108	
Failed to open a file.	
RESULT_IO_HEADER_MISMATCH	
-109	
File header is not matched with file information.	
RESULT_IO_INVALID_FILE_PATH	
-110	
File path is invalid.	
RESULT_IO_INVALID_BUFFER	
-111	
Invalid buffer	
RESULT_IO_INVALID_SIZE	
-112	
Invalid data or image size	
RESULT_IO_EXPOSURE_TIME_MISMATCH	
-113	
Exposure time is not matched.	
RESULT_DEVICE_NO_NEEDED_UPDATE	
-150	
Device is no need to be updated.	
RESULT_ALREADY_CONNECTED_IP	
-160	
The detector's ip to open is already open.	
RESULT_ALREADY_REGISTERED_IP	
-161	
The detector ip to be registered is already open.	
RESULT_SDK_IS_ALREADY_IN_USE	
-999	
VIVIX SDK is already in use by another process.	

3.2.18 SCU_TYPE
SCU_TYPE is the value that represents SCU types.	
Syntax
enum SCU_TYPE			// C++
public enum SCU_TYPE		// C#
{
	NO_SCU = 0,
	FXRS02A= 1,
	FXRS03A= 2,
	FXRS04A = 3,
	FXRS04B = 4,
};
Member	
Value	
Description	
NO_SCU	
0	
No SCU	
FXRS02A	
1	
FXRS-02A	
FXRS03A	
2	
FXRS-03A	
FXRS04A	
3	
FXRS-04A	
FXRS04B	
4	
FXRS-04B	

3.2.19 SELF_DIAGNOSIS_DONE_TYPE
SELF_DIAGNOSIS_DONE_TYPE is the notification that after the self-diagnosis is completed, the self-diagnosis has executed all processes normally.	
Syntax
enum SELF_DIAGNOSIS_DONE_TYPE			// C++
public enum SELF_DIAGNOSIS_DONE_TYPE		// C#
{
	SELF_DIAGNOSIS_FINISHIED = 0,
	SELF_DIAGNOSIS_FINISHIED_WITH_ERROR = 1,
	SELF_DIAGNOSIS_ABORTED = 2
};
Member	
Value	
Description	
SELF_DIAGNOSIS_FINISHED	
0	
Every self-diagnosis time is executed.	
SELF_DIAGNOSIS_FINISHED_WITH_ERROR	
1	
One or more self-diagnosis item is not executed.	
SELF_DIAGNOSIS_ABORTED	
2	
Self-diagnosis is aborted.	
Remarks
If the detector cannot perform the self-diagnosis item, SELF_DIAGNOSIS_FINISHED_WITH_ERROR occurred.
If the user called DetectorAbortSelfDiagnosis function or DetectorClose function, or the detector is disconnected, then SELF_DIAGNOSIS_ABORTED occurred.
For more details, please refer to this chapter (SELF_DIAGNOSIS_DONE_TYPE), <4.1.344.1.34 SELF_DIAGNOSIS_RESULTSELF_DIAGNOSIS_RESULT>, <4.1.354.1.35 SELF_DIAGNOSIS_REPORTSELF_DIAGNOSIS_REPORT>, <8.2.118.2.11 SetNotifySelfDiagnosisItemResult / SetDelegateSelfDiagnosisItemResultSetNotifySelfDiagnosisItemResult / SetDelegateSelfDiagnosisItemResult>, <8.2.128.2.12 SetNotifySelfDiagnosisItemDone / SetDelegateSelfDiagnosisItemDoneSetNotifySelfDiagnosisItemDone / SetDelegateSelfDiagnosisItemDone>, and <11.111.1 Self DiagnosisSelf Diagnosis>.	

3.2.20 VOLTAGE_STATUS
VOLTAGE_STATUS is the value that represents voltage status of wireless type detector.	
Syntax
enum VOLTAGE_STATUS			// C++
public enum VOLTAGE_STATUS		// C#
{
	VOLTAGE_WARNING = 0,
	VOLTAGE_POWER_OFF = 1,
	VOLTAGE_HIBERNATE = 2
};
Member	
Value	
Description	
VOLTAGE_WARNING	
0	
Voltage warning	
VOLTAGE_POWER OFF	
1	
Power down. No more battery	
VOLTAGE_HIBERNATE	
2	
Power down for power saving.	

3.2.21 TRIGGER
TRIGGER is the value that represents exposure mode.	
Syntax
enum TRIGGER			// C++
public enum TRIGGER		// C#
{
	TRIGGER_UNKNOWN = -1,
	TRIGGER_DR = 0,
	TRIGGER_PASSIVE = 1,
	TRIGGER_AED = 2
};
Member	
Value	
Description	
TRIGGER_UNKNOWN	
-1	
Unknown trigger	
TRIGGER_DR	
0	
Active line trigger	
TRIGGER_PASSIVE	
1	
Passive line trigger	
TRIGGER_AED	
2	
Non-line trigger	
Remarks
TRIGGER_PASSIVE is supported FXRD-1717S, FXRD-1717V, FXRD-FW Series .	

3.2.22 WIRELESS_SIGNAL_QUALITY
WIRELESS_SIGNAL_QUALITY is the value that represents wireless signal quality of wireless detector.	
Syntax
enum WIRELESS_SIGNAL_QUALITY			// C++
public enum WIRELESS_SIGNAL_QUALITY		// C#
{
	WIRELESS_QUALITY_UNKNOWN = 0,
	WIRELESS_QUALITY_VERY_BAD = 1,
	WIRELESS_QUALITY_BAD = 2,
	WIRELESS_QUALITY_NORMAL = 3,
	WIRELESS_QUALITY_GOOD = 4,
	WIRELESS_QUALITY_VERY_GOOD = 5
};
Member	
Value	
Description	
WIRELESS_QUALITY_UNKNOWN	
0	
Unknown wireless signal quality.	
WIRELESS_QUALITY_VERY_BAD	
1	
Wireless signal quality is very bad.	
WIRELESS_QUALITY_BAD	
2	
Wireless signal quality is bad.	
WIRELESS_QUALITY_NORMAL	
3	
Wireless signal quality is normal.	
WIRELESS_QUALITY_GOOD	
4	
Wireless signal quality is good.	
WIRELESS_QUALITY_VERY_GOOD	
5	
Wireless signal quality is very good.	
Remarks
This information is effective under the wireless communication of FXRD-1417W, FXRD-1717N, FXRD-1012N, VXTD-2532E and VW Series models.	

3.2.23 PERFORMANCE_OPTION
PERFORMANCE_OPTION is the value that represents the performance option fow VW series detector.	
Syntax
enum PERFORMANCE_OPTION			// C++
public enum PERFORMANCE_OPTION		// C#
{
	PERFORMANCE_OPTION_BATTERY_SAVER = 0,
	PERFORMANCE_OPTION_HIGH_PERFORMANCE = 1,
};
Member	
	
Value	
Description	
PERFORMANCE_OPTION_BATTERY_SAVER	
	
0	
Battery saver mode	
PERFORMANCE_OPTION_HIGH_PERFORMANCE	
	
1	
High performance mode	

3.2.24 AP_COUNTRY
AP_COUNTRY is the value that represents the country for using AP.	
Syntax
enum AP_COUNTRY			// C++
public enum AP_COUNTRY			// C#
{
			COUNTRY_EU = 0,
			COUNTRY_UNITED_ARAB_EMIRATES,
			COUNTRY_ARGENTINA,
			COUNTRY_AUSTRIA,
			COUNTRY_AUSTRALIA,
			COUNTRY_BELGIUM,
			COUNTRY_BULGARIA,
			COUNTRY_BRAZIL,
			COUNTRY_CANADA,
			COUNTRY_SWITZERLAND,
			COUNTRY_CHILE,
			COUNTRY_CHINA,
			COUNTRY_COLOMBIA,
			COUNTRY_CYPRUS,
			COUNTRY_CZECH_REPUBLIC,
			COUNTRY_GERMANY,
			COUNTRY_DENMARK,
			COUNTRY_ALGERIA,
			COUNTRY_ECUADOR,
			COUNTRY_ESTONIA,
			COUNTRY_EGYPT,
			COUNTRY_SPAIN,
			COUNTRY_FINLAND,
			COUNTRY_FRANCE,
			COUNTRY_UNITED_KINGDOM,
			COUNTRY_GHANA,
			COUNTRY_GREECE,
			COUNTRY_HONG_KONG,
			COUNTRY_CROATIA,
			COUNTRY_HUNGARY,
			COUNTRY_INDONESIA,
			COUNTRY_IRELAND,
			COUNTRY_ISRAEL,
			COUNTRY_INDIA,
			COUNTRY_IRAN,
			COUNTRY_ICELAND,
			COUNTRY_ITALY,
			COUNTRY_JAPAN,
			COUNTRY_KENYA,
			COUNTRY_SOUTH_KOREA,
			COUNTRY_KUWAIT,
			COUNTRY_KAZAKHSTAN,
			COUNTRY_LEBANON,
			COUNTRY_LITHUANIA,
			COUNTRY_LUXEMBOURG,
			COUNTRY_LATVIA,
			COUNTRY_LIBYA,
			COUNTRY_MOROCCO,
			COUNTRY_MEXICO,
			COUNTRY_MALAYSIA,
			COUNTRY_NIGERIA,
			COUNTRY_NETHERLANDS,
			COUNTRY_NORWAY,
			COUNTRY_NEW_ZEALAND,
			COUNTRY_OMAN,
			COUNTRY_PANAMA,
			COUNTRY_PERU,
			COUNTRY_PHILIPPINES,
			COUNTRY_PAKISTAN,
			COUNTRY_POLAND,
			COUNTRY_PUERTO_RICO,
			COUNTRY_PORTUGAL,
			COUNTRY_PARAGUAY,
			COUNTRY_ROMANIA,
			COUNTRY_RUSSIA,
			COUNTRY_SAUDI_ARABIA,
			COUNTRY_SWEDEN,
			COUNTRY_SINGAPORE,
			COUNTRY_SLOVAKIA,
			COUNTRY_SENEGAL,
			COUNTRY_EL_SALVADOR,
			COUNTRY_THAILAND,
			COUNTRY_TUNISIA,
			COUNTRY_TURKEY,
			COUNTRY_TAIWAN,
			COUNTRY_UKRAINE,
			COUNTRY_UNITED_STATES,
			COUNTRY_URUGUAY,
			COUNTRY_UZBEKISTAN,
			COUNTRY_VIETNAM,
			COUNTRY_SOUTH_AFRICA,};

3.2.25 SLEEP_MODE
SLEEP_MODE is the value that represents Time for the detector to enter sleep mode when there is no operation
Syntax
enum SLEEP_MODE			// C++
public enum SLEEP_MODE		// C#
{
	SLEEP_MODE_OFF = -1,
	SLEEP_MODE_10MIN = 0,
	SLEEP_MODE_15MIN = 1,
	SLEEP_MODE_20MIN = 2,
	SLEEP_MODE_25MIN = 3,
	SLEEP_MODE_30MIN = 4,
};	

3.2.26 SHUTDOWN_MODE
SHUTDOWN_MODE is the value that represents Time for the detector to shutdown when there is no operation
Syntax
enum SHUTDOWN_MODE			// C++
public enum SHUTDOWN_MODE		// C#
{
	SHUTDOWN_MODE_OFF = -1,
	SHUTDOWN_MODE_30MIN = 0,
	SHUTDOWN_MODE_60MIN,
	SHUTDOWN_MODE_90MIN,
	SHUTDOWN_MODE_120MIN,
};	

3.2.27 POWER_CONTROL_MODE
POWER_CONTROL_MODE is the value that represents Main power source. When the corresponding source is cut off, the detector is powered off.
Syntax
enum POWER_CONTROL_MODE			// C++
public enum POWER_CONTROL_MODE		// C#
{
	POWER_CONTROL_MODE_BY_BATTERY = 0,
	POWER_CONTROL_MODE_BY_SCU, 
};	

3.2.28 SHOCK_LEVEL
SHOCK_LEVEL is the value that represents an estimate of how much impact the free fall height measured by the accelerometer gave to the detector.
Syntax
enum SHOCK_LEVEL			// C++
public enum SHOCK_LEVEL			// C#
{
	SHOCK_LEVEL_MEASUREMENT_FAILURE = 0,
	SHOCK_LEVEL_1 = 1,
	SHOCK_LEVEL_2 = 2,
};
Members	
Member	
Value	
Description	
SHOCK_LEVEL_MEASUREMENT_FAILURE	
0	
Free fall is not measured or 
function is not supported in this model.	
SHOCK_LEVEL_1	
1	
Expected to be a relatively modest impact.	
SHOCK_LEVEL_2	
2	
Large enough to damage the detector is detected	
Remarks
This information confirms the negligence of the customer, only "reference".	

3.2.29 WIFI_SIGNAL_LEVELS
WIFI_SIGNAL_LEVELS is the value that represents the WIFI strength display model.
Syntax
enum WIFI_SIGNAL_LEVELS			// C++
public enum WIFI_SIGNAL_LEVELS		// C#
{
	WIFI_SIGNAL_5_LEVELS = 0,
	WIFI_SIGNAL_3_LEVELS = 1, 
};	
Remarks
The default is 5. Only VW Series can change this value.	

3.2.30 ACCELERATION_CAL_DIRECTION
ACCELERATION_CAL_DIRECTION is the value that represents a direction of VW Series 6-direction acceleration sensor Calibration.
Syntax
enum WIFI_SIGNAL_LEVELS			// C++
public enum WIFI_SIGNAL_LEVELS		// C#
{
	ACCELERATION_CAL_DIRECTION_0_0_PLUS,
	ACCELERATION_CAL_DIRECTION_0_0_MINUS,
	ACCELERATION_CAL_DIRECTION_MINUS_0_0,
	ACCELERATION_CAL_DIRECTION_0_PLUS_0,
	ACCELERATION_CAL_DIRECTION_PLUS_0_0,
	ACCELERATION_CAL_DIRECTION_0_MINUS_0,
};	
Member	
Description	
ACCELERATION_CAL_DIRECTION_0_0_PLUS 	
Battery cover faces upward	
ACCELERATION_CAL_DIRECTION_0_0_MINUS	
Battery cover faces downward	
ACCELERATION_CAL_DIRECTION_MINUS_0_0	
Battery cover faces downward and tether cable is on the right side. 
	
ACCELERATION_CAL_DIRECTION_0_PLUS_0	
Battery cover is placed on the right and tether cable on the top. 
	
ACCELERATION_CAL_DIRECTION_PLUS_0_0	
Battery cover faces upward and tether cable is on the left. 
	
ACCELERATION_CAL_DIRECTION_0_MINUS_0	
Battery cover is on the left and tether cable is at the bottom. 
	
Remarks
Only VW Series uses this function.	

3.2.31 ACQUISITION_MODE
ACQUISITION_MODE is the value that represents the acquisition method for multi frame supported detector.

Syntax
enum ACQUISITION_MODE	 : int32_t		// C++
public enum ACQUISITION_MODE		// C#
{
	ACQUISITION_MODE_RADIO = 0,
	ACQUISITION_MODE_PF = 1,
	ACQUISITION_MODE_CF = 3, 
};

Members	
Member	
	
Value	
Description	
ACQUISITION_MODE_RADIO	
	
0	
Radiography	
ACQUISITION_MODE_PF	
	
1	
Pulse fluoroscopy	
ACQUISITION_MODE_CF	
	
3	
Continuous fluoroscopy	
Remarks	

3.2.32 BINNING_MODE
BINNING_MODE is the value that represents the BINNING_MODE for multi frame supported detector.
Syntax
enum BINNING_MODE	 : int32_t		// C++
public enum BINNING_MODE		// C#
{
	BINNING_MODE_NONE = 0,
	BINNING_MODE_2X2 = 1,
	BINNING_MODE_1_5X1_5= 2,
};

Members	
Member	
	
Value	
Description	
BINNING_MODE_NONE	
	
0	
Normal acquisition (binning by 1x1)	
BINNING_MODE_2X2	
	
1	
binning by 2x2	
BINNING_MODE_1_5X1_5	
	
2	
binning by 1.5x1.5	

3.2.33 POWER_SOURCE
POWER_SOURCE is the value that represents the detector’s power source.	
Syntax
enum POWER_SOURCE			// C++
public enum POWER_SOURCE		// C#
{
	POWER_SOURCE_UNKNOWN = 0,
	POWER_SOURCE_TETHER = 1, 
	POWER_SOURCE_BATTERY = 2,
	POWER_SOURCE_USB_POWER_ADAPTOR = 3,
	POWER_SOURCE_WIRELESS_POWER = 4,
};



4 Structures


4.1 Structure Classes


4.1.1 DETECTOR_INFO
Structure of detector information data	
Syntax (C++)
struct DETECTOR_INFO
Syntax (C#)
class DETECTOR_INFO
Member	
Type	
Description	
DetectorID	
DETECTOR_ID	
Identifier for detector	
DetectorType	
DETECTOR_TYPE	
Detector type	
Found	
bool	
Detector is discovered	
Enable	
bool	
Detector is selected to use	
ModelName	
wchar_t[21]	
Detector model name	
SerialNumber	
wchar_t[21]	
Detector serial number	
Trigger	
wchar_t[5]	
Generator trigger	
MACAddress	
wchar_t[24]	
Detector MAC address	
IPAddress	
wchar_t[16]	
Detector IP address	
SubnetMask	
wchar_t[16]	
Detector subnet mask address	
LastCalibrationTime	
__int64	
Last calibrated time	
OffsetPath	
wchar_t[256]	
Offset data file path	
DefectPath	
wchar_t[256]	
Defect data file path	
GainPath	
wchar_t[256]	
Gain data file path	
ConnectionState	
CONNECTION_STATE	
Detector connection state	
Direction	
DIRECTION	
Detector direction	
EffectiveArea_Top	
unsigned int	
Effective area (Top)	
EffectiveArea_Bottom	
unsigned int	
Effective area (Bottom)	
EffectiveArea_Left	
unsigned int	
Effective area (Left)	
EffectiveArea_Right	
unsigned int	
Effective area (Right)	
PixelPitch	
double	
Pixel pitch	
OffsetRefreshEnable	
bool	
Enable offset refresh need notification	
OffsetRefreshInterval	
unsigned int	
Offset refresh check interval. This value is valid when the offset refresh need notification is enabled.	
OffsetRefreshTemperature	
unsigned int	
Offset refresh temperature difference. This value is valid when the offset refresh need notification is enabled.	
OffsetRefreshShot	
unsigned int	
Number of shot for offset refresh.	

4.1.2 SCU_INFO
Structure of SCU information data	
Syntax (C++)
struct SCU_INFO
Syntax (C#)
class SCU_INFO
Name	
Type	
Description	
ScuType	
SCU_TYPE	
Type of SCU	
Found	
bool	
SCU is discovered	
Enable	
bool	
SCU is selected to use	
ModelName	
wchar_t[21]	
SCU model name	
SerialNumber	
wchar_t[21]	
SCU serial number	
MACAddress	
wchar_t[24]	
SCU MAC address	
IPAddress	
wchar_t[16]	
SCU IP address	
SubnetMask	
wchar_t[16]	
SCU subnet mask	
Port	
uint	
SCU port number	
ConnectionState	
CONNECTION_STATE	
SCU connection state	

4.1.3 DEVICE_INFO_LIST
Detector and SCU information structure.	
Syntax (C++)
class DEVICE_INFO_LIST
Syntax (C#)
class DEVICE_INFO_LIST
Name	
Type	
Description	
DetectorCount	
int	
Number of detector information.	
DetectorList	
DETECTOR_INFO*	
Detector information.	
SCUCount	
int	
Number of SCU information. (v1.0.4.4 or higher)	
SCUInfo	
SCU_INFO*	
SCU information.	

4.1.4 IMAGE_SIZE_INFO
Image size information	
Syntax (C++)
struct IMAGE_SIZE_INFO
Syntax (C#)
class IMAGE_SIZE_INFO
Name	
Type	
Description	
Width	
unsigned int	
Width of image	
Height	
unsigned int	
Height of image	
EffectiveArea_Top	
unsigned int	
Effective area (Top)	
EffectiveArea_Bottom	
unsigned int	
Effective area (Bottom)	
EffectiveArea_Left	
unsigned int	
Effective area (Left)	
EffectiveArea_Right	
unsigned int	
Effective area (Right)	
PixelPitch	
float	
Pixel pitch	

4.1.5 CALIBRATION_READY_STATE
Calibration in a ready state	
Syntax (C++)
struct CALIBRATION_READY_STATE
Syntax (C#)
class CALIBRATION_READY_STATE
Name	
Type	
Description	
OffsetIsReady	
bool	
Check offset calibration is ready	
DefectIsReady	
bool	
Check defect calibration is ready	
GainIsReady	
bool	
Check gain calibration is ready	

4.1.6 OFFSET_CALIBRATION_PARAM
Offset calibration parameter	
Syntax (C++)
struct OFFSET_CALIBRATION_PARAM
Syntax (C#)
class OFFSET_CALIBRATION_PARAM
Name	
Type	
Description	
action	
_ACTION	
Action status 	
shotCount	
int	
Number of shots.	
Enum	
Description	
START	
Performs offset calibration.	
STOP	
Stops offset calibration.	
Remarks
Only the FXRDN class models can use the STOP of _ACTION.	

4.1.7 DEFECT_UPDATE_PARAM
Defect update parameter	
Syntax (C++)
struct DEFECT_UPDATE_PARAM
Syntax (C#)
class DEFECT_UPDATE_PARAM
Name	
Type	
Description	
action	
_ACTION	
Type of action for defect update.	
numberofshot	
int	
Number of shots for defect update.	
threshhold	
int	
Threshold value for defect update.	
offset	
int	
Offset value for defect update.	
Enum	
Value	
STANDBY	
SDK is ready to acquire images for defect update.  
Acquired images are transmitted via Calibration Step Callback instead of FrameGrabberImageIn Callback.
Images acquired via CalibrationStep can gain avg value and adjust x-ray source deploying such information. 
These images are used as a mean to detect any object between a detector and x-ray source before image acquisition for defect update. 	
START	
SDK starts acquiring images for defect update. Image acquisition is proceeded as many as input shot count or until STOP is called.  
Once images are collected as many as the input shot count, defect data is automatically updated. The result of the data creation is transmitted via CalibrationResult callback, and if the data is successfully created, the changes apply to the previous Defect Calibration file.    
A type of detectors that independently processes defect correction downloads the data via Defect Download for backup. Once defect is updated, SDK switches to Standby mode. 	
STOP	
SDK discards all the collected images and a state of Defect Update is cleared. 	
Remarks
numberofshot, threshold, offset value is valid when the action if START.	

4.1.8 GAIN_CALIBRATION_PARAM
Gain calibration parameter	
Syntax (C++)
struct GAIN_CALIBRATION_PARAM
Syntax (C#)
class GAIN_CALIBRATION_PARAM
Name	
Type	
Description	
action	
_ACTION	
Type of action for gain calibration	
shotCount	
int	
Number of shots	
Enum	
Description	
STANDBY	
SDK is ready to take a shot of gain calibration.   
Images acquired after STANDBY apply to Offset Correction and Defect Correction, but Gain Correction. Acquired Images are transmitted through CalibrationStep Callback instead of FrameGrabberImageIn Callback. 
Images acquired via CalibrationStep can gain avg value and adjust x-ray source deploying such information.
These images are used as a mean to detect any object between a detector and x-ray source before image acquisition.	
ET_GAIN_DATA	
SDK starts obtaining Gain Calibration data. Image acquisition is proceeded as many as input shot count or until CANCLE or STOP is called.  
Once images are collected as many as the input shot count, Gain Calibration data is automatically created. The result of the data creation is transmitted via CalibrationResult callback, and if the data is successfully created, the data should be saved via CalibrationSave. 
If CalibrationSave returns RESULT_NOT_SUPPORTED_MODEL or RESULT_NOT_SUPPORTED_VERSION, it indicates that the detector independently created the data. If so, you can download the data created via GainDownload for backup. 
Once Gain Calibration is completed, SDK switches to Standby mode. 	
CANCEL	
SDK discards all the collected images via GET_GAIN_DATA and changes the status to Standby. 	
STOP	
SDK discards all the collected images, and a state of Gain Calibration is cleared. 	
Remarks
shotCount is valid when the action is GET_GAIN_DATA.	

4.1.9 SCU_VERSION_INFO
SCU version information	
Syntax (C++)
struct SCU_VERSION_INFO
Syntax (C#)
class SCU_VERSION_INFO
Name	
Type	
Description	
PackageVer	
wchar_t[32]	
Package version	
FrimwareVersion	
wchar_t[32]	
SCU firmware version	
KernelVersion	
wchar_t[32]	
SCU kernel version	
BootloaderVersion	
wchar_t[32]	
SCU bootloader version	
RamdiskVer	
wchar_t[32]	
SCU ram disk version	
RegMAC	
wchar_t[32]	
MAC address	
Remarks
The maximum length of information for each version is 20.	

4.1.10 DETECTOR_VERSION_INFO
Detector version information	
Syntax (C++)
struct DETECTOR_VERSION_INFO
Syntax (C#)
class DETECTOR_VERSION_INFO
Name	
Type	
Description	
ModelName	
wchar_t[32]	
Detector model name	
SerialNumber	
wchar_t[32]	
Detector serial number	
FirmwareVersion	
wchar_t[32]	
Detector firmware version	
FPGAVersion	
wchar_t[32]	
Detector FPGA version	
BootloaderVersion	
wchar_t[32]	
Detector bootloader version	
KernelVersion	
wchar_t[32]	
Detector kernel version	
GigEVersion	
wchar_t[32]	
Detector GigE version	

4.1.11 NTYPE_VERSION_INFO
Information on N-type detector version	
Syntax (C++)
struct NTYPE_VERSION_INFO
Syntax (C#)
class NTYPE_VERSION_INFO
Name	
Type	
Description	
ModelName	
wchar_t[32]	
Detector model name	
SerialNumber	
wchar_t[32]	
Detector serial number	
FirmwareVersion	
wchar_t[32]	
Detector firmware version	
FPGAVersion	
wchar_t[32]	
Detector FPGA version	
BootloaderVersion	
wchar_t[32]	
Detector bootloader version	
KernelVersion	
wchar_t[32]	
Detector kernel version	
PackageVer	
wchar_t[32]	
Package version	
RamdiskVer	
wchar_t[32]	
SCU ram disk version	
RegMAC	
wchar_t[32]	
MAC address	

4.1.12 WIRELESS_DETECTOR_STATUS
Status information of a wireless detector	
Syntax (C++)
struct WIRELESS_DETECTOR_STATUS
Syntax (C#)
class WIRELESS_DETECTOR_STATUS
Name	
Type	
Description	
ConnectionInterface	
CONNECTION_INTERFACE	
Detector communication mode	
PowerSource	
POWER_SOURCE	
Power supply to the detector	
WirelessSignalQualityLevel	
WIRELESS_SIGNAL_QUALITY	
Level of wireless communication quality (1~5)	
WirelessSignalQuality	
short	
Wireless communication quality (dB)	
BatteryRemain	
float	
Battery remains (%)	
BatteryVoltage	
float	
Battery voltage (V)	
Temperature	
float	
Temperature of a detector	
Humidity	
float	
Humidity of a detector	

4.1.13 PATIENT_INFO
Patient information	
Syntax (C++)
struct PATIENT_INFO
Syntax (C#)
class PATIENT_INFO
Name	
Type	
Description	
patientName	
wchar_t[65]	
Patient name	
patientId	
wchar_t[65]	
Patient ID	
accNo	
wchar_t[17]	
Accession number	
studyDate	
wchar_t[9]	
Study date	
studyTime	
wchar_t[7]	
Study time	
exposedTime	
long long	
Shooting time	
detectorSerial	
wchar_t[10]	
Serial number of a detector which is used for taking images.	
type	
Int	
Information type (for FXRD-1417W)	
birth	
wchar_t[18]	
Patient birth	
applicationId	
wchar_t[18]	
Serial number of viewer which is used for taking images.	
stepKey	
Int	
Viewer step key	
neutered	
NEUTERED	
Sex neutered [for Vet use]	
speciesDescription	
wchar_t[65]	
Species description [for Vet use]	
breedDescription	
wchar_t[65]	
Breed description [for Vet use]	
responsiblePerson	
wchar_t[65]	
Responsible person [for Vet use]	

4.1.14 STEP_INFO
Patient step information	
Syntax (C++)
class STEP_INFO
Syntax (C#)
class STEP_INFO
Name	
Type	
Description	
stepKey	
long	
Step key	
enable	
int	
Enable	

4.1.15 PATIENTSTEP_INFO
Patient step information	
Syntax (C++)
class PATIENTSTEP_INFO
Syntax (C#)
class PATIENTSTEP_INFO
Name	
Type	
Description	
name	
wchar_t[65]	
Patient name	
birth	
wchar_t[9]	
Patient birth	
id	
wchar_t[65]	
Patient ID	
accNo	
wchar_t[17]	
Accession number	
studyDate	
wchar_t[9]	
Study date	
studyTime	
wchar_t[7]	
Study time	
scheduledDateTime	
wchar_t[15]	
Serial number of a detector which is used for taking images.	
enable	
bool	
Information enable state	
neutered	
NEUTERED	
Sex neutered [for Vet use]	
speciesDescription	
wchar_t[65]	
Species description [for Vet use]	
breedDescription	
wchar_t[65]	
Breed description [for Vet use]	
responsiblePerson	
wchar_t[65]	
Responsible person [for Vet use]	
nStepInfoCount	
int	
Number of step information.	
aryStepInfo	
STEP_INFO*	
Step information struct	

4.1.16 PATIENT_INFO_LIST
Patient information List	
Syntax (C++)
class PATIENT_INFO_LIST
Syntax (C#)
class PATIENT_INFO_LIST
Name	
Type	
Description	
nPatientCount	
int	
Number of patient information	
patientStepInfo	
PATIENTSTEP_INFO*	
Patient and Step information	

4.1.17 BODYPART
Bodypart information	
Syntax (C++)
class BODYPART
Syntax (C#)
class BODYPART
Name	
Type	
Description	
nProjectionInfoCount	
int	
Number of projection information	
meaning	
wchar_t[65]	
Body part meaning	
aryProjectionInfo	
_PROJECTION*	
Projection information struct	
Name	
Type	
Description	
meaning	
wchar_t[65]	
Projection meaning	
projectionKey	
long	
Projection key	
favorite	
bool	
Favorite	

4.1.18 BODY_PART_LIST
Body part List	
Syntax (C++)
class BODY_PART_LIST
Syntax (C#)
class BODY_PART_LIST
Name	
Type	
Description	
viewerSerial	
wchar_t[9]	
Viewer serial	
nBodypartCount	
int	
Number of body parts	
aryBodypartInfo	
BODYPART*	
Body part information struct	

4.1.19 NETWORK_CONFIGURATION
Network configuration information	
Syntax (C++)
struct NETWORK_CONFIGURATION
Syntax (C#)
class NETWORK_CONFIGURATION
Name	
Type	
Description	
IPAddress	
wchar_t[32]	
IP address	
SubnetMaskAddress	
wchar_t[32]	
Subnet mask address	
GatewayAddress	
wchar_t[32]	
Gateway address	

4.1.20 WIRELESS_NETWORK_CONFIGURATION
Information on wireless network configuration	
Syntax (C++)
struct WIRELESS_NETWORK_CONFIGURATION
Syntax (C#)
class WIRELESS_NETWORK_CONFIGURATION
Name	
Type	
Description	
SSID	
wchar_t[32]	
Wireless SSID	
PassKey	
wchar_t[64]	
Pass key	
WirelessOnlyMode	
bool	
Check wireless only mode	
APScanEnabled	
bool	
Check AP scan enable	
eSleepMode	
SLEEP_MODE	
Time for the detector to enter sleep mode when there is no operation	
eShutdownMode	
SHUTDOWN_MODE	
Time for the detector to shutdown when there is no operation	
ePowerControlMode	
POWER_CONTROL_MODE	
Main power source	

4.1.21 WIRELESS_AP_CONFIGURATION
Information on wireless access Point configuration	
Syntax (C++)
struct WIRELESS_AP_CONFIGURATION
Syntax (C#)
class WIRELESS_AP_CONFIGURATION
Name	
Type	
Description	
Enable	
bool	
Check AP enable	
Frequency	
_AP_FREQUENCY	
Frequency of AP. 2.4GHz or 5GHz	
Country	
AP_COUNTRY	
Country	
Bandwidth	
_AP_BAND	
Bandwidth. HT 20, HT 40+ or HT 40-.	
Channel	
int	
AP channel	
SSID	
wchar_t[32]	
SSID	
PassKey	
wchar_t[64]	
pass key	
Enum	
Value	
AP_FREQ_2_4	
0	
AP_FREQ_5	
1	
Enum	
Value	
AP_BAND_20	
0	
AP_BAND_40_PLUS	
1	
AP_BAND_40_MINUS	
2	

4.1.22 SCU_TRIGGER_CONFIGURATION
Information on SCU trigger configuration	
Syntax (C++)
struct SCU_TRIGGER_CONFIGURATION
Syntax (C#)
class SCU_TRIGGER_CONFIGURATION
Name	
Type	
Description	
Method	
_METHOD	
Packet or Line	
Polarity	
_POLARLITY	
Auto, Active high, Active low	
Enum	
Value	
METHOD_SW	
0	
METHOD_HW	
1	
Enum	
Value	
POLARLITY_AUTO	
0	
POLARLITY_ACTIVE_HIGH	
1	
POLARLITY_ACTIVE_LOW	
2	
Remarks
When the line trigger method is selected, the trigger signal transmits according to the trigger port configured from VIVIX Setup or ChameleonSetup. The image cannot be taken if the trigger port is set incorrectly.	

4.1.23 STORED_IMAGE_INFO
Information on stored patient image	
Syntax (C++)
class STORED_IMAGE_INFO
Syntax (C#)
class STORED_IMAGE_INFO
Name	
Type	
Description	
name	
wchar_t[65]	
Patient name	
id	
wchar_t[65]	
Patient ID	
accNo	
wchar_t[17]	
Patient accession number	
studyDate	
wchar_t[9]	
Patient study date	
studyTime	
wchar_t[7]	
Patient stud time	
viewerserial	
wchar_t[9]	
Viewer serial	
imageID	
long long	
Image ID	
timestamp	
unsigned long	
Image timestamp	
imageTime	
wchar_t[24]	
Image time	
serialno	
wchar_t[32]	
serial number	
acqMode	
ACQUISITION_MODE	
acquisition mode.	
binningMode	
BINNING_MODE	
binning mode.	
aoiOffsetX	
int	
Starting X position of the AOI from the binning applied Image.	
aoiOffsetY	
int	
Starting Y position of the AOI from the binning applied Image.	
captureID	
unsigned int	
Image capture ID	
frameIndex	
unsigned int	
Image frame index	
totalFrameCount	
unsigned int	
Image total frame count	
reserve	
wchar_t[51]	
reserve	
type	
Int	
type	
birth	
wchar_t[18]	
Patient birth	
stepKey	
long	
Step key	
neutered	
NEUTERED	
Sex neutered [for Vet use]	
speciesDescription	
wchar_t[65]	
Species description [for Vet use]	
breedDescription	
wchar_t[65]	
Breed description [for Vet use]	
responsiblePerson	
wchar_t[65]	
Responsible person [for Vet use]	

4.1.24 STORED_IMAGE_LIST
Stored image list	
Syntax (C++)
struct STORED_IMAGE_LIST
Syntax (C#)
class STORED_IMAGE_LIST
Name	
Type	
Description	
nCount	
int	
Number of images	
aryInfoList	
STORED_IMAGE_INFO*	
List of stored image information.	

4.1.25 FTM_IMAGE_INFO
Information of the image stored in FXRD-1012N and VXTD-2532E in FTM mode.	
Syntax (C++)
class FTM_IMAGE_INFO
Syntax (C#)
class FTM_IMAGE_INFO
Name	
Type	
Description	
ftmID	
unsigned short	
FTM ID	
imageID	
unsigned long	
Image ID	
timestamp	
unsigned long	
Time	
imageTime	
wchar_t[24]	
Image time	

4.1.26 FTM_IMAGE_LIST
A list of N-type detector backup image	
Syntax (C++)
class FTM_IMAGE_LIST
Syntax (C#)
class FTM_IMAGE_LIST
Name	
Type	
Description	
nCount	
int	
Number of images	
pInfoList	
FTM_IMAGE_INFO*	
List of FTM image information	

4.1.27 IMAGE_INFO
Image information	
Syntax (C++)
class IMAGE_INFO
Syntax (C#)
class IMAGE_INFO
Name	
Type	
Description	
Image	
unsigned short*	
Image from detector	
DetectorID	
DETECTOR_ID	
Detector identifier	
Direction	
DIRECTION	
Detector direction	
UsingBit	
unsigned int	
Using bit of image	
Width	
unsigned int	
Width of image	
Height	
unsigned int	
Height of image	
EffectiveArea_Top	
unsigned int	
Effective area (Top)	
EffectiveArea_Bottom	
unsigned int	
Effective area (Bottom)	
EffectiveArea_Left	
unsigned int	
Effective area (Left)	
EffectiveArea_Right	
unsigned int	
Effective area (Right)	
Channels	
unsigned int	
Channel	
panelPositionX	
int	
X-Axis of panel position 	
panelPositionY	
int	
Y-Axis of panel position	
panelPositionZ	
int	
Z-Axis of panel position	
panelPitch	
float	
Pitch of panel position	
panelRoll	
float	
Roll of panel position	
imageID	
unsigned long	
Image ID	
FTMID	
unsigned short	
FTM image ID	
Remarks
imageID is valid only in FXRDW and FXRDN model.
FTMID is valid only in FXRDN model with FTM mode.	

4.1.28 IMAGE_INFO_EX
An extended version of IMAGE_INFO.
Syntax (C++)
class IMAGE_INFO_EX : public IMAGE_INFO
Syntax (C#)
class IMAGE_INFO : public IMAGE_INFO

Members	
Name	
Type	
Description	
Image	
unsigned short*	
Image from detector	
DetectorID	
DETECTOR_ID	
Detector identifier	
Direction	
DIRECTION	
Detector direction	
UsingBit	
unsigned int	
Using bit of image	
Width	
unsigned int	
Width of image	
Height	
unsigned int	
Height of image	
EffectiveArea_Top	
unsigned int	
Effective area (Top)	
EffectiveArea_Bottom	
unsigned int	
Effective area (Bottom)	
EffectiveArea_Left	
unsigned int	
Effective area (Left)	
EffectiveArea_Right	
unsigned int	
Effective area (Right)	
Channels	
unsigned int	
Channel	
panelPositionX	
int	
X-Axis of panel position 	
panelPositionY	
int	
Y-Axis of panel position	
panelPositionZ	
int	
Z-Axis of panel position	
panelPitch	
float	
Pitch of panel position	
panelRoll	
float	
Roll of panel position	
imageID	
unsigned long	
Image ID	
FTMID	
unsigned short	
FTM image ID	
partialMode 	
PARTIAL_MODE 	
Partial Mode 	
acqMode	
ACQUISITION_MODE	
Acquisition mode	
binningMode	
BINNING_MODE	
Binning mode	
aoiOffsetX	
int	
Starting X position of the AOI from the binning applied Image.	
aoiOffsetY	
int	
Starting Y position of the AOI from the binning applied Image.	
captureID	
unsigned int	
Image capture ID	
frameIndex	
unsigned int	
Image frame index	
totalFrameCount	
unsigned int	
Image total frame count	
Remarks
imageID is valid only in FXRDW and FXRDN model.
FTMID is valid only in FXRDN model with FTM mode.
captureID, frameIndex, totalFrameCount is valid only in FXRDN model using CF/PF mode.	

4.1.29 IMAGE_CONFIGURATION
Image options	
Syntax (C++)
struct IMAGE_CONFIGURATION
Syntax (C#)
class IMAGE_CONFIGURATION
Name	
Type	
Description	
ImageTimeOut	
int	
Image transmission timeout (sec)	
PreviewEnable	
bool	
Check preview enable. N-Model Only	
FastTactModeEnable	
bool	
Use FTM function	

4.1.30 SCU_APINFO_PARAM
SCU AP information parameter	
Syntax (C++)
struct SCU_APINFO_PARAM
Syntax (C#)
class SCU_APINFO_PARAM
Name	
Type	
Description	
apOnOff	
bool	
AP function enable or disable	
inActiveTime	
int	
Time during which transmission and reception are not processed	
txBitrate	
int	
Transfer rate of transmission	
txBytes	
int	
Total bytes transmitted through Ethernet interface	
txMCS	
int	
Transmission MCS index	
txPackets	
int	
Number of transferred packet	
txRetries	
int	
Number of retransmission	
signalAvg	
int	
The average signal strength up to now	
signal	
int	
Current signal strength	
rxPackets	
int	
Total packets received through Ethernet interface	
rxMCS	
int	
Receiving MSC index	
rxBytes	
int	
Total bytes received through Ethernet interface	
rxBitrate	
int	
Transfer rate of reception	
Remarks
The effective value is sent only when the state pf SCU AP function is ‘enable’.	

4.1.31 LOG_DATA
Log file data	
Syntax (C++)
struct LOG_DATA
Syntax (C#)
class LOG_DATA
Name	
Type	
Description	
TimeStamp	
time_t	
Time	
FileName	
wchar_t[50]	
Log file name	
LogSize	
__int64	
Log file size	

4.1.32 LOG_LIST
Log file list	
Syntax (C++)
class LOG_LIST
Syntax (C#)
class LOG_LIST
Name	
Type	
Description	
LogCount	
int	
Number of the log data	
LogList	
LOG_DATA *	
Log data list	
startDate	
time_t	
Start date	
endDate	
time_t	
End date	

4.1.33 OSF_PROFILE_LIST
A list of OSF profile data	
Syntax (C++)
class OSF_PROFILE_LIST
Syntax (C#)
class OSF_PROFILE_LIST
Name	
Type	
Description	
OSFProfileCount	
int	
Number of the OSF profile data	
profileItems	
int *	
List of exposure time of OSF profile data	

4.1.34 DIAGNOSABLE_ITEM_INFO_LIST
The information list of self-diagnosable items	
Syntax (C++)
struct DIGNOSABLE_ITEM_INFO_LIST
Syntax (C#)
class DIGNOSABLE_ITEM_INFO_LIST
Name	
Type	
Description	
ret	
RET	
Return value	
numOfitems	
unsigned short	
Number of items	
items	
_DIAGNOSABLE_ITEM_INFO *	
List of diagnosiable item info.	
Enum	
Value	
RET_START	
1	
RET_ERR_ACQ	
2	
RET_ERR_IMP	
3	
RET_ERR_ERR	
4	
Name	
Type	
Description	
id	
wchar_t*	
All IDs of the self-diagnosis items. 	
categoryName	
wchar_t*	
The category name of self-diagnosis items.	
categoryId	
int	
The category ID of self-diagnosis items.	
itemName	
wchar_t*	
The name of self-diagnosis items.	
itemId	
int	
The ID of self-diagnosis items.	
type	
wchar_t*	
	
timeout	
wchar_t*	
The necessary time for self-diagnosis. (msec)	
Remarks
id consists of categoryId and itemId. (“categoryId” + “itemId”)	

4.1.35 SELF_DIAGNOSIS_RESULT
Information and diagnosis result of each item.	
Syntax (C++)
struct SELF_DIAGNOSIS_RESULT
Syntax (C#)
class SELF_DIAGNOSIS_RESULT
Name	
Type	
Description	
totalStep	
int	
The number of all items diagnosable.	
step	
int	
Current step.	
id	
wchar_t*	
Identifier of item.	
result	
_RESULT	
Self-diagnosis result.	
category	
wchar_t*	
Category of item.	
name	
wchar_t*	
Name of item.	
numOfReport	
unsigned short	
The number of more information.	
reports	
wchar_t*	
More information.	
Enum	
Value	
RESULT_ERROR	
0	
RESULT_WARNING	
1	
RESULT_PASS	
2	
RESULT_INFORMATION	
3	
RESULT_DIAGNOSIS_FAILED_TIMEOUT	
4	
RESULT_DIAGNOSIS_FAILED_DETECTOR_DISCONNECTED	
5	
Remarks
SELF_DIAGNOSIS_RESULT is result of each items and progress of self-diagnosis.
The [totalStep] is the number of all items diagnosable. The [totalStep] is 15(SCU not use) or 17(SCU use). The [step] is current step. Each item of self-diagnosis has the [id].
The detailed information of [result] is described in 4.1.21 SELF_DIAGNOSIS_RESULT._RESULT.
The [category] is category of item. The [name] is name of item.
The [reports] is more information and the [numOfReport] is the number of more information about the result.	

4.1.36 SELF_DIAGNOSIS_REPORT
Information and diagnosis result of all item.	
Syntax (C++)
struct SELF_DIAGNOSIS_REPORT
Syntax (C#)
class SELF_DIAGNOSIS_REPORT
Name	
Type	
Description	
finalResult	
_FINAL_RESULT	
Final result	
numOfResult	
int	
The number of result about all items.	
reports	
SELF_DIAGNOSIS_RESULT*	
The result about all items.	
Enum	
Value	
RESULT_ERROR	
0	
RESULT_WARNING	
1	
RESULT_PASS	
2	
RESULT_DIAGNOSIS_FAILED_ABORT	
3	
RESULT_DIAGNOSIS_FAILED_TIMEOUT	
4	
RESULT_DIAGNOSIS_FAILED_DETECTOR_DISCONNECTED	
5	
RESULT_DIAGNOSIS_FAILED_ACQUISITION_PROCEDURE	
6	
RESULT_DIAGNOSIS_FAILED_IMPORTING_PROCEDURE	
7	
RESULT_DIAGNOSIS_FAILED_UNKNOWN_ERROR	
8	
Remarks
When all item of self-diagnosis is finished, this class has information and diagnosis result of all items.
The [numOfResult] is the number of result about all items.
The [reports] has the information and result of each item.	

4.1.37 ACC_CAL_BY_6PLANE_RESULT
The calibration result of the 6-direction acceleration sensor in the VW series
Syntax (C++)
union ACC_CAL_BY_6PLANE_RESULT
Syntax (C#)
class ACC_CAL_BY_6PLANE_RESULT
Members	
Name	
Type	
Description	
done1 ~ 6	
unsigned char	
Each number from 1 to 6 means an enum of ACCELERATION_CAL_DIRECTION. Check whether calibration of the corresponding direction is completed.	
error1 ~ 6	
unsigned char	
Each number from 1 to 6 means an enum of ACCELERATION_CAL_DIRECTION. Check that there is no problem with the calibration of the direction. If the detector is not positioned in the direction that matches the enum, it will be in an error state.	
notUsed1~4	
unsigned char	
reserved	



5 CVIVIXSDK (C++) / VivixNet (C#)


5.1 Member functions


5.1.1 Initialize
Initializes VIVIX SDK	
Syntax
RESULT Initialize (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to initialize VIVIX SDK.	
RESULT_SDK_IS_ALREADY_IN_USE	
Failed to initialize VIVIX SDK. [SDK is already in use]	
RESULT_ERROR	
Failed to initialize VIVIX SDK.	
Remarks
When VIVIX SDK has been already initialized, this function returns RESULT_SDK_IS_ALREADY_IN_USE.
When refreshing device information was failed, this function returns RESULT_ERROR.
LogPathSet and LogPathGet can be operated only without the Initialize function call, but at least one function call needs before using other functions of VIVIX SDK.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
	nResult = SDK.Initialize();
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to initialize SDK.
	}
	else
	{
		// Failed to initialize SDK.
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

	nResult = pSDK.Initialize();
 if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
 {
 	// Succeeded to initialize SDK.
 }
 else
 {
 	// Failed to initialize SDK.
 }

5.1.2 Destruct
Destructs VIVIX SDK	
Syntax
RESULT Destruct( void )
Returns	
Description	
RESULT_SUCCESS	
Succeeded to destruct VIVIX SDK.	
RESULT_SDK_IS_NOT_INITIALIZED	
The SDK has not been initialized.	
RESULT_ERROR	
Failed to destruct VIVIX SDK.	
Remarks
When VIVIX SDK has not been finalizing, this function returns RESULT_ERROR.
After calling this function, all instances sent through GetDetector and GetScu functions are not effective.
All connections become inactive if this function is called while the devices are connected.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
	nResult = SDK.Destruct();
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to destruct SDK.
	}
	else
	{
		// Failed to destruct SDK.
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

 nResult = pSDK.Destruct();
 if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
 {
 	// Succeeded to destruct SDK.
 }
 else
 {
 	// Failed to destruct SDK.
 }

5.1.3 GetDetector
Acquires the CDetector instead of the configured detector ID	
Syntax (C++)
RESULT GetDetector (
	_In-	DETECTOR_ID		id,
	_Out_	detector::CDetector**	detectorObj
);
Syntax (C#)
RESULT GetDetector (
		int		id,
	ref	Detector		detectorObj
);
Parameters
Id [in]
The detector ID to be acquired.
detectorObj [out]
CDetector instance generated in the ID.	
Returns	
Description	
RESULT_SUCCESS	
Success to get the detector instance.	
RESULT_SDK_IS_NOT_INITIALIZED	
SDK is not initialized to use.	
RESULT_INVALID_PARAMETER	
Parameter value is invalid	
RESULT_INVALID_MODEL	
The model is not matched with file information.	
RESULT_DETECTOR_NO_INFORMATION	
There is no detector information.	
RESULT_ERROR	
Fail to get the detector instance.	
Remarks
RESULT_ERROR returns if no detector instance exists in the configured ID.
The detector instance which was sent to detectorObj argument can specify the detector type through the DetectorTypeGet() function. The detector instance is casted to the relevant detector class by using this information.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	// SDK Initialize finished.

	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	int iDetectorCount = -1;
	nResult = SDK.DetectorCountGet(&iDetectorCount);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get detector count.

		if(iDetectorCount > 0)
		{
			nResult = SDK.GetDetector(0, &pDetector);
			if(nResult == Vieworks::vivix::RESULT_SUCCESS)
			{
				// Succeeded to get detector instance.
			}
			else
			{
				// Failed to get detector instance.
			}
		}
	}
	else
	{
		// Failed to get detector count.
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

 Vieworks.vivix.net.detector.Detector pDetector = null;
 nResult = pSDK.GetDetector(0, ref pDetector);
 if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
 {
 	// Succeeded to get detector instance.
 }
 else
 {
 	// Failed to get detector instance.
 }

5.1.4 GetSCU
Acquires the CSCU instead of the configured detector ID	
Syntax (C++)
RESULT GetSCU (
	_Out_	scu::CSCU**	SCUObj
);
Syntax (C#)
RESULT GetSCU (
	ref 	CSCU	 	SCUObj
);
Parameters
SCUObj [out]
CDetector instance generated in ID.	
Returns	
Description	
RESULT_SUCCESS	
Success to get the SCU instance.	
RESULT_SDK_IS_NOT_INITIALIZED	
SDK is not initialized to use.	
RESULT_INVALID_PARAMETER	
Parameter value is invalid	
RESULT_INVALID_MODEL	
The model is not matched with file information.	
RESULT_SCU_NO_INFORMATION	
There is no SCU information.	
RESULT_ERROR	
Fail to get the SCU instance.	
Remarks
RESULT_ERROR returns if no SCU is registered.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	// SDK Initialize finished.

	Vieworks::vivix::scu::CSCU* pSCU = NULL;
	
	nResult = SDK.GetSCU(&pSCU);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get SCU instance.
	}
	else
	{
		// Failed to get SCU instance.
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

 Vieworks.vivix.net.scu.SCU pSCU = null;
 nResult = pSDK.GetSCU(ref pSCU);
 if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
 {
 	// Succeeded to get SCU instance.
 }
 else
 {
 	// Failed to get SCU instance.
 }

5.1.5 GetNewDeviceInfo
Discoveres newly-connected detector and SCU.	
Syntax (C++)
RESULT GetNewDeviceInfo (
	_Out_	DEVICE_INFO_LIST		deviceList
);
Syntax (C#)
RESULT GetNewDeviceInfo (
	out	DEVICE_INFO_LIST		deviceList
);
Parameters
deviceList [out]
Detector information and SCU information	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get new device information.	
RESULT_SCU_ALREADY_CONNECTED	
Already SCU is connected	
RESULT_DETECTOR_ALREADY_CONNECTED	
Already Detector is connected	
RESULT_INVALID_PARAMETER	
[deviceList] is NULL.	
RESULT_ERROR	
Failed to get new device information.	
Remarks
The object of DEVICE_INFO sent to deviceList is used for registering devices only. The device registered from the RegisterDetector function can be used by generating a new instance through GetDetector or GetSCU.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	Vieworks::vivix::DEVICE_INFO_LIST DeviceInfoList;

	nResult = SDK.GetNewDeviceInfo(&DeviceInfoList);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get new device information.
	}
	else
	{
		// Failed to get new device information.
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

Vieworks.vivix.net.DEVICE_INFO_LIST DeviceInfoList;
nResult = pSDK.GetNewDeviceInfo(out DeviceInfoList);
if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		// Succeeded to get device information list.
}
else
{
		// Failed to get device information list.
}

5.1.6 RegisterDetector
Registers a newly-installed detector.	
Syntax (C++)
RESULT RegisterDetector (
	_In_	DETECTOR_INFO		detectorInfo,
	_In_	int			id
);
Syntax (C#)
RESULT RegisterDetector (
	DETECTOR_INFO		detectorInfo,
	int			id
);
Parameters
detectorInfo [in]
Discovered detector information
Id [in]
Identifier for a new installed detector	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to register new detector information.	
RESULT_INVALID_PARAMETER	
[detectorInfo] is NULL.
[id] is invalid.	
RESULT_ALREADY_REGISTERED_DEVICE	
Already registered detector.	
RESULT_DETECTOR_ID_ALREADY_IN_USE	
Already registered detector identifier.	
Remarks
After registering the detector, the RefreshDeviceInformation() function must be called before use.
After registering DETECTOR_INFO (acquired through GetNewDeviceInfo) to SDK, create an instance through GetDetector to use the registered device.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	Vieworks::vivix::DEVICE_INFO_LIST DeviceInfoList;

	nResult = SDK.GetNewDeviceInfo(&DeviceInfoList);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get new device information.

		for(int i = 0; i < DeviceInfoList.DetectorCount; i++)
		{
			nResult = SDK.RegisterDetector(DeviceInfoList.DetectorList[i], i);
			if(nResult == Vieworks::vivix::RESULT_SUCCESS)
			{
				// Succeeded to register detector;
			}
			else
			{
				// Failed to register detector;
			}
		}
	}
	else
	{
		// Failed to get new device information.
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

Vieworks.vivix.net.DEVICE_INFO_LIST DeviceInfoList;
nResult = pSDK.GetNewDeviceInfo(out DeviceInfoList);
if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		// Succeeded to get new device information list.

		for (int i = 0; i < DeviceInfoList.DetectorCount; i++)
		{
			nResult = pSDK.RegisterDetector(DeviceInfoList.DetectorList[i], i);
			if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
			{
				// Succeeded to register detector.
			}
			else
			{
				// Failed to register detector.
			}
		}
}
else
{
		// Failed to get new device information list.
}

5.1.7 RegisterSCU
Registers a newly-installed SCU	
Syntax (C++)
RESULT RegisterSCU (
	_In_	SCU_INFO	scuInfo
);
Syntax (C#)
RESULT RegisterSCU (
	SCU_INFO	scuInfo
);
Parameters
scuInfo [in]
Discovered SCU information	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to register new SCU information.	
RESULT_INVALID_PARAMETER	
[scuInfo] is NULL.	
RESULT_ALREADY_REGISTERED_DEVICE	
Already registered SCU.	
Remarks
After registering the SCU, the RefreshDeviceInformation() function must be called before use.
After registering SCU_INFO (required through GetNewDeviceInfo) to SDK, create an instance through GetSCU to use the device.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	Vieworks::vivix::DEVICE_INFO_LIST DeviceInfoList;

	nResult = SDK.GetNewDeviceInfo(&DeviceInfoList);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get new device information.

		if(DeviceInfoList.SCUInfo != NULL)
		{
			nResult = SDK.RegisterSCU(DeviceInfoList.SCUInfo);
			if(nResult == Vieworks::vivix::RESULT_SUCCESS)
			{
				// Succeeded to register SCU;
			}
			else
			{
				// Failed to register SCU;
			}
		}
	}
	else
	{
		// Failed to get new device information.
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

Vieworks.vivix.net.DEVICE_INFO_LIST DeviceInfoList;
nResult = pSDK.GetNewDeviceInfo(out DeviceInfoList);
if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		// Succeeded to get new device information list.

		if(DeviceInfoList.SCUInfo != null)
		{
			nResult = pSDK.RegisterSCU(DeviceInfoList.SCUInfo);
			if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
			{
				// Succeeded to register SCU.
			}
			else
			{
				// Failed to register SCU.
			}
		}
}
else
{
		// Failed to get new device information list.
}

5.1.8 UnregisterDetector
Removes of the registered detector information	
Syntax (C++)
RESULT UnregisterDetector (
	_In_	int	id
);
Syntax (C#)
RESULT UnregisterDetector (
	int	id
);
Parameters
id [in]
Detector ID to unregistering.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set notify receiver.	
RESULT_SDK_IS_NOT_INITIALIZED	
SDK is not initialized	
RESULT_DETECTOR_NO_INFORMATION	
[id] is invalid	
RESULT_ERROR	
Failed to unregister detector information.	
Remarks
The instance of the unregistered device is not effective any more.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	Vieworks::vivix::DEVICE_INFO_LIST DeviceInfoList;

	int iDetectorCount = -1;
	nResult = SDK.DetectorCountGet(&iDetectorCount);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get detector count

		if(iDetectorCount > 0)
		{
			nResult = SDK.UnregisterDetector(0);

			if(nResult == Vieworks::vivix::RESULT_SUCCESS)
			{
				// Succeeded to unregister detector;
			}
			else
			{
				// Failed to unregister detector;
			}
		}
	}
	else
	{
		// Failed to get detector count
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

int iDetectorCount = -1;
nResult = pSDK.DetectorCountGet(out iDetectorCount);
if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		// Succeeded to get detector count.

		if(iDetectorCount > 0)
		{
			nResult = pSDK.UnregisterDetector(0);
			if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
			{
				// Succeeded to unregister detector.
			}
			else
			{
				// Failed to unregister detector.
			}
		}
}
else
{
		// Failed to get detector instance.
}

5.1.9 UnregisterSCU
Removes the registered SCU information	
Syntax (C++)
RESULT UnregisterSCU ( void );
Syntax (C#)
RESULT UnregisterSCU ( void );
Returns	
Description	
RESULT_SUCCESS	
Succeeded to unregister SCU information.	
RESULT_SDK_IS_NOT_INITIALIZED	
SDK is not initialized	
RESULT_SCU_NO_INFORMATION	
Not registered SCU information.	
Remarks
The instance of the unregistered device is not effective any more.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	Vieworks::vivix::DEVICE_INFO_LIST DeviceInfoList;

	nResult = SDK.UnregisterSCU();
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to unregister SCU.
	}
	else if(nResult == Vieworks::vivix::RESULT_SCU_NO_INFORMATION)
	{
		// There is no registered SCU.
	}
	else
	{
		// Failed to unregister SCU.
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

nResult = pSDK.UnregisterSCU();
if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		// Succeeded to unregister SCU.
}
else
{
		// Failed to unregister SCU.
}

5.1.10 ChangeDetectorID
Changes or exchanges the registered detector ID	
Syntax (C++)
RESULT ChangeDetectorID (
	_In_	DETECTOR_ID	from,
	_In_	DETECTOR_ID	to,
	_In_	bool		swap
);
Syntax (C#)
RESULT RegisterSCU (
	int	from,
	int	to,
	bool	swap
);
Parameters
from [in]
Source detector ID
to [in]
Target detector ID
swap [in]
Exchanges the Detector ID	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to register new SCU information.	
RESULT_SDK_IS_NOT_INITIALIZED	
The SDK has not been initialized.	
RESULT_INVALID_PARAMETER	
Detector ID is out of range.	
RESULT_DETECTOR_NO_INFORMATION	
Not registered detector ID.	
RESULT_DETECTOR_ID_ALREADY_IN_USE	
Detector ID is already in use.	
Remarks
To change the detector ID, target detector ID must be not assigned.
And to exchange the detector ID, both detector ID must be assigned.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	nResult = SDK.ChangeDetectorID(0, 1, false);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to change the detector ID 0 to 1.
	}
	else
	{
		// Failed to change the detector ID.
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

nResult = pSDK.ChangeDetectorID(0, 1, false);
if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		// Succeeded to change the detector ID 0 to 1.
	}
	else
	{
		// Failed to change the detector ID.
	}

5.1.11 RefreshDeviceInformation
Refreshes the device information.	
Syntax (C++)
RESULT RefreshDeviceInformation ( void );
Syntax (C#)
RESULT RefreshDeviceInformation ( void );
Returns	
Description	
RESULT_SUCCESS	
Succeeded to refresh device information.	
RESULT_DETECTOR_ALREADY_CONNECTED	
One or more detector is connected.	
RESULT_SCU_ALREADY_CONNECTED	
SCU is connected.	
Remarks
If the connecting status of equipment is changed after running application, call this function to recollect and renew the information of equipment installed to the system. Otherwise, the changing information of the equipment cannot be renewed properly.
After registering the detector or SCU, call this function first before using the device.	

5.1.12 DetectorCountGet
Gets the count of detector information	
Syntax
RESULT DetectorCountGet (
	_Out_	int	count
);
Syntax
RESULT DetectorCountGet (
	out	int	count
);
Parameters
count [out]
Number of detector information.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get detector information count.	
RESULT_SDK_IS_NOT_INITIALIZED	
SDK is not initialized	
RESULT_INVALID_PARAMETER	
[count] is null.	
Remarks
Maximum number of detector is 5. This function returns number of registered detector information.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	Vieworks::vivix::DEVICE_INFO_LIST DeviceInfoList;

	int iDetectorCount = -1;
	nResult = SDK.DetectorCountGet(&iDetectorCount);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get detector count;
	}
	else
	{
		// Failed to get detector count;
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

int iDetectorCount = -1;
nResult = pSDK.DetectorCountGet(out iDetectorCount);
if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		// Succeeded to get detector count.
}
else
{
		// Failed to get detector count.
}

5.1.13 DetectorInfoGet
Gets the registered CDetector object by detector ID	
Syntax (C++)
RESULT DetectorInfoGet (
	_In_	int		id,
	_Out	DETECTOR_INFO	info
);
Syntax (C#)
RESULT DetectorInfoGet (
		int		id,
	out 	DETECTOR_INFO	info
);
Parameters
id [in]
Detector identifier
info [out]
Detector information structure	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get detector information.	
RESULT_SDK_IS_NOT_INITIALIZED	
SDK is not initialized	
RESULT_INVALID_PARAMETER	
Detector ID is out of range.
[info] is null.	
RESULT_DETECTOR_NO_INFORMATION	
Not registered detector ID.	
RESULT_ERROR	
Failed to get detector information.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	Vieworks::vivix::DETECTOR_INFO* DetectorInfo;

	nResult = SDK.DetectorInfoGet(0, &DetectorInfo);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get detector information
	}
	else
	{
		// Failed to get detector information
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

Vieworks.vivix.net.DETECTOR_INFO DetectorInfo;
nResult = pSDK.DetectorInfoGet(0,out DetectorInfo);
if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		// Succeeded to get detector information.
}
else
{
		// Failed to get detector information.
}

5.1.14 SCUInfoGet
Gets SCU information in the form of const structure pointer	
Syntax (C++)
RESULT SCUInfoGet (
	_Out_	SCU_INFO	info
);
Syntax (C#)
RESULT SCUInfoGet (
	out 	SCU_INFO	info
);
Parameters
info [out]
SCU information structure	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get SCU information.	
RESULT_SDK_IS_NOT_INITIALIZED	
SDK is not initialized.	
RESULT_INVALID_PARAMETER	
[info] is null.	
RESULT_ERROR	
Failed to get SCU information.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	Vieworks::vivix::SCU_INFO* SCUInfo;

	nResult = SDK.SCUInfoGet(&SCUInfo);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get SCU information
	}
	else
	{
		// Failed to get SCU information
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

Vieworks.vivix.net.SCU_INFO SCUInfo;
nResult = pSDK.SCUInfoGet(out SCUInfo);
if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		// Succeeded to get SCU information.
}
else
{
		// Failed to get SCU information.
}

5.1.15 TriggerPortSet
Sets detector trigger port	
Syntax (C++)
RESULT TriggerPortSet (
	_In_	int		id,
	_In_	TRIGGER_PORT	triggerPort
);
Syntax (C#)
RESULT TriggerPortSet (
	int		id,
	TRIGGER_PORT	triggerPort
);
Parameters
id [in]
Detector identifier
triggerPort [in]
Detector trigger port	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set detector trigger port.	
RESULT_SDK_IS_NOT_INITIALIZED	
SDK is not initialized.	
RESULT_INVALID_PARAMETER	
[triggerPort] is already being used by another detector.	
RESULT_DETECTOR_NO_INFORMATION	
No detector information.	
RESULT_ERROR	
Failed to set detector trigger port.	
Remarks
The overlapped items cannot be allocated to triggerPort.
This setting value is effective when the trigger mode of SCU is set as line trigger only.
Refer to the VIVIX-S user manual about the trigger connection of SCU and generator. Be sure to check that not all the registered detectors have ineffective trigger ports (TRIGGER_PORT_NONE), because at least one detector should have the effective trigger port.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	nResult = SDK.TriggerPortSet(0, Vieworks::vivix::TRIGGER_PORT::TRIGGER_PORT_A);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to set trigger port A
	}
	else
	{
		// Failed to set trigger port A
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

nResult = pSDK.TriggerPortSet(0, Vieworks.vivix.net.TRIGGER_PORT.TRIGGER_PORT_A);
if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		// Succeeded to set trigger port.
}
else
{
		// Failed to set trigger port.
}

5.1.16 TriggerPortGet
Gets detector trigger port	
Syntax (C++)
RESULT TriggerPortGet (
	_In_	int		id,
	_Out_	TRIGGER	_PORT	triggerPort
);
Syntax (C#)
RESULT TriggerPortGet (
		int		id,
	ref 	TRIGGER_PORT	triggerPort
);
Parameters
id [in]
Detector identifier
triggerPort [out]
Detector trigger port	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get detector trigger mode.	
RESULT_SDK_IS_NOT_INITIALIZED	
SDK is not initialized.	
RESULT_INVALID_PARAMETER	
Detector ID is out of range.	
RESULT_DETECTOR_NO_INFORMATION	
No detector information.	
RESULT_ERROR	
Failed to get detector trigger mode.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	Vieworks::vivix::TRIGGER_PORT TriggerPort = Vieworks::vivix::TRIGGER_PORT::TRIGGER_PORT_NONE;

	nResult = SDK.TriggerPortGet(0, &TriggerPort);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get trigger port
	}
	else
	{
		// Failed to get trigger port
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

Vieworks.vivix.net.TRIGGER_PORT TriggerPort = new Vieworks.vivix.net.TRIGGER_PORT();
nResult = pSDK.TriggerPortGet(0, ref TriggerPort);
if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		// Succeeded to get trigger port.
}
else
{
		// Failed to get trigger port.
}

5.1.17 LogPathSet
Sets log path	
Syntax (C++)
RESULT LogPathSet (
	_In_	FILE_PATH	filePath
);
Syntax (C#)
RESULT LogPathSet (
	string	filePath
);
Parameters
filePath [in]
Path of log file	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get log path.	
RESULT_INVALID_PARAMETER	
Invalid or wrong file path.	
RESULT_ERROR	
Failed to get log path.	
Remarks
Specify the route of log as readable / writable one since it has rights to operate the application which uses VIVIX SDK. If the route has insufficient rights, log cannot be generated.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	nResult = SDK.LogPathSet(_T("D:\\Log\\"));
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to set log path
	}
	else
	{
		// Failed to set log path
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

	nResult = pSDK.LogPathSet("D:\\Log\\");
	if(nResult == Vieworks.vivix.net.RESULT_SUCCESS)
	{
		// Succeeded to set log path
	}
	else
	{
		// Failed to set log path
	}

5.1.18 LogPathGet
Gets log path	
Syntax (C++)
RESULT LogPathGet (
	_Out_	FILE_PATH*	filePath
);
Syntax (C#)
RESULT LogPathGet (
	out 	string		filePath
);
Parameters
filePath [out]
Path of log file	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get log path.	
RESULT_INVALID_PARAMETER	
[filePath] is null.	
RESULT_ERROR	
Failed to get log path.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	Vieworks::vivix::FILE_PATH LogPath;

	nResult = SDK.LogPathGet(&LogPath);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get log path
	}
	else
	{
		// Failed to get log path
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

	string LogPath;

	nResult = pSDK.LogPathGet(out LogPath);
	if(nResult == Vieworks.vivix.net.RESULT_SUCCESS)
	{
		// Succeeded to get log path
	}
	else
	{
		// Failed to get log path
	}

5.1.19 LogCountLimitSet
Limits the number of log files	
Syntax (C++)
RESULT LogCountLimitSet (
	_In_	bool	enable,
	_In_	int	limit
);
Syntax (C#)
RESULT LogCountLimitSet (
		bool	enable,
	 	int	limit
);
Parameters
enable [in]
Enable or disable the log count limitation.
limit [in]
The maximum number of log files.
Minimum limit count is 3.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get log path.	
RESULT_INVALID_PARAMETER	
Invalid limit count.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	Vieworks::vivix::FILE_PATH LogPath;

	nResult = SDK.LogCountLimitSet(true, 10);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to set log limit count
	}
	else
	{
		// Failed to set log limit count
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

	string LogPath;

	nResult = pSDK.LogCountLimitSet(true, 10);
	if(nResult == Vieworks.vivix.net.RESULT_SUCCESS)
	{
		// Succeeded to set log limit count
	}
	else
	{
		// Failed to set log limit count
	}

5.1.20 DebugRawExport
Enables or disables exporting the raw image for debug.	
Syntax (C++)
RESULT DebugRawExport (
	_In_	bool		enable,
	_In_	FILE_PATH	rawPath
	_In_	int		imageLimitCount
);
Syntax (C#)
RESULT DebugRawExport (
		bool	enable,
	 	string	rawPath,
		int	imageLimitCount
);
Parameters
enable [in]
Enable or disable the raw image exporting.
rawPath [in]
The path that the image is saved.
imageLimitCount [in]
Maximum number of raw images.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set raw export setting.	
RESULT_SDK_IS_NOT_INITIALIZED	
The SDK has not been initialized.	
RESULT_INVALID_PARAMETER	
Invalid limit count or invalid path.	
RESULT_ERROR	
Failed to create image export folder.	
Remarks
This setting is valid only for the current instance.
The path on which an image is saved, the application must have the write permission.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	Vieworks::vivix::FILE_PATH RawImagePath;
 wcscpy_s(RawImagePath, _countof(RawImagePath), L”D:\\RawExport”);

	nResult = SDK.DebugRawExport(true, RawImagePath, 5);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to set raw image export
	}
	else
	{
		// Failed to set raw image export
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

	string RawImagePath = @”D:\\RawExport”;

	nResult = pSDK.DebugRawExport(true, RawImagePath, 5);
	if(nResult == Vieworks.vivix.net.RESULT_SUCCESS)
	{
		// Succeeded to set raw image export
	}
	else
	{
		// Failed to set raw image export

5.1.21 UILockPreventionModeGet
Gets whether UI Prevention mode is enabled.	
Syntax (C++)
RESULT UILockPreventionModeGet (
	_Out_	bool*		pbEnable,
);
Syntax (C#)
RESULT UILockPreventionModeGet (
	ref	bool		bEnable,
);
Parameters
pbEnable [out]
whether UI Prevention mode is enabled.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get whether UI Prevention mode is enabled.	
RESULT_INVALID_PARAMETER	
Parameter is NULL.	
Remarks
This setting is valid only for the current instance.
This value is set to ‘enable’ at the time when instance is created.
If this value is enabled, message pump will work to prevent UI lock in VIVIX SDK. This can be a problem if the SDK user wants to control the flow of the program using Windows messages.
If this value is disabled, the message pump that works for preventing UI lock in the VIVIX SDK will be stopped, so SDK users may need additional development to prevent UI lock. The SDK User must thoroughly review and test UI updates. In particular, problems may arise when trying to control the UI directly from the Notify / Delegate function.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

bool bEnable;

	nResult = SDK.UILockPreventionModeGet(&bEnable);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get whether UI prevention mode is enabled.
	}
	else
	{
		// Failed to get whether UI prevention mode is enabled
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

bool bEnable;

	nResult = pSDK. UILockPreventionModeGet(ref bEnable);
	if(nResult == Vieworks.vivix.net.RESULT_SUCCESS)
	{
		// Succeeded to get whether UI prevention mode is enabled
	}
	else
	{
		// Failed to get whether UI prevention mode is enabled.
	}

5.1.22 UILockPreventionModeSet
Sets whether UI Prevention mode is enabled	
Syntax (C++)
RESULT UILockPreventionModeSet (
	_In_	bool		bEnable,
);
Syntax (C#)
RESULT UILockPreventionModeSet (
		bool		bEnable,
);
Parameters
pbEnable [out]
whether UI Prevention mode is enabled.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set whether UI Prevention mode is enabled.	
Remarks
This setting is valid only for the current instance.
This value is set to ‘enable’ at the time when instance is created.
If this value is enabled, message pump will work to prevent UI lock in VIVIX SDK. This can be a problem if the SDK user wants to control the flow of the program using Windows messages.
If this value is disabled, the message pump that works for preventing UI lock in the VIVIX SDK will be stopped, so SDK users may need additional development to prevent UI lock.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

	nResult = SDK.UILockPreventionModeSet(false);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to set whether UI prevention mode is enabled.
	}
	else
	{
		// Failed to set whether UI prevention mode is enabled
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

bool bEnable;

	nResult = pSDK.UILockPreventionModeSet(false);
	if(nResult == Vieworks.vivix.net.RESULT_SUCCESS)
	{
		// Succeeded to set whether UI prevention mode is enabled
	}
	else
	{
		// Failed to set whether UI prevention mode is enabled.
	}

5.1.23 KeepRecentImageGet
Gets the parameters for keeping the recent images.	
Syntax (C++)
RESULT KeepRecentImageGet (
	_Out_	bool*		pbEnable, 
	_Out _	int*		pnLimitCount,
	_ Out _	FILE_PATH*	pfilePath
);
Syntax (C#)
RESULT KeepRecentImageGet (
	ref	bool		bEnable,
	ref	int		nLimitCount
	ref	string		filePath,
);
Parameters
pbEnable [out]
Enable or disable the recent image keeping.
pnLimitCount [out]
Maximum number of recent images.
pfilePath [out]
The path that the image is kept.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the parameters for keeping the recent images.	
RESULT_INVALID_PARAMETER	
Parameter is NULL.	
Remarks
This setting is valid only for the current instance.
The path on which an image is saved, the application must have the write permission.
Images saved with this function can be obtained using RecentImageGet as described in chapter 6.1.48.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

 bool bEnable;
 int nLimit;
 Vieworks::vivix::FILE_PATH RawImagePath;

	nResult = SDK.KeepRecentImageGet(&bEnable, &nLimit, &RawImagePath);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to get the parameters for keeping the recent images.
	}
	else
	{
		// Failed to get the parameters for keeping the recent images
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

 bool bEnable;
 int nLimit;
 string RawImagePath;

	nResult = pSDK. KeepRecentImageGet(ref bEnable, ref nLimit, ref RawImagePath);
	if(nResult == Vieworks.vivix.net.RESULT_SUCCESS)
	{
		// Succeeded to get the parameters for keeping the recent images
	}
	else
	{
		// Failed to get the parameters for keeping the recent images
	}

5.1.24 KeepRecentImageSet
Sets the parameters for keeping the recent images	
Syntax (C++)
RESULT DebugRawExport (
	_In_	bool		bEnable, 
	_In _	int		nLimitCount,
	_In _	FILE_PATH	filePath,
	_Out_	bool*		pbCheckEnoughStorage,
);
Syntax (C#)
RESULT DebugRawExport (
		bool		bEnable, 
		int		nLimitCount
		string		filePath
	ref	bool		bCheckEnoughStorage
);
Parameters
bEnable [in]
Enable or disable the recent image keeping.
nLimitCount [in]
Maximum number of recent images.
filePath [in]
The path that the image is kept. 
pbCheckEnoughStorage [out]
When this setting is enabled, checks that the hard disk capacity is adequate.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the parameters for keeping the recent images.	
RESULT_INVALID_PARAMETER	
The limit count must be between 1 and 200.
The length of the path must be 255 characters or less.
If folder does not exist, folder creation failed.
You do not have access to the folder.	
Remarks
This setting is valid only for the current instance.
The path on which an image is saved, the application must have the write permission.
Images saved with this function can be obtained using RecentImageGet as described in chapter 6.1.48.
This function checks the capacity when trying to use the ‘keep recent image’ function, but does not give a warning about the capacity while using the program. Applications that use the SDK need to manage this capacity.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;

 bool bCheckEnoughStorage

	nResult = SDK.KeepRecentImageSet(true, 200, _T("D:\\Log\\"), &bCheckEnoughStorage);
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		if(bCheckEnoughStorage == true)
			; // Succeeded to set the parameters for keeping the recent images.
		else
			; // Succeeded to set the parameters but not enough hardisk storage.
	}
	else
	{
		// Failed to set the parameters for keeping the recent images
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

	bool bCheckEnoughStorage

	nResult = pSDK. KeepRecentImageSet(true, 200, _T("D:\\Log\\"), ref bCheckEnoughStorage);
	if(nResult == Vieworks.vivix.net.RESULT_SUCCESS)
	{
		if(bCheckEnoughStorage == true)
			; // Succeeded to set the parameters for keeping the recent images.
		else
			; // Succeeded to set the parameters but not enough hardisk storage.
	}
	else
	{
		// Failed to set the parameters for keeping the recent images
	}

5.1.25 ClearRecentImage
Clears the saved recent image	
Syntax
RESULT ClearRecentImage( void )
Returns	
Description	
RESULT_SUCCESS	
Succeeded to clear recent image.	
RESULT_ERROR	
Failed to clear recent image.	
Remarks
When this function is called, all raw files in the folder set via the KeepRecentImageSet function are deleted.
If the path is not set, it is automatically set to 'C:\ProgramData\Vieworks\_VIVIX_backup'.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
	nResult = SDK.Destruct();
	if(nResult == Vieworks::vivix::RESULT_SUCCESS)
	{
		// Succeeded to destruct SDK.
	}
	else
	{
		// Failed to destruct SDK.
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;

 nResult = pSDK.Destruct();
 if (nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
 {
 	// Succeeded to destruct SDK.
 }
 else
 {
 	// Failed to destruct SDK.
 }



6 CDetector (C++) / Detector (C#)


6.1 Member function


6.1.1 DetectorID
Acquires the detector ID of the current instance	
Syntax (C++)
DETECTOR_ID DetectorID (void);
Returns	
Description	
DETECTOR_ID	
Detector ID of the current instance	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::DETECTOR_ID DetectorID = pDetector->DetectorID();

		switch (DetectorID)
		{
		case 0:
			// Detector 0
			break;

		case 1:
			// Detector 1
			break;

		case 2:
			// Detector 2
			break;

		case 3:
			// Detector 3
			break;

		case 4:
			// Detector 4
			break;

		default:
			// Invalid Detector
			break;
		}
	}

6.1.2 DetectorTypeGet
Acquires the detector type of the current instance	
Syntax
DETECTOR_TYPE DetectorTypeGet (void);
Returns	
Description	
DETECTOR_TYPE	
Detector type of the current instance	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
nResult = SDK.Initialize();
if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
{
		Vieworks::vivix::detector::CDetector* pDetector = NULL;
		nResult = SDK.GetDetector(0, &pDetector);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS && pDetector != NULL)
		{
			switch(pDetector->DetectorTypeGet())
			{
			case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_S:
			// The detector is 1417S model.
			break;

			case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_S:
			// The detector is 1717S model.
			break;

			case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_V:
			// The detector is 1717V model.
			break;

			case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			// The detector is 1417W model.
			break;

			case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
			// The detector is 1012N model.
			break;

			case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
			// The detector is 1417N model.
			break;

			case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
			// The detector is 1717N model.
			break;

			case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			// The detector is 2532E model.
			break;

			}
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
nResult = pSDK.Initialize();
if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		Vieworks.vivix.net.detector.Detector pDetector = null;
		nResult = pSDK.GetDetector(0, ref pDetector);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS && pDetector != null)
		{
			switch(pDetector.DetectorTypeGet())
			{
			case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_S:
			// The detector is 1417S model.
			Break;

			case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_S:
			// The detector is 1717S model.
			Break;

			case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_V:
			// The detector is 1717V model.
			Break;

			case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			// The detector is 1417W model.
			Break;

			case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
			// The detector is 1012N model.
			Break;

			case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
			// The detector is 1417N model.
			Break;

			case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
			// The detector is 1717N model.
			Break;

			case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			// The detector is 2532E model.
			Break;

			}
		}
}

6.1.3 DetectorClassGet
Shows the class, where the CDtector instance should be casted to. This value can be used to simplify codes.	
Syntax (C++)
DETECTOR_CLASS DetectorClassGet( void );
Syntax (C#)
DETECTOR_CLASS DetectorClassGet( void );
Remarks
This function returns DETECTOR_CLASS.
This function simplifies your code than checking for 'detectorType' to construct switch statement. Compare the old code with the new code in the example below. Also, when your viewer supports new detectors, you do not need to check every statement and add a detector model.	
Examples (C++) – New Style Code
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorClassGet())
		{
		case DETECTOR_CLASS_FXRDN:
	 	(Vieworks::vivix::detector::CFXRDN*)pDetector->DiagnosableItemsGet(true, &DiagnosableItemInfoList);
			break;
		case DETECTOR_CLASS_FXRDW:
		 	(Vieworks::vivix::detector::CFXRDW*)pDetector->DiagnosableItemsGet(true, &DiagnosableItemInfoList);
			break;
		default:
			// Not supported model.
			break;
		}
	}
Examples (C++) – Old Style Code
Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_T:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->DiagnosableItemsGet(true, &DiagnosableItemInfoList);
			}
			break;
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->DiagnosableItemsGet(true, &DiagnosableItemInfoList);
			}
			break;
		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.
		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}

6.1.4 PanelCount
Gets the total number of panels connected in a detector	
Syntax(C++/C#)
int PanelCount()
Return Values
The panel count is returned. (1 ~ )	
Examples (C++)
 Vieworks::vivix::detector::CDetector* pDetector = NULL;
	// SDK Initialized, DetectorGet done, Open finished, using namespaces.

	int nPanelCount = pDetector->PanelCount();
Examples (C#)
	Vieworks.vivix.net.detector.Detector Detector = null;
	// SDK Initialized, DetectorGet done, Open finished, using namespaces.

	int panelCount = Detector.PanelCount();

6.1.5 Open
Opens the detector connection	
Syntax
RESULT Open (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to open the detector connection. 	
RESULT_DETECTOR_ALREADY_CONNECTED	
The detector has already been connected.	
RESULT_DETECTOR_IS_IN_BUSY	
Detector opening is in progress.
Detector is refreshing offset calibration[FXRD-1417W Only]	
RESULT_INVALID_MODEL	
Invalid or not supported model.	
RESULT_ERROR	
Failed to open the detector connection.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
nResult = SDK.Initialize();
if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
{
		Vieworks::vivix::detector::Cdetector* pDetector = NULL;
		nResult = SDK.GetDetector(0, &pDetector);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS && pDetector != NULL)
		{
			nResult = pDetector->Open();
			if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
			{
				// Succeeded to open detector.
			}
			else
			{
				// Failed to open detector.
			}
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
nResult = pSDK.Initialize();
if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		Vieworks.vivix.net.detector.Detector pDetector = null;
		nResult = pSDK.GetDetector(0, ref pDetector);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS && pDetector != null)
		{
			nResult = pDetector.Open();
			if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
			{
				// Succeeded to open detector.
			}
			else
			{
				// Failed to open detector.
			}
		}
}

6.1.6 Close
Closes detector connection	
Syntax
RESULT Close (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to close detector connection. 	
RESULT_DETECOTR_NOT_CONNECTED	
Detector is not connected.	
Remarks
All internal memories are deleted.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
nResult = SDK.Initialize();
if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
{
		Vieworks::vivix::detector::Cdetector* pDetector = NULL;
		nResult = SDK.GetDetector(0, &pDetector);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS && pDetector != NULL)
		{
			nResult = pDetector->Close();
			if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
			{
				// Succeeded to close detector.
			}
			else
			{
				// Failed to close detector.
			}
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
nResult = pSDK.Initialize();
if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
{
		Vieworks.vivix.net.detector.Detector pDetector = null;
		nResult = pSDK.GetDetector(0, ref pDetector);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS && pDetector != null)
		{
			nResult = pDetector.Close();
			if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
			{
				// Succeeded to close detector.
			}
			else
			{
				// Failed to close detector.
			}
		}
}

6.1.7 IsWirelessSupport
Shows whether the detector model of a relevant instance can support the wireless function or not	
Syntax (C++)
bool IsWirelessSupport (void);
Syntax (C#)
bool IsWirelessSupport (void);
Returns	
Description	
bool	
Checks whether the detector model of a relevant instance can support the wireless function or not.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		bool bWirelessSupport = pDetector->IsWirelessSupport();
		if(bWirelessSupport == true)
		{
			// Wireless support model
		}
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		bool bWirelessSupport = pDetector.IsWirelessSupport();
		if(bWirelessSupport == true)
		{
			// Wireless support model
		}
	}

6.1.8 TriggerModeSet
Sets detector trigger mode	
Syntax (C++)
RESULT TriggerModeSet (
	_In_	TRIGGER		trigger
);
Syntax (C#)
RESULT TriggerModeSet (
	TRIGGER		trigger
);
Parameters
trigger [in]
Detector trigger mode	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set detector trigger mode.	
RESULT_INVALID_PARAMETER	
[trigger] value is invalid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_DETECTOR_IS_IN_BUSY	
Detector is in offset calibration processing.[FXRD-1417W]	
RESULT_ERROR	
Failed to set detector trigger mode.	
Remarks
Passive mode is supported only for FXRD-1717S and FXRD-1717V.
This function can be used after opening detector connection.
In case of W type or N type detector, the value changed by this function cannot be saved to the detector as a temporary one. Therefore, the changing value is returned to the value configured in Setup when rebooting the detector. The S type detector, however, is saved to the detector and maintains the changed value.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		Vieworks::vivix::TRIGGER TriggerMode = Vieworks::vivix::TRIGGER::TRIGGER_AED;
		nResult = pDetector->TriggerModeSet(TriggerMode);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set trigger mode.
		}
		else
		{
			// Failed to set trigger mode.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		Vieworks.vivix.net.TRIGGER TriggerMode = Vieworks.vivix.net.TRIGGER.TRIGGER_AED;
		nResult = pDetector.TriggerModeSet(TriggerMode);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set trigger mode.
		}
		else
		{
			// Failed to set trigger mode.
		}
}

6.1.9 TriggerModeGet
Gets detector trigger mode	
Syntax (C++)
RESULT TriggerModeGet (
	_Out_	TRIGGER*	trigger
);
Syntax (C#)
RESULT TriggerModeGet (
	out 	TRIGGER		trigger
);
Parameters
trigger [out]
Detector trigger mode	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get detector trigger mode.	
RESULT_INVALID_PARAMETER	
[trigger] value is invalid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get detector trigger mode.	
Remarks
Passive mode is supported only FXRD-1717S and FXRD-1717V.
This function can be used after opening detector connection.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		Vieworks::vivix::TRIGGER TriggerMode = Vieworks::vivix::TRIGGER::UNKNOWN;
		nResult = pDetector->TriggerModeGet(&TriggerMode);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get trigger mode.

			Switch(TriggerMode)
			{
			case Vieworks::vivix::TRIGGER::TRIGGER_DR:
			// The Detector’s trigger mode is DR.
			break;

			case Vieworks::vivix::TRIGGER::TRIGGER_PASSIVE:
			// The Detector’s trigger mode is PASSIVE.
			Break;
			
			case Vieworks::vivix::TRIGGER::TRIGGER_AED:
			// The Detector’s trigger mode is AED.
			Break;

			default
			// The Detector’s trigger mode is UNKNOWN.
			Break;
			}
		}
		else
		{
			// Failed to get trigger mode.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		Vieworks.vivix.net.TRIGGER TriggerMode = Vieworks.vivix.net.TRIGGER.UNKNOWN;
		nResult = pDetector.TriggerModeGet(out TriggerMode);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get trigger mode.

			Switch(TriggerMode)
			{
			case Vieworks.vivix.net.TRIGGER.TRIGGER_DR:
			// The Detector’s trigger mode is DR.
			break;

			case Vieworks.vivix.net.TRIGGER.TRIGGER_PASSIVE:
			// The Detector’s trigger mode is PASSIVE.
			Break;
			
			case Vieworks.vivix.net.TRIGGER.TRIGGER_AED:
			// The Detector’s trigger mode is AED.
			Break;

			default
			// The Detector’s trigger mode is UNKNOWN.
			Break;
			}
		}
		else
		{
			// Failed to get trigger mode.
		}
}

6.1.10 SerialGet
Gets detector serial number	
Syntax (C++)
RESULT SerialGet (
	_Out_	SerialGet*	serial
);
Syntax (C#)
RESULT SerialGet (
	out 	string		serial
);
Parameters
serial [out]
Detector serial number	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get detector serial number	
RESULT_INVALID_PARAMETER	
[serial] value is invalid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get detector trigger mode.	
Remarks
Acquire the serial number of detector.
This function can be used after opening detector connection.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		Vieworks::vivix::SERIAL Serial;
		nResult = pDetector->SerialGet(&Serial);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get serial;
		}
		else
		{
			// Failed to get serial;
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		Vieworks.vivix.net.SERIAL Serial;
		nResult = pDetector.SerialGet(out Serial);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get serial;
		}
		else
		{
			// Failed to get serial;
		}
}

6.1.11 ChangeIP
Changes detector IP address	
Syntax (C++)
RESULT ChangeIP (
	_In_	uint	ip,
	_In_	uint	subnet
);
Syntax (C#)
RESULT ChangeIP (
	uint	ip,
	uint	subnet
);
Parameters
ip [in]
IP address
subnet [in]
Subnet mask	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to change detector IP address.	
RESULT_INVALID_PARAMETER	
Invalid IP address range	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to change detector IP address.	
Remarks
IP address and subnet mask should be entered as an integer form.
This function can be used after opening detector connection.
The FXRD-1717S, FXRD-1717V and FXRD-1417S models should be conducted without Detector open. Check the changed IP from RefreshDeviceInformation after rebooting the detector manually.
The FXRD-1417W, FXRD-1012N, FXRD-1417N, FXRD-1717N and VXTD-2532E models should be conducted after Detector Open.
FXRD-1417W reboots automatically after the IP is changed. Check the changed IP from RefreshDeviceInformation after the rebooting.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		nResult = pDetector->ChageIP(2851995939, 4294901760);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to change ip address and subnet;
		}
		else
		{
			// Failed to change ip address and subnet;
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		nResult = pDetector.ChageIP(2851995939, 4294901760);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to change ip address and subnet;
		}
		else
		{
			// Failed to change ip address and subnet;
		}
}

6.1.12 CalibrationReadyStateGet
Gets detector calibration in a ready state	
Syntax (C++)
RESULT CalibrationReadyStateGet (
	_Out_	CALIBRATION_READY_STATE	ready
);
Syntax (C#)
RESULT CalibrationReadyStateGet (
	out 	CALIBRATION_READY_STATE	ready
);
Parameters
ready [out]
Calibration ready state	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get calibration ready state.	
RESULT_INVALID_PARAMETER	
[ready] Invalid value	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get the calibration ready state.	
Remarks
It is available to check if the calibration data is loaded to each detector instance.
This function can be used after opening detector connection.
If the check is failed, RESULT_ERROR will return.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		Vieworks::vivix::CALIBRATION_READY_STATE CalibrationReadyState;
		nResult = pDetector->CalibrationReadyStateGet(&CalibrationReadyState);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get calibration ready state.
			
			If(CalibrationReadyState.OffsetIsReady == true)
			{
				// Offset data is ready.
			}
			else
			{
				// Offset data is not ready.
			}

			if(CalibrationReadyState.DefectIsReady == true)
			{
				// Defect map is ready.
			}
			else
			{
				// Defect map is not ready.
			}

			if(CalibrationReadyState.OffsetIsReady == true)
			{
				// Gain data is ready.
			}
			else
			{
				// Gain data is not ready.
			}
		}
		else
		{
			// Failed to get calibration ready state.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		Vieworks.vivix.net.CALIBRATION_READY_STATE CalibrationReadyState;
		nResult = pDetector.CalibrationReadyStateGet(out CalibrationReadyState);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get calibration ready state.
			
			If(CalibrationReadyState.OffsetIsReady == true)
			{
				// Offset data is ready.
			}
			else
			{
				// Offset data is not ready.
			}

			if(CalibrationReadyState.DefectIsReady == true)
			{
				// Defect map is ready.
			}
			else
			{
				// Defect map is not ready.
			}

			if(CalibrationReadyState.OffsetIsReady == true)
			{
				// Gain data is ready.
			}
			else
			{
				// Gain data is not ready.
			}
		}
		else
		{
			// Failed to get calibration ready state.
		}
}

6.1.13 CalibrationApplySet
Sets the status for applying detector calibration	
Syntax (C++)
RESULT CalibrationApplySet (
	_In_	CALIBRATION_TYPE	type,
	_In_	bool			apply
);
Syntax (C#)
RESULT CalibrationApplySet (
	CALIBRATION_TYPE	type,
	bool			apply
);
Parameters
type [in]
Calibration type
apply [in]
Determining whether to apply calibration data to the image or not.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set detector calibration applied.	
RESULT_INVALID_PARAMETER	
[type] value is invalid	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_NOT_OFFSET_CALIBRATED	
Not ready offset	
RESULT_DETECTOR_IS_NOT_DEFECT_CALIBRATED	
Not ready defect offset	
RESULT_DETECTOR_IS_NOT_GAIN_CALIBRATED	
Not ready gain 	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set detector calibration applied.	
Remarks
This function can be used after opening detector connection.
The relevant calibration data should be loaded to apply the specific calibration item.
Check if the calibration data is loaded from CalibrationReadyStateGet function.
The configured item to apply calibration by calling the CalibrationApplySet function will be effective to the images which are taken after the configuration.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		nResult = pDetector->CalibrationApplySet(Vieworks::vivix::CALIBRATION_TYPE:: CALIBRATION_OFFSET, true);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set offset calibration apply.
		}
		else
		{
			// Failed to set offset calibration apply.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		nResult = pDetector.CalibrationApplySet(Vieworks.vivix.net.CALIBRATION_TYPE. CALIBRATION_OFFSET, true);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set offset calibration apply.
		}
		else
		{
			// Failed to set offset calibration apply.
		}
}

6.1.14 CalibrationApplyGet
Gets the status for applying detector calibration	
Syntax (C++)
RESULT CalibrationApplyGet (
	_In_	CALIBRATION_TYPE	type,
	_Out_	bool*			apply
);
Syntax (C#)
RESULT CalibrationApplyGet (
	CALIBRATION_TYPE	type,
	out 	bool			apply
);
Parameters
type [in]
Calibration type
apply [out]
Determining whether to apply calibration data to the image	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get detector calibration applied.	
RESULT_INVALID_PARAMETER	
[type] or [apply] value is invalid	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get detector calibration applied.	
Remarks
Check if the calibration data is applied to the image or not.
This function can be used after opening detector connection.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		bool bApply = false;
		nResult = pDetector->CalibrationApplyGet(Vieworks::vivix::CALIBRATION_TYPE:: CALIBRATION_OFFSET, &bApply);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get offset calibration apply.

			If(bApply == true)
			{
				// Offset calibration is applied.
			}
			else
			{
				// offset calibration is not applied.
			}
		}
		else
		{
			// Failed to get offset calibration apply.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		bool bApply = false;
		nResult = pDetector.CalibrationApplyGet(Vieworks.vivix.net.CALIBRATION_TYPE. CALIBRATION_OFFSET, out bApply);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get offset calibration apply.

			If(bApply == true)
			{
				// Offset calibration is applied.
			}
			else
			{
				// offset calibration is not applied.
			}
		}
		else
		{
			// Failed to get offset calibration apply.
		}
}

6.1.15 OffsetRefresh
Refreshes offset calibration data	
Syntax (C++)
RESULT OffsetRefresh (
	_In_	int	count,
	_In_	void*	eventHandle = NULL
);
Syntax (C#)
RESULT OffsetRefresh (
	int	count,
);
Parameters
count [in]
Number of shots for offset refresh procedure.
eventHandle [in]
Not supported yet.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to perform offset refresh. 	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_NOT_ OFFSET_CALIBRATED	
Post Offset Calibration Data is not loaded.	
RESULT_DETECTOR_OFFSET_CALIBRATION_IS_NOT_READY	
Detector is not ready to perform offset calibration.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Detector is not supported model.	
RESULT_ERROR	
Failed to perform offset refresh.	
Remarks
  • This function can be used after opening detector connection.	
  • To perform the offset calibration after image acquisition with ghost removal, detector is required to wait 300 seconds.	
  • FXRD-1417S and FXRD-1717S models can use this function after calibration or loading through VIVIX Setup.	
  • After the OffsetRefresh function succeeds, the process of Offset Refresh is sent to NotifyCalibrationOffsetRefreshStep, and the final result is sent to NotifyCalibrationOffsetRefreshResult.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		pDetector-> SetNotifyCalibrationOffsetRefreshStep(NotifyCalibrationOffsetRefreshStep);
		pdetector-> SetNOtifyCalibrationOffsetRefreshResult(NotifyCalibrationOffsetRefreshResult);
		nResult = pDetector->OffsetRefresh(5);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to start offset refresh.
		}
		else
		{
			// Failed to start offset refresh.
		}
}

void NotifyCalibrationOffsetRefreshStep(Vieworks::vivix::DETECTOR_ID id, unsigned int stage, float avgValue, Vieworks::vivix::IMAGE_INFO* image)
{
		
}

void NotifyCalibrationOffsetRefreshResult(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::OFFSET_REFRESH_STATUS status)
{
		switch(status)
		{
		case Vieworks::vivix::OFFSET_REFERSH_STATUS::OFFSET_REFRESH_DONE:
		// Succeeded to refresh offset.
		Break;
		default:
		// Failed to refresh offset.
		Break;
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		pDetector. SetDelegateCalibrationOffsetRefreshStep(OnDelegateCalibrationOffsetRefreshStep);
		pDetector. SetDelegateCalibrationOffsetRefreshResult(OnDelegateCalibrationOffsetRefreshResult);
		nResult = pDetector.OffsetRefresh(5);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to start offset refresh.
		}
		else
		{
			// Failed to start offset refresh.
		}
}

void OnDelegateCalibrationOffsetRefreshStep(int id, uint stage, float avgValue, Vieworks.vivix.net.IMAGE_INFO* image)
{
		
}

void OnDelegateCalibrationOffsetRefreshResult(ind id, Vieworks.vivix.net.OFFSET_REFRESH_STATUS status)
{
		switch(status)
		{
		case Vieworks.vivix.net.OFFSET_REFERSH_STATUS.OFFSET_REFRESH_DONE:
		// Succeeded to refresh offset.
		Break;
		default:
		// Failed to refresh offset.
		Break;
		}
}

6.1.16 CalibrationLoad
Loads calibration files	
Syntax (C++)
RESULT CalibrationLoad (
	_In_	CALIBRATION_FILE_TYPE	type,
	_In_	const FILE_PATH		filePath
);
Syntax (C#)
RESULT CalibrationLoad (
	CALIBRATION_FILE_TYPE	type,
	string			filePath
);
Parameters
type [in]
Calibration file type
filePath [in]
Calibration file path by the type.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to load calibration file.	
RESULT_INVALID_PARAMETER	
[type] value is invalid.	
RESULT_IO_INVALID_FILE_PATH	
File path is wrong or invalid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_NOT_SUPPORTED_MODEL	
Not supported model.	
RESULT_IO_INVALID_FILE	
File does not exist.	
RESULT_IO_INVALID_MODEL	
Model name of the file is not matched to the detector.	
RESULT_IO_INVALID_SERIAL	
Serial of the file is not matched to the detector.	
RESULT_IO_INVALID_SIZE	
File size is not matched to the specifications of detector.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to load calibration file.	
Remarks
This function can be used after opening detector connection.
This task should be processed before making an exposure to receive images.
The taken images can be sent when Offset, Defect, and Gain calibration data files are all loaded.
Check the result of task from CalibrationReadyState.
From VIVIX SDK V1.0.4.14 or the higher version, when you generate the gain data or load the existing one for the first time, the data file for using OSF is created automatically with the file extension ‘sg’.
In case of FXRD-1417W, FXRD-1012N, FXRD-1717N and VXTD-2532E models, it is not supported to process the CalibrationLoad function since the offset calibration data file is saved to the detector after completing the offset calibration.
In case of FXRD-1417N, it is not supported to process the CalibrationLoad function since the all calibration data file is saved to the detector after completing the calibration.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		pDetector->SetNotifyCalibrationFileLoaded(NotifyCalibrationFileLoaded);

		Vieworks::vivix::CALIBRATION_FILE_TYPE CalibrationFileType = Vieworks::vivix::CALIBRATION_FILE_TYPE::CALIBRATION_FILE_OFFSET;
		
		Cstring strPath = _T(“D:\offset.dat”);
		nResult = pDetector->CalibrationLoad(CalibrationFileType, strPath);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to load calibration data.
		}
		else
		{
			// Failed to load calibration data.
		}
}

void NotifyCalibrationFileLoaded(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::CALIBRATION_TYPE type)
{
		switch(type)
		{
		case Vieworks::vivix::CALIBRATION_TYPE::CALIBRATION_OFFSET:
			// Succeeded to load offset data.
		Break;

		case Vieworks::vivix::CALIBRATION_TYPE::CALIBRATION_DEFECT:
			// Succeeded to load defect map. 
		Break;
		case Vieworks::vivix::CALIBRATION_TYPE::CALIBRATION_GAIN:
			// Succeeded to load gain data.
		Break;
		default
			// Unknown
		break;
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		pDetector.SetDelegateCalibrationFileLoaded(OnDelegateCalibrationFileLoaded);

		Vieworks.vivix.net.CALIBRATION_FILE_TYPE CalibrationFileType = Vieworks.vivix.net.CALIBRATION_FILE_TYPE.CALIBRATION_FILE_OFFSET;
		
		string strPath = “D:\\offset.dat”;
		nResult = pDetector.CalibrationLoad(CalibrationFileType, strPath);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to load calibration data.
		}
		else
		{
			// Failed to load calibration data.
		}
}

void OnDelegateCalibrationFileLoaded(int id, Vieworks.vivix.net.CALIBRATION_TYPE type)
{
		switch(type)
		{
		case Vieworks.vivix.net.CALIBRATION_TYPE.CALIBRATION_OFFSET:
			// Succeeded to load offset data.
		Break;

		case Vieworks.vivix.net.CALIBRATION_TYPE.CALIBRATION_DEFECT:
			// Succeeded to load defect map. 
		Break;
		case Vieworks.vivix.net.CALIBRATION_TYPE.CALIBRATION_GAIN:
			// Succeeded to load gain data.
		Break;
		default
			// Unknown
		break;
		}
}

6.1.17 CalibrationSave
Saves calibration files	
Syntax (C++)
RESULT CalibrationSave (
	_In_	CALIBRATION_FILE_TYPE	type,
	_In_	const FILE_PATH		filePath
);
Syntax (C#)
RESULT CalibrationSave (
	CALIBRATION_FILE_TYPE	type,
	string			filePath
);
Parameters
type [in]
Calibration file type.
filePath [in]
Calibration file path by the type.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to save calibration file.	
RESULT_INVALID_PARAMETER	
[type] value is invalid.	
RESULT_IO_INVALID_FILE_PATH	
File path is wrong or invalid	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DATA_NOT_FOUND	
Calibration data is not found.	
RESULT_NOT_SUPPORTED_MODEL	
Not supported model.	
RESULT_DETECTOR_NOT_OFFSET_CALIBRATED	
Post offset is not calibrated.	
RESULT_NOT_DETECTOR_DEFECT_CALIBRATED	
Defect is not calibrated.	
RESULT_NOT_DETECTOR_GAIN_CALIBRATED	
Gain is not calibrated.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to save calibration file.	
Remarks
This function can be used after opening detector connection.
After processing calibration, save the calibration data generated in the memory as a file format.
After the calibration, new defect map is added and saved to the existing file automatically.
In case of FXRD-1417S, FXRD 1717S and FXRD 1717V models, save the calibration data in the memory and load to use it next time.
In case of FXRD-1417W, FXRD-1012N, FXRD-1717N and VXTD-2532E models, it is not supported to process the CalibrationSave function since the offset calibration data file is saved to the detector after completing the offset calibration.
In case of FXRD-1417N, it is not supported to process the CalibrationSave function since all calibration data file is saved to the detector after completing the calibration.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		pDetector->SetNotifyCalibrationFileSaved(NotifyCalibrationFileSaved);

		Vieworks::vivix::CALIBRATION_FILE_TYPE CalibrationFileType = Vieworks::vivix::CALIBRATION_FILE_TYPE::CALIBRATION_FILE_OFFSET;
		
		Cstring strPath = _T(“D:\offset.dat”);
		nResult = pDetector->CalibrationSave(CalibrationFileType, strPath);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to save calibration data.
		}
		else
		{
			// Failed to save calibration data.
		}
}

void NotifyCalibrationFileSaved(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::CALIBRATION_TYPE type)
{
		switch(type)
		{
		case Vieworks::vivix::CALIBRATION_TYPE::CALIBRATION_OFFSET:
			// Succeeded to save offset data.
		Break;

		case Vieworks::vivix::CALIBRATION_TYPE::CALIBRATION_DEFECT:
			// Succeeded to save defect map. 
		Break;
		case Vieworks::vivix::CALIBRATION_TYPE::CALIBRATION_GAIN:
			// Succeeded to save gain data.
		Break;
		default
			// Unknown
		break;
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		pDetector.SetDelegateCalibrationFileSaved(OnDelegateCalibrationFileSaved);

		Vieworks.vivix.net.CALIBRATION_FILE_TYPE CalibrationFileType = Vieworks.vivix.net.CALIBRATION_FILE_TYPE.CALIBRATION_FILE_OFFSET;
		
		Cstring strPath = “D:\\offset.dat”;
		nResult = pDetector.CalibrationSave(CalibrationFileType, strPath);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to save calibration data.
		}
		else
		{
			// Failed to save calibration data.
		}
}

void OnDelegateCalibrationFileSaved(int id, Vieworks.vivix.net.CALIBRATION_TYPE type)
{
		switch(type)
		{
		case Vieworks.vivix.net.CALIBRATION_TYPE.CALIBRATION_OFFSET:
			// Succeeded to save offset data.
		Break;

		case Vieworks.vivix.net.CALIBRATION_TYPE.CALIBRATION_DEFECT:
			// Succeeded to save defect map. 
		Break;
		case Vieworks.vivix.net.CALIBRATION_TYPE.CALIBRATION_GAIN:
			// Succeeded to save gain data.
		Break;
		default
			// Unknown
		break;
		}
}

6.1.18 AutoOffsetRefreshConfigSet
Sets the configuration of auto offset refresh	
Syntax (C++)
RESULT AutoOffsetRefreshConfigSet (
	_In_	bool	enable,
	_In_	int	interval,
	_In_	int	temperature,
	_In_	int	shot
);
Syntax (C#)
RESULT AutoOffsetRefreshConfigSet (
	bool	enable,
	int	interval,
	int	temperature,
	int	shot
);
Parameters
enable [in]
Offset refresh usage
interval [in]
Offset refresh time interval.
Temperature [in]
Offset refresh temperature.
Shot [in]
Number of shots	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set offset refresh configuration.	
RESULT_INVALID_PARAMETER	
Detector ID is out of range or [interval], [temperature] or [shot] is invalid.	
RESULT_DETECTOR_NO_INFORMATION	
There is no detector information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Detector is not supported model.	
RESULT_ERROR	
Failed to set offset refresh configuration.	
Remarks
This function can be used after opening detector connection.
Since the FXRD-1717S, FXRD-1717V and FXRD-1417S models are saved to the local PC, the relevant value should be configured again if the connecting PC is changed.
In case of the FXRD-1417W, FXRD-1012N, FXRD-1417N, FXRD-1717N and VXTD-2532E models, the value in the detectors are maintained even though the connecting PC is changed. In addition, the necessity of offset refresh is transmitted to NotifyOffsetRefreshCheck in every time interval if the auto offset refresh function is configured as ‘Enable’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{		
		bool bEnable = false;
		int iInterval = 30;
		int iTemperatyre = 3;
		int iShot = 5;
		nResult = pDetector->AutoOffsetRefreshConfigSet(bEnable, iInterval, iTemperature, iShot);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set auto offset refresh configuration.
		}
		else
		{
			// Failed to set auto offset refresh configuration.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{		
		bool bEnable = false;
		int iInterval = 30;
		int iTemperatyre = 3;
		int iShot = 5;
		nResult = pDetector.AutoOffsetRefreshConfigSet(bEnable, iInterval, iTemperature, iShot);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set auto offset refresh configuration.
		}
		else
		{
			// Failed to set auto offset refresh configuration.
		}
}

6.1.19 AutoOffsetRefreshConfigGet
Gets the configuration of auto offset refresh	
Syntax (C++)
RESULT AutoOffsetRefreshConfigGet (
	_Out_	bool*	enable,
	_Out_	int*	interval,
	_Out_	int*	temperature,
	_Out_	int*	shot
);
Syntax (C#)
RESULT AutoOffsetRefreshConfigGet (
	out 	bool	enable,
	out 	int	interval,
	out 	int	temperature,
	out 	int	shot
);
Parameters
enable [out]
Offset refresh usage
interval [out]
Offset refresh time interval
temperature [out]
Offset refresh temperature
shot [out]
Number of shots	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get offset refresh configuration. 	
RESULT_INVALID_PARAMETER	
Detector ID is out of range.	
RESULT_DETECTOR_NO_INFORMATION	
There is no detector information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_NOT_SUPPORTED_MODEL	
Detector is not supported model.	
RESULT_ERROR	
Failed to get offset refresh configuration. 	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{		
		bool bEnable = false;
		int iInterval = 0;
		int iTemperatyre = 0;
		int iShot = 0;
		nResult = pDetector->AutoOffsetRefreshConfigGet(&bEnable, &iInterval, &iTemperature, &iShot);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get auto offset refresh configuration.
		}
		else
		{
			// Failed to get auto offset refresh configuration.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{		
		bool bEnable = false;
		int iInterval = 0;
		int iTemperatyre = 0;
		int iShot = 0;
		nResult = pDetector.AutoOffsetRefreshConfigGet(out bEnable, out iInterval, out iTemperature, out iShot);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get auto offset refresh configuration.
		}
		else
		{
			// Failed to get auto offset refresh configuration.
		}
}

6.1.20 SaturationSet
Sets saturation value of the detector	
Syntax (C++)
RESULT SaturationSet (
	_In_	int	saturation
);
Syntax (C#)
RESULT SaturationSet (
	int	saturation
);
Parameters
saturation [in]
Saturation value	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set saturation value.	
RESULT_INVALID_PARAMETER	
Detector ID is out of range.	
RESULT_DETECTOR_NO_INFORMATION	
There is no detector information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to set saturation value.	
Remarks
This function can be used after opening detector connection.
It is available to set the maximum value of the image. The pixel value cannot be more than the saturation value. If the specific value is more than the saturation value, the saturation value is substituted for the pixel value.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{		
		int iSaturation = 10000;
		nResult = pDetector->SaturationSet(iSaturation);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set saturation.
		}
		else
		{
			// Failed to set saturation.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{		
		int iSaturation = 10000;
		nResult = pDetector.SaturationSet(iSaturation);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set saturation.
		}
		else
		{
			// Failed to set saturation.
		}
}

6.1.21 SaturationGet
Gets saturation value of the detector	
Syntax (C++)
RESULT SaturationGet (
	_Out_	int	saturation
);
Syntax (C#)
RESULT SaturationGet (
	out 	int	saturation
);
Parameters
saturation [out]
Saturation value	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get saturation value.	
RESULT_INVALID_PARAMETER	
Detector ID is out of range.	
RESULT_DETECTOR_NO_INFORMATION	
There is no detector information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to get saturation value.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{		
		int iSaturation = 0;
		nResult = pDetector->SaturationGet(&iSaturation);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get saturation.
		}
		else
		{
			// Failed to get saturation.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{		
		int iSaturation = 0;
		nResult = pDetector.SaturationGet(out iSaturation);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get saturation.
		}
		else
		{
			// Failed to get saturation.
		}
}

6.1.22 EdgeMaskingSet
Sets whether to mask the area outside of the effective area	
Syntax (C++)
RESULT EdgeMaskingSet (
	_In_	bool		apply,
	_In_	unsigned int	val
);
Parameters
apply [in]
Masking usage
val [in]
Masking value	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set masking usage and masking value.	
RESULT_INVALID_PARAMETER	
[apply] or [masking value] is invalid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to set masking usage and masking value.	
Remarks
This function can be used after opening detector connection.
This function is used for replacing the area outside of the effective area to the specific value.
Since the masking value is filled in the original image, turn off the setting if you do not want to use this function. In addition, the setting value is not saved to the detector separately. Therefore, turn off the setting if you do not want to use it after generating the detector instance. And note that the value is set as a default one (Enable) if the detector opens.
If the value is negative, the SDK perform masking by default value of the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{		
		nResult = pDetector->EdgeMaskingSet(true, 0);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to enable masking.
		}
		else
		{
			// Failed to enable masking.
		}
	}

6.1.23 EdgeMaskingGet
Gets whether to mask the area outside of the effective area with the value	
Syntax (C++)
RESULT EdgeMaskingGet (
	_Out_	bool*		apply,
	_Out_	unsigned int*	val
);
Parameters
apply [out]
Masking usage
val [out]
Masking value	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get masking usage and masking value.	
RESULT_INVALID_PARAMETER	
[apply] or [masking value] is invalid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to get masking usage and masking value.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{		
		bool bMaskingEnable = false;
		int iMaskingValue = -1;

		nResult = pDetector->EdgeMaskingGet(&bMaskingEnable, &iMaskingValue);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get masking setting value.
		}
		else
		{
			// Failed to get masking setting value.
		}
	}

6.1.24 ImageSizeGet
Gets information on detector image size	
Syntax (C++)
RESULT ImageSizeGet (
	_Out_	IMAGE_SIZE_INFO*	info
);
Syntax (C#)
RESULT ImageSizeGet (
	out 	IMAGE_SIZE_INFO*	info
);
Parameters
info [out]
Image size information	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get image size information.	
RESULT_INVALID_PARAMETER	
Detector ID is out of range.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to get image size information.	
Remarks
The value of image width or image height is possible from 1 to 65534.
This function can be used after opening detector connection.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{		
		Vieworks::vivix::IMAGE_SIZE_INFO ImageSizeInfo;
		nResult = pDetector->ImageSizeGet(&ImageSizeInfo);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get image size information.
		}
		else
		{
			// Failed to get image size information.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{		
		Vieworks.vivix.net.IMAGE_SIZE_INFO ImageSizeInfo;
		nResult = pDetector.ImageSizeGet(out ImageSizeInfo);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get image size information.
		}
		else
		{
			// Failed to get image size information.
		}
}

6.1.25 EffectiveAreaSet
Sets effective area of detector	
Syntax (C++)
RESULT EffectiveAreaSet (
	_In_	unsigned int	EA_top,
	_In_	unsigned int	EA_bottom,
	_In_	unsigned int	EA_left,
	_In_	unsigned int	EA_right
);
Syntax
RESULT EffectiveAreaSet (
	uint	EA_top,
	uint	EA_bottom,
	uint	EA_left,
	uint	EA_right
);
Parameters
EA_top [in]
Effective area (Top)
EA_bottom [in]
Effective area (bottom)
EA_left [in]
Effective area (left)
EA_right [in]
Effective area (right)	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set effective area of the detector.	
RESULT_INVALID_PARAMETER	
Invalid effective area value.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set direction of the detector.	
Remarks
This function is used for setting effective image area. The setting is limited within the existing area which was configured at the time of product shipping. The outlying area of image specified as effective area can be masked by the function ‘EdgeMaskingSet’.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
 Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
 Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		nResult = pDetector->EffectiveAreaSet(10, 3020, 20, 3010);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set effective area.
		}
		else
		{
			// Failed to set effective area.
		}
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
 Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		nResult = pDetector.EffectiveAreaSet(10, 3020, 20, 3010);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set effective area.
		}
		else
		{
			// Failed to set effective area.
		}
	}

6.1.26 EffectiveAreaGet
Gets effective area of detector	
Syntax (C++)
RESULT EffectiveAreaGet (
	_Out_	unsigned int*	EA_top,
	_Out_	unsigned int*	EA_bottom,
	_Out_	unsigned int*	EA_left,
	_Out_	unsigned int*	EA_right
);
Syntax (C#)
RESULT EffectiveAreaGet (
	out 	uint	EA_top,
	out 	uint	EA_bottom,
out 	uint	EA_left,
out 	uint	EA_right
);
Parameters
EA_top [out]
Effective area (Top)
EA_bottom [out]
Effective area (bottom)
EA_left [out]
Effective area (left)
EA_right [out]
Effective area (right)	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get direction of detector.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get direction of detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		unsigned int top, bottom, left, right;
		nResult = pDetector->EffectiveAreaGet(&top, &bottom, &left, &right);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get effective area information.
		}
		else
		{
			// Failed to get effective area information.
		}
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		uint top, bottom, left, right;
		nResult = pDetector.EffectiveAreaGet(out top, out bottom, out left, out right);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get effective area information.
		}
		else
		{
			// Failed to get effective area information.
		}
	}

6.1.27 DirectionSet
Sets direction of detector	
Syntax (C++)
RESULT DirectionSet (
	_In_	DIRECTION	direction
);
Syntax
RESULT DirectionSet (
	DIRECTION	direction
);
Parameters
direction [in]
Direction of detector	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set direction of detector.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to set direction of detector.	
Remarks
The configured direction is sent to NotifyFrameGrabberImageIn with the image, but the image cannot be rotated by the direction. As the direction information is stored in the PC, not in the detector, the direction should be set again if the connecting PC is changed.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
 Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
 Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		nResult = pDetector->DirectionSet(Vieworks::vivix::DIRECTION::DIRECTION_CW180);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set direction information.
		}
		else
		{
			// Failed to set direction information.
		}
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
 Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		nResult = pDetector.DirectionSet(Vieworks.vivix.net.DIRECTION.DIRECTION_CW180);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set direction information.
		}
		else
		{
			// Failed to set direction information.
		}
	}

6.1.28 DirectionGet
Gets direction of detector	
Syntax (C++)
RESULT DirectionGet (
	_Out_	DIRECTION*	direction
);
Syntax (C#)
RESULT DirectionGet (
	out 	DIRECTION	direction
);
Parameters
direction [out]
Direction of detector	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get direction of detector.	
RESULT_INVALID_PARAMETER	
Detector ID is out of range.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to get direction of detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		Vieworks::vivix::DIRECTION DirectionInfo;
		nResult = pDetector->DirectionGet(&DirectionInfo);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get direction information.

			Switch (DirectionInfo)
			{
			case Vieworks::vivix::DIRECTION_NONE:
				// None(CW0)
				break;
			case Vieworks::vivix::DIRECTION_CW90:
				// CW90
				break;
			case Vieworks::vivix::DIRECTION_CW180:
				// CW180
				break;
			case Vieworks::vivix::DIRECTION_CW270:
				// CW270
				break;
			default:
				break;
			}
		}
		else
		{
			// Failed to get direction information.
		}
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		Vieworks.vivix.net.DIRECTION DirectionInfo;
		nResult = pDetector.DirectionGet(out DirectionInfo);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get direction information.

			Switch (DirectionInfo)
			{
			case Vieworks.vivix.net.DIRECTION_NONE:
				// None(CW0)
				break;
			case Vieworks.vivix.net.DIRECTION_CW90:
				// CW90
				break;
			case Vieworks.vivix.net.DIRECTION_CW180:
				// CW180
				break;
			case Vieworks.vivix.net.DIRECTION_CW270:
				// CW270
				break;
			default:
				break;
			}
		}
		else
		{
			// Failed to get direction information.
		}
	}

6.1.29 SWTrigger
Gets dark image	
Syntax
RESULT SWTrigger (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to S/W trigger.	
RESULT_INVALID_PARAMETER	
Detector ID is out of range.	
RESULT_COMMAND_IS_NOT_READY	
Cannot use S/W trigger since the detector is not in the state of normal acquisition.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to S/W trigger.	
Remarks
This function can be used after opening detector connection.
The acquired dark image is sent to the NotifyFrameGrabberImageIn Callback function.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyFrameGrabberImageInStart(NotifyFrameGrabberImageInstart);
		pDetector->SetNotifyFrameGrabberImageIn(NotifyFrameGrabberImageIn);
		pDetector->SetNotifyFrameGrabberImageInEnd(NotifyFrameGrabberImageEnd);

		nResult = pDetector->SWTrigger();
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get dark image.
		}
		else
		{
			// Failed to get dark image.
		}
}

void NotifyFrameGrabberImageInStart(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::IMAGE_MODE imgMode)
{
		// A function call when the image starts to be sent.
}

void NotifyFrameGrabberImageIn(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::IMAGE_MODE imgMode, Vieworks::vivix::IMAGE_INFO* image)
{
		// A function call when sending the acquired image.
}

void NotifyFrameGrabberImageInEnd(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::IMAGE_MODE imgMode)
{
		// A function call when the completing to send the image.
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{	
		pDetector.SetDelegateFrameGrabberImageInStart(OnDelegateFrameGrabberImageInStart);
		pDetector.SetDelegateFrameGrabberImageIn(OnDelegateFrameGrabberImageIn);
		pDetector.SetDelegateFrameGrabberImageInEnd(OnDelegateFrameGrabberImageInEnd);

		nResult = pDetector.SWTrigger();
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get dark image.
		}
		else
		{
			// Failed to get dark image.
		}
}

void OnDelegateFrameGrabberImageInStart(int id, Vieworks.vivix.net.IMAGE_MODE imgMode)
{
		// A function call when the image starts to be sent.
}

void OnDelegateFrameGrabberImageIn(int id, Vieworks.vivix.net.IMAGE_MODE imgMode, Vieworks.vivix.net.IMAGE_INFO* image)
{
		// A function call when sending the acquired image.
}

void OnDelegateFrameGrabberImageInEnd(int id, Vieworks.vivix.net.IMAGE_MODE imgMode)
{
		// A function call when the completing to send the image.
}

6.1.30 ExposureTimeSet
Sets the exposure time of detector	
Syntax (C++)
RESULT ExposureTimeSet (
	_In_	int	val
);
Syntax (C#)
RESULT ExposureTimeSet (
	int	val
);
Parameters
val [in]
Exposure time	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set exposure time.	
RESULT_INVALID_PARAMETER	
[val] is out of range.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode	
RESULT_ERROR	
Failed to set exposure time.	
Remarks
Exposure section indicates the period (unit: ㎳) that the detector converts X-rays to image signals.
This value needs to be set longer than the maximum exposure time to prevent X-rays loss while converting it to image signals.
The unit of exposure time is msec.
The range of exposure time can be set from 100~10000. This function can be used after opening detector connection.
For the W type or N type detector, the changed value by the ExposureTimeSet function is not stored in the detector as a temporary value. When rebooting the detector, therefore, the changed value returns to the value which has been set from Setup. In case of the S type detector, the changed value is stored in the detector and is maintained even after rebooting the detector.
If the exposure time of the detector (which uses OSF) is changed by the function, OSF profile cannot generate automatically. If the exposure time is changed from Setup, the OSF profile generates automatically after checking its presence.
For drive mode supported detectors, exposure time is not settable while using CF/PF mode.	
If you change the time settings, refresh the Offset data and generate new Gain data to acquire optimized images.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		nResult = pDetector->ExposureTimeSet(500);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set exposure time.
		}
		else
		{
			// Failed to set exposure time.
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		nResult = pDetector.ExposureTimeSet(500);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set exposure time.
		}
		else
		{
			// Failed to set exposure time.
		}
	}

6.1.31 ExposureTimeGet
Gets the exposure time of detector	
Syntax (C++)
RESULT ExposureTimeGet (
	_Out_	int*	val
);
Syntax (C#)
RESULT ExposureTimeGet (
	out 	int	val
);
Parameters
val [out]
Exposure time	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get exposure time.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get exposure time.	
Remarks
Exposure time means X-ray accumulate time.
Exposure section indicates the period (unit: ㎳) that the detector converts X-rays to image signals.
The unit of exposure time is msec.
This function can be used after opening detector connection.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		int iExposureTime = -1;
		nResult = pDetector->ExposureTimeGet(&iExposureTime);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get exposure time.
		}
		else
		{
			// Failed to get exposure time.
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		int iExposureTime = -1;
		nResult = pDetector.ExposureTimeGet(out iExposureTime);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get exposure time.
		}
		else
		{
			// Failed to get exposure time.
		}
	}

6.1.32 ExpOKDelaySet
Sets the EXP_OK delay time of detector	
Syntax (C++)
RESULT ExpOKDelaySet (
	_In_	int	val
);
Syntax (C#)
RESULT ExpOKDelaySet (
	int	val
);
Parameters
val [in]
EXP_OK delay time	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set exposure OK delay time.	
RESULT_INVALID_PARAMETER	
[val] is out of range.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode	
RESULT_ERROR	
Failed to set exposure OK delay time.	
Remarks
This function can be used after opening detector connection.
For the W type or N type detector, the changed value by the ExpOKDelaySet function is not stored in the detector as a temporary value. When rebooting the detector, therefore, the changed value returns to the value which has been set from Setup. In case of the S type detector, the changed value is stored in the detector and is maintained even after rebooting the detector.	
If you change the time settings, refresh the Offset data and generate new Gain data to acquire optimized images.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		nResult = pDetector->ExpOKDelaySet(5);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set exposure OK delay.
		}
		else
		{
			// Failed to set exposure OK delay.
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		nResult = pDetector.ExpOKDelaySet(5);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set exposure OK delay.
		}
		else
		{
			// Failed to set exposure OK delay.
		}
	}

6.1.33 ExpOKDelayGet
Gets delay time of detector exposure OK	
Syntax (C++)
RESULT ExpOKDelayGet (
	_Out_	int*	val
);
Syntax (C#)
RESULT ExpOKDelayGet (
	out 	int	val
);
Parameters
val [out]
Exposure OK delay time	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get exposure OK delay time.	
RESULT_INVALID_PARAMETER	
[val] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get exposure OK delay time.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		int iExpOKDelay = -1;

		nResult = pDetector->ExpOKDelayGet(&iExpOKDelay);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get exposure OK delay.
		}
		else
		{
			// Failed to get exposure OK delay.
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		int iExpOKDelay = -1;

		nResult = pDetector.ExpOKDelayGet(out iExpOKDelay);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get exposure OK delay.
		}
		else
		{
			// Failed to get exposure OK delay.
		}
	}

6.1.34 GainTypeSet
Sets gain type (Gain pF value preset)	
Syntax (C++)
RESULT GainTypeSet (
	_In_	GAIN_PRESET	type
);
Syntax (C#)
RESULT GainTypeSet (
	GAIN_PRESET	type
);
Parameters
type [in]
Gain type	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set gain type.	
RESULT_INVALID_PARAMETER	
[type] is invalid or out of range.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set gain type.	
Remarks
This function can be used after opening detector connection.
For the FXRD-1717S, FXRD-1717V, FXRD-1417S, and FXRD-1417W models, the Gain Type can be set from 0~4.
For the FXRDN models, the Gain Type can be set from 0~5.
This function can be used after opening detector connection.
For the W type or N type detector, the changed value by the GainTypeSet function is not stored in the detector as a temporary value. When rebooting the detector, therefore, the changed value returns to the value which has been set from Setup. In case of the S type detector, the changed value is stored in the detector and is maintained even after rebooting the detector.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		nResult = pDetector->GainTypeSet(Vieworks::vivix::GAIN_TYPE_2);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set gain type
		}
		else
		{
			// Failed to set gain type
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		nResult = pDetector.GainTypeSet(Vieworks.vivix.net.GAIN_TYPE_2);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set gain type
		}
		else
		{
			// Failed to set gain type
		}
	}

6.1.35 GainTypeGet
Gets gain type (Gain pF value preset)	
Syntax (C++)
RESULT GainTypeGet (
	_Out_	GAIN_PRESET*	type
);
Syntax (C#)
RESULT GainTypeGet (
	out 	GAIN_PRESET	type
);
Parameters
type [out]
Gain type	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get gain type	
RESULT_INVALID_PARAMETER	
[type] is null.	
RESULT_INVALID_MODEL	
Detector model is invalid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get gain type	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		Vieworks::vivix::GAIN_PRESET GainPreset;
		nResult = pDetector->GainTypeGet(&GainPreset);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get gain type
		}
		else
		{
			// Failed to get gain type
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		Vieworks.vivix.net.GAIN_PRESET GainPreset;
		nResult = pDetector.GainTypeGet(out GainPreset);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get gain type
		}
		else
		{
			// Failed to get gain type
		}
	}

6.1.36 TriggerDebounceSet
Sets the trigger debounce time of detector by debounce types	
Syntax (C++)
RESULT TriggerDebounceSet (
	_In_	DEBOUNCE_TYPE		type,
	_In_	int			val
);
Syntax (C#)
RESULT TriggerDebounceSet (
	DEBOUNCE_TYPE		type,
	int			val
);
Parameters
type [in]
Debounce type.
Val [in]
Debounce time by the type.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set trigger debounce time.	
RESULT_INVALID_PARAMETER	
[val] or [type] is out of range.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set trigger debounce time.	
Remarks
For FXRD-1717S, FXRD-1717V, FXRD-1417S and FXRD-1417W, the range of debounce time can be set from 0~655(ms).
For FXRDN detectors, the range of debounce time can be set from 0~5000(μs) if the SDK version is less than V1.0.4.0, and from 0~50(ms) if the SDK version is V1.0.4.0 or higher. The input range is same, but the input unit of parameter is changed.
For multi frame supported detectors, the value is set separately for radio mode and CF/PF mode.
This function can be used after opening detector connection.
DEBOUNCE_DR is used to remove the trigger signal occurred due to external noise when DR Trigger is set as the exposure mode. If the value is set to less than 3 ㎳, the detector may not acquire images.
DEBOUNCE_AED is parameter for non-line trigger debounce time.
DEBOUNCE_AED is used to prevent trigger signals occurred due to external noise when AED is set as the exposure mode. If the DEBOUNCE_AED value is set more than the X-ray exposure time, the detector may not acquire images. If unwanted images are acquired without X-ray exposure while operating the equipment, set DEBOUNCE_AED with 1㎳ increments. However, make sure not to exceed the value more than 10㎳.
For the W type or N type detector, the changed value by the TriggerDebounceSet function is not stored in the detector as a temporary value. When rebooting the detector, therefore, the changed value returns to the value which has been set from Setup. In case of the S type detector, the changed value is stored in the detector and is maintained even after rebooting the detector.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		nResult = pDetector->TriggerDebounceSet(Vieworks::vivix::DEBOUNCE_DR, 10);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get DR trigger debounce.
		}
		else
		{
			// Failed to get DR trigger debounce.
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		nResult = pDetector.TriggerDebounceSet(Vieworks.vivix.net.DEBOUNCE_DR, 10);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get DR trigger debounce.
		}
		else
		{
			// Failed to get DR trigger debounce.
		}
	}

6.1.37 TriggerDebounceGet
Gets the trigger debounce time of detector by debounce types	
Syntax (C++)
RESULT TriggerDebounceGet (
	_In_	DEBOUNCE_TYPE		type,
	_Out_	int*			val 
);
Syntax (C#)
RESULT TriggerDebounceGet (
	DEBOUNCE_TYPE		type,
	out int			val 
);
Parameters
type [in]
Debounce type.
Val [out]
Debounce time by the type.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get trigger debounce time.	
RESULT_INVALID_PARAMETER	
[type] value is invalid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get trigger debounce time.	
Remarks
For FXRD-1417S, FXRD-1717S, FXRD-1717V and FXRD-1417W, the unit value transferred with the relative function is ‘msec’.
For FXRD-1012N, FXRD-1417N, FXRD-1717N and VXTD-2532E, the unit value transferred with SDK under V1.0.4.0 is ‘μsec’. If the SDK version is V1.0.4.0 or higher, the unit of transferred value is ‘msec’.
Debounce DR is parameter for active (DR) or passive line trigger debounce time.
Debounce AED is parameter for non-line trigger debounce time.
This function can be used after opening detector connection.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		int iTriggerDebounce = -1;
		nResult = pDetector->TriggerDebounceGet(Vieworks::vivix::DEBOUNCE_TYPE::DEBOUNCE_DR, &iTriggerDebounce);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get DR trigger debounce.
		}
		else
		{
			// Failed to get DR trigger debounce.
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		int iTriggerDebounce = -1;
		nResult = pDetector.TriggerDebounceGet(Vieworks.vivix.net.DEBOUNCE_TYPE.DEBOUNCE_DR, out iTriggerDebounce);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get DR trigger debounce.
		}
		else
		{
			// Failed to get DR trigger debounce.
		}
	}

6.1.38 AEDOnOff
Turns on / off the AED sensors of detector in runtime	
Syntax (C++)
RESULT AEDOnOff (
	_In_	bool	on
);
Syntax (C#)
RESULT AEDOnOff (
	bool	on
);
Parameters
on [in]
AED sensor on or off	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set AED Sensor on/off.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set AED Sensor on/off.	
Remarks
This function can be used after opening detector connection.
The image cannot be taken by using AED when it is disabled.
The AED sensor is turned back on when the detector and SDK are disconnected.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		nResult = pDetector->AEDOnOff(true);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to enable AED.
		}
		else
		{
			// Failed to enable AED.
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		nResult = pDetector.AEDOnOff(true);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to enable AED.
		}
		else
		{
			// Failed to enable AED.
		}
	}

6.1.39 AEDErrorStateGet
Gets the error state of the AED sensor	
Syntax (C++)
RESULT AEDErrorStateGet (
	_out_	bool*	pbError
);
Syntax (C#)
RESULT AEDErrorStateGet (
	Out bool	 error
);
Parameters
pbError [out]
It gets the error state of the AED sensor.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get AED Sensor error state.	
RESULT_ERROR	
Failed to get AED Sensor error state.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		bool bError = false;
		nResult = pDetector->AEDErrorStateGet(&bError);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
		}
		else
		{
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		bool bError = false;
		nResult = pDetector.AEDErrorStateGet(&bError);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
		}
		else
		{
		}
	}

6.1.40 AEDErrorStatusClear
Clears the error state of the AED sensor	
Syntax (C++)
RESULT AEDErrorStatusClear();
Syntax (C#)
RESULT AEDErrorStatusClear();
Returns	
Description	
RESULT_SUCCESS	
Succeeded to clear AED Sensor error state.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to clear AED Sensor error state.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		nResult = pDetector->AEDErrorStatusClear();
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
		}
		else
		{
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		bool bError = false;
		nResult = pDetector.AEDErrorStatusClear();
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
		}
		else
		{
		}
	}

6.1.41 CalibrationModeSet
Enables or disables the calibration mode	
Syntax (C++)
RESULT CalibrationModeSet (
	_In_	bool	enable
);
Syntax (C#)
RESULT CalibrationModeSet (
	bool	enable
);
Parameters
enable [in]
Calibration Mode enable/disable	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set calibration mode.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set calibration mode.	
Remarks
This function can be used after opening detector connection.
Be sure to turn on the calibration mode if the calibration is processed by using the provided function, not from the Setup program.
The process of calibration means Offset Calibration, Defect Update, and Gain Calibration. After completing the calibration, be sure to turn off the calibration mode to get the image normally.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		nResult = pDetector->CalibrationModeSet(true);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to enable calibration mode.
		}
		else
		{
			// Failed to enable calibration mode.
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		nResult = pDetector.CalibrationModeSet(true);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to enable calibration mode.
		}
		else
		{
			// Failed to enable calibration mode.
		}
	}

6.1.42 CalibrationModeGet
Checks the setting value of the current calibration mode	
Syntax (C++)
RESULT CalibrationModeGet (
	_Out_	bool*	enable
);
Syntax (C#)
RESULT CalibrationModeGet (
	out 	bool	enable
);
Parameters
enable [out]
Calibration Mode enable/disable	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get calibration mode state.	
RESULT_INVALID_PARAMETER	
[enable] value is null.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get calibration mode state.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		bool bCalibrationMode = false;
		nResult = pDetector->CalibrationModeSet(true);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to enable calibration mode.
		}
		else
		{
			// Failed to enable calibration mode.
		}
	}
Examples (C#)
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		bool bCalibrationMode = false;
		nResult = pDetector.CalibrationModeSet(true);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to enable calibration mode.
		}
		else
		{
			// Failed to enable calibration mode.
		}
	}

6.1.43 OffsetCalibration
Performs offset calibration	
Syntax (C++)
RESULT OffsetCalibration (
	_In_	OFFSET_CALIBRATION_PARAM	offsetParam
);
Syntax (C#)
RESULT OffsetCalibration (
	OFFSET_CALIBRATION_PARAM	offsetParam
);
Parameters
offsetParam [in]
Refer to <4.1.64.1.6 OFFSET_CALIBRATION_PARAMOFFSET_CALIBRATION_PARAM>.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to perform offset calibration.	
RESULT_INVALID_PARAMETER	
The invalid item exists among the [offsetParam] items.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_NOT_CALIBRATION_MODE	
Detector is not in calibration mode.	
RESULT_DETECTOR_OFFSET_CALIBRATION_IS_NOT_READY	
Detector is not ready to perform offset calibration.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Detector is not supported model.	
RESULT_ERROR	
Failed to perform offset calibration.	
Remarks
This function can be used after opening detector connection.
To perform the offset calibration after image acquisition with ghost removal, detector is required to wait 300 seconds.
The allowed number of images used for offset calibration is 1~255.
In order to perform offset calibration, user must set to enable calibration mode by CalibrationModeSet function.
For the FXRD-1717S, FXRD-1717V and FXRD-1417S models, save the calibration file as a file format and load it to use after completing the Offset calibration.
For the FXRD-1417W, FXRD-1012N, FXRD-1417N, FXRD-1717N and VXTD-2532E models, it is not supported to process the CalibrationSave function since the Offset calibration file is stored in the detector after completing the Off set calibration.
Refer to <4.1.64.1.6 OFFSET_CALIBRATION_PARAMOFFSET_CALIBRATION_PARAM> for more information on Offset Calibration.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyCalibrationStep(NotifyCalibrationStep);
		pDetector->SetNotifyCalibrationResult(NotifyCalibrationResult);

		nResult = pDetector->CalibrationMode(true);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to enable calibration mode

			Vieworks::vivix::OFFSET_CALIBRATION_PARAM OffsetParam;
			OffsetParam.action = Vieworks::vivix::OFFSET_CALIBRATION_PARAM::_ACTION::START;
			OffsetParam.shotCount = 5;

			nResult = pDetector->OffsetCalibration(OffsetParam);
			if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
			{
				// Succeeded to begin offset calibration.
			}
			else
			{
				// Failed to begin offset calibration.
			}
		}
		else
		{
			// Failed to enable calibration mode.
		}
}

void NotifyCalibrationStep(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::CALIBRATION_TYPE calibrationType, unsigned int stage, float avgValue, Vieworks::vivix::IMAGE_INFO* imgInfo)
{
		// Calibration Step Information.
}

void NotifyCalibrationResult(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::CALIBRATION_TYPE type, bool done)
{
		// Calibration Result Information.
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{	
		pDetector.SetDelegateCalibrationStep(OnDelegateCalibrationStep);
		pDetector.SetDelegateCalibrationResult(OnDelegateCalibrationResult);

		nResult = pDetector.CalibrationMode(true);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to enable calibration mode

			Vieworks.vivix.net.OFFSET_CALIBRATION_PARAM OffsetParam;
			OffsetParam.action = Vieworks.vivix.net.OFFSET_CALIBRATION_PARAM._ACTION.START;
			OffsetParam.shotCount = 5;

			nResult = pDetector.OffsetCalibration(OffsetParam);
			if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
			{
				// Succeeded to begin offset calibration.
			}
			else
			{
				// Failed to begin offset calibration.
			}
		}
		else
		{
			// Failed to enable calibration mode.
		}
}

void OnDelegateCalibrationStep(int id, Vieworks.vivix.net.CALIBRATION_TYPE calibrationType, uint stage, float avgValue, Vieworks.vivix.net.IMAGE_INFO* imgInfo)
{
		// Calibration Step Information.
}

void OnDelegateCalibrationResult(int id, Vieworks.vivix.net.CALIBRATION_TYPE type, bool done)
{
		// Calibration Result Information.
}

6.1.44 DefectUpdate
Updates the latest data file of defect map	
Syntax (C++)
RESULT DefectUpdate (
	_In_	DEFECT_UPDATE_PARAM	defectUpdateParam
);
Syntax (C#)
RESULT DefectUpdate (
	DEFECT_UPDATE_PARAM	defectUpdateParam
);
Parameters
defectUpdateParam [in]
Refer to <4.1.74.1.7 DEFECT_UPDATE_PARAMDEFECT_UPDATE_PARAM>.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to perform defect update. 	
RESULT_INVALID_PARAMETER	
The invalid item exists among the [defectUpdateParam] items.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_NOT_OFFSET_CALIBRATED	
Offset Calibration Data is not loaded	
RESULT_DETECTOR_NOT_DEFECT_CALIBRATED	
Defect Calibration Data is not loaded.	
RESULT_DETECTOR_NOT_GAIN_CALIBRATED	
Gain Calibration Data Is not loaded.	
RESULT_DETECTOR_NOT_CALIBRATION_MODE	
Detector is not in calibration mode.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to perform defect update.	
Remarks
This function can be used after opening detector connection.
In order to perform defect update, user must set to enable calibration mode by CalibrationModeSet function.
This function can be operated when the state of Offset Calibration, Defect Calibration, and Gain Calibration is ready.
Refer to <4.1.74.1.7 DEFECT_UPDATE_PARAMDEFECT_UPDATE_PARAM> for more information on Defect Update.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyCalibrationStep(NotifyCalibrationStep);
		pDetector->SetNotifyCalibrationResult(NotifyCalibrationResult);

		nResult = pDetector->CalibrationMode(true);
		if(nResult  == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to enable calibration mode

			Vieworks::vivix::DEFECT_UPDATE_PARAM DefectParam;
			DefectParam.action = Vieworks::vivix::DEFECT_UPDATE_PARAM::_ACTION::START;
			DefectParam.numberofshot = 5;
			DefectParam.threshhold = 5;
			DefectParam.offset = 100;

			nResult = pDetector->DefectUpdate(DefectParam);
			if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
			{
				// Succeeded to begin defect update.
			}
			else
			{
				// Failed to begin defect update.
			}
		}
		else
		{
			// Failed to enable calibration mode.
		}
}

void NotifyCalibrationStep(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::CALIBRATION_TYPE calibrationType, unsigned int stage, float avgValue, Vieworks::vivix::IMAGE_INFO* imgInfo)
{
		// Calibration Step Information.
}

void NotifyCalibrationResult(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::CALIBRATION_TYPE type, bool done)
{
		// Calibration Result Information.
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{	
		pDetector.SetDelegateCalibrationStep(OnDelegateCalibrationStep);
		pDetector.SetDelegateCalibrationResult(OnDelegateCalibrationResult);

		nResult = pDetector.CalibrationMode(true);
		if(nRestul == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to enable calibration mode

			Vieworks.vivix.net.DEFECT_UPDATE_PARAM DefectParam;
			DefectParam.action = Vieworks.vivix.net.DEFECT_UPDATE_PARAM._ACTION.START;
			DefectParam.numberofshot = 5;
			DefectParam.threshhold = 5;
			DefectParam.offset = 100;

			nResult = pDetector.DefectUpdate(DefectParam);
			if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
			{
				// Succeeded to begin defect update.
			}
			else
			{
				// Failed to begin defect update.
			}
		}
		else
		{
			// Failed to enable calibration mode.
		}
}

void OnDelegateCalibrationStep(int id, Vieworks.vivix.net.CALIBRATION_TYPE calibrationType, uint stage, float avgValue, Vieworks.vivix.net.IMAGE_INFO* imgInfo)
{
		// Calibration Step Information.
}

void OnDelegateCalibrationResult(int id, Vieworks.vivix.net.CALIBRATION_TYPE type, bool done)
{
		// Calibration Result Information.
}

6.1.45 GainCalibration
Performs gain calibration	
Syntax (C++)
RESULT GainCalibration (
	_In_	GAIN_CALIBRATION_PARAM	gainParam
);
Syntax (C#)
RESULT GainCalibration (
	GAIN_CALIBRATION_PARAM	gainParam
);
Parameters
gainParam [in]
Refer to <4.1.84.1.8 GAIN_CALIBRATION_PARAMGAIN_CALIBRATION_PARAM>.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to perform gain calibration. 	
RESULT_INVALID_PARAMETER	
Detector ID is out of range.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_NOT_CALIBRATION_MODE	
Detector is not in calibration mode.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_DETECTOR_NOT_OFFSET
_CALIBRATED	
Offset is not calibrated.	
RESULT_DETECTOR_NOT_DEFECT
_CALIBRATED	
Defect is not calibrated. 	
RESULT_ERROR	
Failed to perform gain calibration. 	
Remarks
This function can be used after opening detector connection.
In order to perform gain calibration, user must set to enable calibration mode by CalibrationModeSet function.
This function can be operated when the state of Offset Calibration and Defect Calibration is ready.
Refer to <4.1.84.1.8 GAIN_CALIBRATION_PARAMGAIN_CALIBRATION_PARAM> for more information on Gain Calibration.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyCalibrationStep(NotifyCalibrationStep);
		pDetector->SetNotifyCalibrationResult(NotifyCalibrationResult);

		nResult = pDetector->CalibrationMode(true);
		if(nRestul == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to enable calibration mode

			Vieworks::vivix::GAIN_CALIBRATION_PARAM GainParam;
			GainParam.action = Vieworks::vivix::GAIN_CALIBRATION_PARAM::_ACTION::START;
			GainParam.shotCount = 10;

			nResult = pDetector->GainCalibration(GainParam);
			if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
			{
				// Succeeded to begin defect update.
			}
			else
			{
				// Failed to begin defect update.
			}
		}
		else
		{
			// Failed to enable calibration mode.
		}
}

void NotifyCalibrationStep(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::CALIBRATION_TYPE calibrationType, unsigned int stage, float avgValue, Vieworks::vivix::IMAGE_INFO* imgInfo)
{
		// Calibration Step Information.
}

void NotifyCalibrationResult(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::CALIBRATION_TYPE type, bool done)
{
		// Calibration Result Information.
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{	
		pDetector.SetDelegateCalibrationStep(OnDelegateCalibrationStep);
		pDetector.SetDelegateCalibrationResult(OnDelegateCalibrationResult);

		nResult = pDetector.CalibrationMode(true);
		if(nRestul == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to enable calibration mode

			Vieworks.vivix.net.GAIN_CALIBRATION_PARAM GainParam;
			GainParam.action = Vieworks.vivix.net.GAIN_CALIBRATION_PARAM._ACTION.START;
			GainParam.shotCount = 10;

			nResult = pDetector.GainCalibration(GainParam);
			if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
			{
				// Succeeded to begin defect update.
			}
			else
			{
				// Failed to begin defect update.
			}
		}
		else
		{
			// Failed to enable calibration mode.
		}
}

void OnDelegateCalibrationStep(int id, Vieworks.vivix.net.CALIBRATION_TYPE calibrationType, uint stage, float avgValue, Vieworks.vivix.net.IMAGE_INFO* imgInfo)
{
		// Calibration Step Information.
}

void OnDelegateCalibrationResult(int id, Vieworks.vivix.net.CALIBRATION_TYPE type, bool done)
{
		// Calibration Result Information.
}

6.1.46 OSFEnableGet
Brings the usage setting of OSF	
Syntax (C++)
RESULT OSFEnableGet (
	_Out_	bool*	enable
);
Syntax (C#)
RESULT OSFEnableGet (
	out bool	enable
);
Parameters
enable [Out]
Enable OSF.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get OSF on/off.	
RESULT_INVALID_PARAMETER	
[enable] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		bool bOSFEnable = false;

		nResult = pDetector->OSFEnableGet(&bOSFEnable);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get OSF.
		}
		else
		{
			// Failed to get OSF.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		bool bOSFEnable = false;

		nResult = pDetector.OSFEnableGet(out bOSFEnable);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get OSF.
		}
		else
		{
			// Failed to get OSF.
		}
	}

6.1.47 OSFEnableSet
Enables or disables the use of OSF	
Syntax (C++)
RESULT OSFEnableSet (
	_In_	bool	enable
);
Syntax (C#)
RESULT OSFEnableSet (
	bool	enable
);
Parameters
enable [in]
Enable OSF	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set OSF on/off.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_VERSION	
Not supported version.	
RESULT_OSF_DATA_IS_NOT_READY	
No OSF profile exists.	
RESULT_ERROR	
Failed to set OSF on/off.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		bool bOSFEnable = false;

		nResult = pDetector ->OSFEnableGet(&bOSFEnable);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set OSF.
		}
		else
		{
			// Failed to set OSF.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		bool bOSFEnable = false;

		nResult = pDetector .OSFEnableSet(bOSFEnable);		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set OSF.
		}
		else
		{
			// Failed to set OSF.
		}
	}

6.1.48 OSFProfileListGet
Gets a list of OSF profile	
Syntax (C++)
RESULT OSFProfileListGet (
	_Out_	OSF_PROFILE_LIST*	OSFProfileLIst
);
Syntax (C#)
RESULT OSFProfileListGet (
	out	OSF_PROFILE_LIST		OSFProfileLIst
);
Parameters
OSFProfileLIst [out]
List of OSF profile in detector.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get OSF profile list.	
RESULT_INVALID_PARAMETER	
[OSFProfileList] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to get OSF profile list.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		Vieworks::vivix::OSF_PROFILE_LIST osfProfileList;

		nResult = pDetector->OSFProfileListGet(&osfProfileList);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get OSF profile list.
		}
		else
		{
			// Failed to OSF profile list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		Vieworks::vivix::net::OSF_PROFILE_LIST osfProfileList = null;

		nResult = pDetector.OSFProfileLIstGet(out osfProfileList);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get OSF profile list.
		}
		else
		{
			// Failed to get OSF profile list.
		}
	}

6.1.49 TemperatureGet
Gets the temperature of detector information	
Syntax (C++)
RESULT TemperatureGet (
	_Out_	double*	temperature
);
Syntax (C#)
RESULT TemperatureGet (
	out	double		temperature
);
Parameters
temperature [out]
Current temperature of detector.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get temperature of detector.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get temperature information.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		double dTemperature;

		nResult = pDetector->TemperatureGet(&dTemperature);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get temperature information.
		}
		else
		{
			// Failed to get temperature information.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		double dTemperature;

		nResult = pDetector. TemperatureGet(out dTemperature);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get temperature information.
		}
		else
		{
			// Failed to get temperature information.
		}
	}

6.1.50 CompanyCodeGet
Checks the serial number assigned to the specific companies	
Syntax (C++)
RESULT CompanyCodeGet (
	_Out_	unsigned long*	code
);
Syntax (C#)
RESULT CompanyCodeGet (
	out	uint		code
);
Parameters
code [out]
Company Code	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get company code.	
RESULT_INVALID_PARAMETER	
[code] is NULL.	
RESULT_NOT_SUPPORTED_MODEL	
Detector is not supported model.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get company code.	
Remarks
This function can be used after opening detector connection.
This function does not supported FXRD-1417S and FXRD-1717S Model.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		unsigned long iCompanyCode = 0;
		pDetector->CompanyCodeGet(&iCompanyCode);

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get company code.
		}
		else
		{
			// Failed to get company code.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		uint iCompanyCode = 0;
		pDetector.CompanyCodeGet(out iCompanyCode);

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get company code.
		}
		else
		{
			// Failed to get company code.
		}
	}

6.1.51 PacketTrigger
SDK sends a packet trigger signal directly to the detector.
With this function, you can implement DR Trigger without SCU. The SDK user must implement the signal transmission / reception with the generator that SCU has performed.	
Syntax
RESULT PacketTrigger (int nUserTimeoutMs = -1);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to transmit a packet trigger signal and to receive EXP_OK signal from the detector.	
RESULT_COMMAND_IS_NOT_READY	
Cannot use packet trigger since the detector is not in the state of normal acquisition. Or the trigger mode is not set to DR trigger, or the exposure time is not set to 800 or higher.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_VERSION	
Not supported F/W version.	
RESULT_COMMAND_TIMEOUT	
Exposure OK has been timeout.	
RESULT_ERROR	
Failed to transmit a packet trigger signal.	
Remarks
  • This function can be used after opening detector connection.	
  • This function is only available when Trigger mode is set to DR.	
  • This function is available only when nUserTimeoutMs is not entered and the exposure time is set to 800 or higher.	
  • This function manually designates timeout of Exposure OK if nUserTimeoutMs is entered.  The value should be no higher than ExpOkDelayTime + (Exposure time / 2).	
  • If exp ok is later than timeout, the acquired image is dropped. Timeout 	
  • If image is dropped, ERR_IMAGE_ACQ_FAILED is transmitted via notifyError callback.	
  • This function enables the SDK user to enable DR Trigger without using SCU.	
  • This SDK function is available only when F/W that supports this operation is installed in the detector.	
  • Please refer to the table below for available versions.	
Detector	
F/W Version	
FXRD-1417S	
v2.1	
FXRD-1717S	
v2.2	
FXRD-1717V	
v1.0	
FXRD-1417W	
v2.0	
FXRD-1012N	
v1.0.3.40	
FXRD-1417N	
v1.0.0.8	
FXRD-1717N	
v1.0.1.40	
VXTD-2532E	
V1.0.0.4	
Others	
All	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{	
		nResult = pDetector->PacketTrigger();

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to transmit a packet trigger signal.
		}
		else
		{
			// Failed to transmit a packet trigger signal.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{	
		nResult = pDetector.PacketTrigger();

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to transmit a packet trigger signal.
		}
		else
		{
			// Failed to transmit a packet trigger signal.
		}
}

6.1.52 RecentImageGet
Gets a recently captured image through the image ID	
Syntax (C++)
RESULT RecentImageGet (
	_In_	int	nImageID
);
Syntax (C#)
RESULT RecentImageGet (
	int		nImageID
);
Parameters
nImageID [in]
Enter the ID of the image you want to get.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the recent image.	
RESULT_DATA_NOT_FOUND	
Failed to get the recent image.	
Remarks
This function can be used after opening detector connection.	
  • The image is sent to the NotifyFrameGrabberImageIn Callback function.	
  • Passes the file found in the path set through the KeepRecentImageSet function to the user.	
  • When the image stored on the hard disk is acquired through NotifyFrameGrabberImageIn, the value of Vieworks::vivix::IMAGE_MODE among parameters is transmitted to IMAGE_MODE_BACKUP.	
  • For FXRD-1417W, stored image and backup image are additionally searched.	
  • For FXRD-1417N and 1717N, backup images are additionally searched.	
  • For FXRD-1012N and VXTD-2532E, backup images and FTM images are additionally searched.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		int nImageID = FFFFFFF;	//User should know the previous image id.
		nResult = pDetector->RecentImageGet(nImageID);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get the recent image.
		}
		else
		{
			// Failed to get the recent image.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		int nImageID = FFFFFFF;	//User should know the previous image id.

		nResult = pDetector.RecentImageGet(nImageID);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get the recent image.
		}
		else
		{
			// Failed to get the recent image.
		}
	}

6.1.53 ShockReportListGet
Gets a list of shock reports during input period.	
Syntax (C++)
RESULT ShockReportListGet(
	_Out_	LOG_LIST*	logList
);
Syntax (C#)
RESULT ShockReportListGet(
	out	LOG_LIST		logList
);
Parameters
logList [out]
shock reports list.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get list.	
RESULT_INVALID_PARAMETER	
[logList] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get list.	
Remarks
  • This function can be used after opening detector connection. Input Timestamp to startDate and endDate of LOG_LIST as a parameter to search the reports in the certain period. Input 0 to startDate and endDate and send it as a parameter if you need the reports list of the whole period.	
  • Check up to the time (in seconds) of the input timestamp.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::LOG_LIST LogList;
		CTime t1(2015, 3, 10, 0, 0, 0);
		CTime t2(2015, 3, 12, 0, 0, 0);

		LogList.startDate = t1.GetTime();
		LogList.endDate = t2.GetTime();

		nResult = pDetector->ShockReportListGet(&LogList);

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded.
		}
		else
		{
			// Failed.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.LOG_LIST LogList;
	
		CTime t1(2015, 3, 10, 0, 0, 0);
		CTime t2(2015, 3, 12, 0, 0, 0);

		LogList.startDate = t1.GetTime();
		LogList.endDate = t2.GetTime();

		nResult = pDetector.ShockReportListGet(out LogList);

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded.
		}
		else
		{
			// Failed.
		}
	}

6.1.54 ShockReportGet
Gets the shock report	
Syntax (C++)
RESULT ShockReportGet(
	_In_	LOG_DATA*	logData
);
Syntax (C#)
RESULT ShockReportGet(
	LOG_DATA*	logData
);
Parameters
logData [in]
Log data	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the shock report.	
RESULT_INVALID_PARAMETER	
[logData] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get the shock report.	
Remarks
This function can be used after opening detector connection. Assign the shock report to be brought by using LOG_DATA in the LOG_LIST structure, which was acquired by ShockReportListGet. The report is saved to “Detector\[Serial number]” at the bottom of the storage route of SDK log.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::LOG_LIST LogList;
		CTime t1(2015, 3, 10, 0, 0, 0);
		CTime t2(2015, 3, 12, 0, 0, 0);

		LogList.startDate = t1.GetTime();
		LogList.endDate = t2.GetTime();

		nResult = pDetector->ShockReportListGet(&LogList);

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			if(LogList.LogCount > 0)
			{
				nResult = pDetector->ShockReportGet(&LogList.LogList[0]);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded.
				}
				else
				{
					// Failed.
				}
			}
		}
		else
		{
			// Failed to get list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.LOG_LIST LogList;
	
		CTime t1(2015, 3, 10, 0, 0, 0);
		CTime t2(2015, 3, 12, 0, 0, 0);

		LogList.startDate = t1.GetTime();
		LogList.endDate = t2.GetTime();

		nResult = pDetector.ShockReportListGet(out LogList);

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			if(LogList.LogCount > 0)
			{
				nResult = pDetector.ShockReportGet(LogList.LogList[0]);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded.
				}
				else
				{
					// Failed.
				}
			}
		}
		else
		{
			// Failed to get list.
		}
	}

6.1.55 DigitalOffsetSet
Sets the digital offset value of detector
Syntax (C++)
RESULT DigitalOffsetSet (
	_In_	int	nVal
);
Syntax (C#)
RESULT DigitalOffsetSet (
	int	offset
);
Parameters
nVal[in]
offset value
Return Values	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set value.	
RESULT_INVALID_PARAMETER	
Digital Offset is out of range.	
RESULT_DETECTOR_NO_INFORMATION	
There is no detector information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to set value.	
Remarks
This function can be used after opening detector connection.
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{		
		int nOffset = 100;
		nResult = pDetector->DigitalOffsetSet(nOffset);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set digital offset.
		}
		else
		{
			// Failed to set digital offset.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{		
		int nOffset = 100;
		nResult = pDetector. DigitalOffsetSet (nOffset);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set digital offset.
		}
		else
		{
			// Failed to set digital offset.
		}
}	

6.1.56 DigitalOffsetGet
Gets digital offset value of detector
Syntax (C++)
RESULT DigitalOffsetGet (
	_Out_	int	pnVal
);
Syntax (C#)
RESULT DigitalOffsetGet (
	out 	int	offset
);
Parameters
nVal [out]
digital offset value
Return Values	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get value.	
RESULT_INVALID_PARAMETER	
Parameter is null.	
RESULT_DETECTOR_NO_INFORMATION	
There is no detector information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to get value.	
Remarks
This function can be used after opening detector connection.
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{		
		int nOffset = 0;
		nResult = pDetector->DigitalOffsetGet(&nOffset);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get offset.
		}
		else
		{
			// Failed to get offset.
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{		
		int nOffset = 0;
		nResult = pDetector. DigitalOffsetGet(out nOffset);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get offset.
		}
		else
		{
			// Failed to get offset.
		}
}	

6.1.57 AccelerationValueGet
Gets position information of the detector
Syntax (C++)
RESULT AccelerationValueGet (
	_Out_	int*	posX,
	_Out_	int*	posY,
	_Out_	int*	posZ,
	_Out_	float*	pitch,
	_Out_	float*	roll
);
Syntax (C#)
RESULT AccelerationValueGet (
	out	int*	posX,
out	int*	posY,
	out	int*	posZ,
	out	float*	pitch,
	out	float*	roll
);
Parameters
posX [out]
A variable for indicating the axis-X position of detector.

posY [out]
A variable for indicating the axis-Y position of detector.

posZ [out]
A variable for indicating the axis-Z position of detector.

roll [out]
A variable for indicating the roll position of detector.
pitch [out]
A variable for indicating the pitch position of detector.
Return Values	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get position information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
Remarks
This function can be used after opening detector connection.
This function works only if the detector has an acceleration sensor.
The pitch and roll values are displayed in units of 3 degrees.

Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		int posX, posY, posZ;
		float roll, pitch;
		nResult = pDetector ->AccelerationValueGet(&posX, &posY, &posZ, &roll, &pitch);

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get values.
		}
		else
		{
			// Failed to get values.
		}
	}

Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		int posX, posY, posZ;
		float roll, pitch;
		nResult = pDetector. AccelerationValueGet(out posX, out posY, out posZ, out roll, out pitch);

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get position information.
		}
		else
		{
			// Failed to get position information.
		}
	}	

6.1.58 AccelerationCalibration
Calibrates the acceleration sensor
Syntax
RESULT AccelerationCalibration ();
Return Values	
Returns	
Description	
RESULT_SUCCESS	
Acceleration sensor calibration command was sent normally.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
There is no acceleration sensor in the detector..	
RESULT_ERROR	
Failed to send the accelerometer calibration command.	
Remarks
This function can be used after opening detector connection.
It is available to check the progress using the API below.
SetNotify/DelegateAccSensorCalibrationProgress, Notify/DelegateAccSensorCalibrationProgress
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{	
		nResult = pDetector-> AccelerationCalibration();
}

Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{	
		nResult = pDetector. AccelerationCalibration();
}	

6.1.59 PartialModeGet
Gets panel indexes of partial mode	
Syntax
virtual RESULT PartialModeGet(int* pnFirstPanelIndex, int* pnLastPanelIndex);
Return Values	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get partial mode info.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Detector is not partial mode supported.	
RESULT_ERROR	
Failed to send partial mode get command.	
Remarks
This function can be used after opening detector connection.
Partial mode related API’s are supported for multi panel detectors.
The index of the top most panel is 0, the next is 1, and so on.
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		int nFirst, nLast;
		nResult = pDetector-> PartialModeGet(&nFirst, &nLast);
}

Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		int nFirst, nLast;	
		nResult = pDetector. PartialModeGet (out nFirst, out nLast);
}	

6.1.60 PartialModeSet
Sets partial mode by panel indexes	
Syntax
virtual RESULT PartialModeSet(int nFirstPanelIndex, int nLastPanelIndex); 
Return Values	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set partial mode info.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Detector is not partial mode supported.	
RESULT_ERROR	
Failed to send partial mode set command.	
Remarks
This function can be used after opening detector connection.
Partial mode related API’s are supported for multi panel detectors.
The index of the top most panel is 0, the next is 1, and so on.
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		int nFirst = 0, nLast = 2;
		nResult = pDetector-> PartialModeSet(nFirst, nLast);
}

Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		int nFirst = 0, nLast = 2;	
		nResult = pDetector. PartialModeSet(nFirst, nLast);
}	

6.1.61 BorderCorrectionGet
Gets border correction state	
Syntax
virtual RESULT BorderCorrectionGet(bool* pbEnable);
Return Values	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get border correction state.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Detector is not partial mode supported.	
RESULT_ERROR	
Failed to send border correction state get command.	
Remarks
This function can be used after opening detector connection.
Partial mode related API’s are supported for multi panel detectors.
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		bool bEnable
		nResult = pDetector-> BorderCorrectionGet(&bEnable);
}

Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		bool bEnable;	
		nResult = pDetector. BorderCorrectionGet(out bEnable);
}	

6.1.62 BorderCorrectionSet
Sets border correction state	
Syntax
virtual RESULT BorderCorrectionSet(bool bEnable);
Return Values	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set border correction state.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Detector is not partial mode supported.	
RESULT_ERROR	
Failed to send border correction state set command.	
Remarks
This function can be used after opening detector connection.
Partial mode related API’s are supported for multi panel detectors.
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{
		bool bEnable = true
		nResult = pDetector-> BorderCorrectionSet(bEnable);
}

Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{
		bool bEnable = true;	
		nResult = pDetector. BorderCorrectionSet(bEnable);
}	

6.1.63 BaseSensitivityGet
Gets the Base Sensitivity of the detector	
Syntax (C++)
RESULT BaseSensitivityGet (
	int*	pnValue
);
Syntax (C#)
RESULT BaseSensitivityGet(
	Out int	value
);
Parameters
pnValue [out]
A variable for indicating Base Sensitivity.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get Base Sensitivity.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
This function can use by FXRD-2530VW, FXRD-3643VW, FXRD-4343VW only.	
RESULT_NOT_SUPPORTED_VERSION	
The latest firmware of FXRD-2530VW, FXRD-3643VW, and FXRD-4343VW are required. 	
RESULT_ERROR	
Failed to get Base Sensitivity.	
Remarks
FXRD-1717S, FXRD-1717V, FXRD-2530VW, FXRD 3643VW, and FXRD-4343VW models can get the Base Sensitivity.
This value and current sensitivity ratio can be used to calculate Exposure Index.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				int nValue = -1;
				nResult = pFXRDN-> BaseSensitivityGet(&nValue);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
		}
		else
		{
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD2530_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD3643_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD4343_V:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 
			int nValue = -1;
				nResult = pFXRDN. BaseSensitivityGet(out nValue);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
		}
		else
		{
		}
	}

6.1.64 CurrentSensitivityRatioGet
Gets the current sensitivity ratio of the detector. 
Current sensitivity ration depends on a gain type of the current detector.	
Syntax (C++)
RESULT CurrentSensitivityRatioGet (
	int*	pnValue
);
Syntax (C#)
RESULT CurrentSensitivityRatioGet (
	Out int	value
);
Parameters
pnValue [out]
A variable for indicating Current Sensitivity Ratio.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get Current Sensitivity Ratio.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
This function can use by FXRD-2530VW, FXRD-3643VW, FXRD-4343VW only.	
RESULT_NOT_SUPPORTED_VERSION	
The latest firmware of FXRD-2530VW, FXRD-3643VW, and FXRD-4343VW are required.	
RESULT_ERROR	
Failed to get Current Sensitivity Ratio.	
Remarks
FXRD-1717S, FXRD-1717V, FXRD-2530VW, FXRD 3643VW, and FXRD-4343VW models can get Current Sensitivity ratio.
This value and Base Sensitivity can be used to calculate Exposure Index.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				int nValue = -1;
				nResult = pFXRDN-> BaseSensitivityGet(&nValue);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
		}
		else
		{
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD2530_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD3643_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD4343_V:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 
			int nValue = -1;
				nResult = pFXRDN. BaseSensitivityGet(out nValue);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
		}
		else
		{
		}
	}

6.2 Callback Notification Setting Functions


6.2.1 SetNotifyFrameGrabberImageInStart / SetDelegateFrameGrabberImageInStart
Sets the notification of NotifyFrameGrabberImageInStart / DelegateFrameGrabberImageInStart	
Syntax (C++)
void SetNotifyFrameGrabberImageInStart (
	_In_	NotifyFrameGrabberImageInStart	pNotify
);
Syntax (C#)
void SetDelegateFrameGrabberImageInStart (
	DelegateFrameGrabberImageInStart		val
);
Parameters
pNotify [in]
NotifyFrameGrabberImageInStart
val [in]
DelegateFrameGrabberImageInStart	
Remarks
Refer to ‘detector::NotifyFrameGrabberImageInStart’.
Refer to ‘detector.DelegateFrameGrabberImageInStart’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyFrameGrabberImageInStart(NotifyFrameGrabberImageInStart);
}

void NotifyFrameGrabberImageInStart(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::IMAGE_MODE imgMode)
{
} 
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateFrameGrabberImageInStart(OnDelegateFrameGrabberImageInStart);
}

void OnDelegateFrameGrabberImageInStart(int id, Vieworks.vivix.net.IMAGE_MODE imgMode)
{
}

6.2.2 SetNotifyFrameGrabberImageIn / SetDelegateFrameGrabberImageIn
Sets the notification of NotifyFrameGrabberImageIn / DelegateFrameGrabberImageIn	
Syntax (C++)
void SetNotifyFrameGrabberImageIn (
	_In_	NotifyFrameGrabberImageIn	pNotify
);
Syntax (C#)
void SetDelegateFrameGrabberImageIn (
	DelegateFrameGrabberImageIn	val
);
Parameters
pNotify [in]
NotifyFrameGrabberImageIn
val [in]
DelegateFrameGrabberImageIn	
Remarks
Refer to ‘detector::NotifyFrameGrabberImageIn’.
Refer to ‘detector.DelegateFrameGrabberImageIn’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyFrameGrabberImageIn(NotifyFrameGrabberImageIn);
}

void NotifyFrameGrabberImageIn(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::IMAGE_MODE imgMode, Vieworks::vivix::IMAGE_INFO* image)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateFrameGrabberImageIn(OnDelegateFrameGrabberImageIn);
}

void OnDelegateFrameGrabberImageIn(int id, Vieworks.vivix.net.IMAGE_MODE imgMode, Vieworks.vivix.net.IMAGE_INFO* image)
{
}

6.2.3 SetNotifyFrameGrabberImageInEnd / SetDelegateFrameGrabberImageInEnd
Sets the notification of NotifyFrameGrabberImageInEnd / DelegateFrameGrabberImageInEnd	
Syntax (C++)
void SetNotifyFrameGrabberImageInEnd (
	_In_	NotifyFrameGrabberImageInEnd	pNotify
);
Syntax (C#)
void SetDelegateFrameGrabberImageInEnd (
	DelegateFrameGrabberImageInEnd	val
);
Parameters
pNotify [in]
NotifyFrameGrabberImageInEnd
val [in]
DelegateFrameGrabberImageInEnd	
Remarks
Refer to ‘detector::NotifyFrameGrabberImageEnd’.
Refer to ‘detector.DelegateFrameGrabberImageEnd’.	
Examples
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyFrameGrabberImageInEnd(NotifyFrameGrabberImageInEnd);
}

void NotifyFrameGrabberImageInEnd(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::IMAGE_MODE imgMode)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateFrameGrabberImageInEnd(OnDelegateFrameGrabberImageInEnd);
}

void OnDelegateFrameGrabberImageInEnd(int id, Vieworks.vivix.net.IMAGE_MODE imgMode)
{
}

6.2.4 SetNotifyExposed / SetDelegateExposed
Sets NotifyExposed notification	
Syntax (C++)
void SetNotifyExposed (
	_In_	NotifyExposed	pNotify
);
Syntax (C#)
void SetDelegateExposed (
	DelegatExposed	val
);
Parameters
pNotify [in]
NotifyExposed
val [in]
DelegateExposed	
Remarks
Refer to ‘detector::NotifyExposed’.
Refer to ‘detector.DelegateExposed’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		pDetector->SetNotifyExposed(NotifyExposed);
}

void NotifyExposed (Vieworks::vivix::DETECTOR_ID id)
{
		// Detector is exposed
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		pDetector.SetDelegateExposed(OnDelegateExposed);
}

void OnDelegateExposed(int id)
{
		// Detector is exposed
}

6.2.5 SetNotifyReadyForExposure / SetDelegateReadyForExposure
Sets NotifyReadyForExposure notification	
Syntax (C++)
void SetNotifyReadyForExposure (
	_In_	NotifyReadyForExposure	pNotify
);
Syntax (C#)
void SetDelegateReadyForExposure (
	DelegatReadyForExposure	val
);
Parameters
pNotify [in]
NotifyReadyForExposure
val [in]
DelegateReadyForExposure	
Remarks
Refer to ‘detector::NotifyReadyForExposure’.
Refer to ‘detector.DelegateReadyForExposure’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		pDetector->SetNotifyReadyForExposure(NotifyReadyForExposure);
}

void NotifyReadyForExposure (Vieworks::vivix::DETECTOR_ID id, bool bReady)
{
		// Detector is ready for exposure (true / false)
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		pDetector.SetDelegateReadyForExposure(OnDelegateReadyForExposure);
}

void OnDelegateReadyForExposure(int id, bool bReady)
{
		// Detector is ready for exposure (true / false)
}

6.2.6 SetNotifyOffsetRefreshCheck / SetDelegateOffsetRefreshCheck
Sets the notification of NotifyOffsetRefreshCheck / DelegateOffsetRefreshCheck	
Syntax (C++)
void SetNotifyOffsetRefreshCheck (
	_In_	NotifyOffsetRefreshCheck		pNotify
);
Syntax (C#)
void SetDelegateOffsetRefreshCheck (
	DelegateOffsetRefreshCheck		val
);
Parameters
pNotify [in]
NotifyOffsetRefreshCheck
val [in]
DelegateOffsetRefreshCheck	
Remarks
Refer to ‘detector::NotifyOffsetRefreshCheck’.
Refer to ‘detector.DelegateOffsetRefreshCheck’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyOffsetRefreshCheck(NotifyOffsetRefreshCheck);
}

void NotifyOffsetRefreshCheck(Vieworks::vivix::DETECTOR_ID id, double previousTemperature, double currentTemperature, bool needRefresh)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateOffsetRefreshCheck(OnDelegateOffsetRefreshCheck);
}

void OnDelegateOffsetRefreshCheck(int id, double previousTemperature, double currentTemperature, bool needRefresh)
{
}

6.2.7 SetNotifyCalibrationIsNotReady / SetDelegateCalibrationIsNotReady
Sets NotifyCalibrationIsNotReady / DelegateCalibrationIsNotReady notification callback or delegates to the VIVIX SDK.	
Syntax (C++)
void SetNotifyCalibrationIsNotReady (
	_In_	NotifyCalibrationIsNotReady	pNotify
);
Syntax (C#)
void SetDelegateCalibrationIsNotReady (
	DelegateCalibrationIsNotReady	val
);
Parameters
pNotify [in]
NotifyCalibrationIsNotReady
val [in]
DelegateCalibrationIsNotReady	
Remarks
Refer to ‘detector::NotifyCalibrationIsNotReady’.
Refer to ‘detector.DelegateCalibrationIsNotReady’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyCalibrationIsNotReady(NotifyCalibrationIsNotReady);
}

void NotifyCalibrationIsNotReady(Vieworks::vivix::DETECTOR_ID id, int timeLeft)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateCalibrationIsNotReady(OnDelegateCalibrationIsNotReady);
}

void OnDelegateCalibrationIsNotReady(int id, int timeLeft)
{
}

6.2.8 SetNotifyCalibrationStep / SetDelegateCalibrationStep
Sets the notification of NotifyCalibrationStep / DelegateCalibrationStep	
Syntax (C++)
void SetNotifyCalibrationStep (
	_In_	NotifyCalibrationStep	pNotify
);
Syntax (C#)
void SetDelegateCalibrationStep (
	DelegateCalibrationStep	val
);
Parameters
pNotify [in]
NotifyCalibrationStep
val [in]
DelegateCalibrationStep	
Remarks
Refer to ‘detector::NotifyCalibrationStep’
Refer to ‘detector.DelegateCalibrationStep’	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyCalibrationStep(NotifyCalibrationStep);
}

void NotifyCalibrationStep(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::CALIBRATION_TYPE calibrationType, unsigned int stage, float avgValue, Vieworks::vivix::IMAGE_INFO* imgInfo)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateCalibrationStep(OnDelegateCalibrationStep);
}

void OnDelegateCalibrationStep(int id, Vieworks.vivix.net.CALIBRATION_TYPE calibrationType, uint stage, float avgValue, Vieworks.vivix.net.IMAGE_INFO* imgInfo)
{
}

6.2.9 SetNotifyCalibrationResult / SetDelegateCalibrationResult
Sets the notification of NotifyCalibrationResult / DelegateCalibrationResult	
Syntax (C++)
void SetNotifyCalibrationResult (
	_In_	NotifyCalibrationResult	pNotify
);
Syntax (C#)
void SetDelegateCalibrationResult (
	DelegateCalibrationResult	val
);
Parameters
pNotify [in]
NotifyCalibrationResult
val [in]
DelegateCalibrationResult	
Remarks
Refer to ‘detector::NotifyCalibrationResult’.
Refer to ‘detector.DelegateCalibrationResult’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyCalibrationResult(NotifyCalibrationResult);
}

void NotifyCalibrationResult(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::CALIBRATION_TYPE calibrationType, bool done)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateCalibrationResult(OnDelegateCalibrationResult);
}

void OnDelegateCalibrationResult(int id, Vieworks.vivix.net.CALIBRATION_TYPE calibrationType, bool done)
{
}

6.2.10 SetNotifyCalibrationOffsetRefreshStep / SetDelegateCalibrationOffsetRefreshStep
Sets the notification of NotifyCalibrationOffsetRefreshStep / DelegateCalibrationOffsetRefreshStep	
Syntax (C++)
void SetNotifyCalibrationOffsetRefreshStep (
	_In_	NotifyCalibrationOffsetRefreshStep		pNotify
);
Syntax (C#)
void SetDelegateCalibrationOffsetRefreshStep (
	DelegateCalibrationOffsetRefreshStep		val
);
Parameters
pNotify [in]
NotifyCalibrationOffsetRefreshStep
val [in]
DelegateCalibrationOffsetRefreshStep	
Remarks
Refer to ‘detector::NotifyCalibrationOffsetRefreshStep’.
Refer to ‘detector.DelegateCalibrationOffsetRefreshStep’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector-> SetNotifyCalibrationOffsetRefreshStep(NotifyCalibrationOffsetRefreshStep);
}

void NotifyCalibrationResult(Vieworks::vivix::DETECTOR_ID id, unsigned int stage, float avgValue, Vieworks::vivix::IMAGE_INFO* image)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector. SetDelegateCalibrationOffsetRefreshStep(OnDelegateCalibrationOffsetRefreshStep);
}

void OnDelegateCalibrationResult(int id, uint stage, float avgValue, Vieworks.vivix.net.IMAGE_INFO* image)
{
}

6.2.11 SetNotifyCalibrationOffsetRefreshResult / SetDelegateCalibrationOffsetRefreshResult
Sets the notification of NotifyCalibrationOffsetRefreshResult / DelegateCalibrationOffsetRefreshResult	
Syntax (C++)
void SetNotifyCalibrationOffsetRefreshResult (
	_In_	NotifyCalibrationOffsetRefreshResult		pNotify
);
Syntax (C#)
void SetDelegateCalibrationOffsetRefreshResult (
	DelegateCalibrationOffsetRefreshResult		val
);
Parameters
pNotify [in]
NotifyCalibrationOffsetRefreshResult
val [in]
DelegateCalibrationOffsetRefreshResult	
Remarks
Refer to ‘detector::NotifyCalibrationOffsetRefreshResult’.
Refer to ‘detector.DelegateCalibrationOffsetRefreshResult’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyCalibrationOffsetRefreshResult(NotifyCalibrationOffsetRefreshResult);
}

void NotifyCalibrationOffsetRefreshResult(Vieworks::vivix::DETECTOR_ID id,Vieworks::vivix::OFFSET_REFRESH_STATUS status)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateCalibrationOffsetRefreshResult
(OnDelegateCalibrationOffsetRefreshResult);
}

void OnDelegateCalibrationOffsetRefreshResult(int id,Vieworks.vivix.net.OFFSET_REFRESH_STATUS status)
{
}

6.2.12 SetNotifyCalibrationFileLoaded / SetDelegateCalibrationFileLoaded
Sets the notification of NotifyCalibrationFileLoaded / DelegateCalibrationFileLoaded	
Syntax (C++)
void SetNotifyCalibrationFileLoaded (
	_In_	NotifyCalibrationFileLoaded		pNotify
);
Syntax (C#)
void SetDelegateCalibrationFileLoaded (
	DelegateCalibrationFileLoaded		val
);
Parameters
pNotify [in]
NotifyCalibrationFileLoaded
val [in]
DelegateCalibrationFileLoaded	
Remarks
Refer to ‘detector::NotifyCalibrationFileLoaded’.
Refer to ‘detector.DelegateCalibrationFileLoaded’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyCalibrationFileLoaded(NotifyCalibrationFileLoaded);
}

void NotifyCalibrationFileLoaded(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::CALIBRATION_TYPE fileType)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateCalibrationFileLoaded(OnDelegateCalibrationFileLoaded);
}

void OnDelegateCalibrationFileLoaded(int id, Vieworks.vivix.net.CALIBRATION_TYPE fileType)
{
}

6.2.13 SetNotifyCalibrationFileSaved / SetDelegateCalibrationFileSaved
Sets the notification of NotifyCalibrationFileSaved / DelegateCalibrationFileSaved	
Syntax (C++)
void SetNotifyCalibrationFileSaved (
	_In_	NotifyCalibrationFileSaved		pNotify
);
Syntax (C#)
void SetDelegateCalibrationFileSaved (
	DelegateCalibrationFileSaved		val
);
Parameters
pNotify [in]
NotifyCalibrationFileSaved
val [in]
DelegateCalibrationFileSaved	
Remarks
Refer to ‘detector::NotifyCalibrationFileSaved’.
Refer to ‘detector.DelegateCalibrationFileSaved’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyCalibrationFileSaved(NotifyCalibrationFileSaved);
}

void NotifyCalibrationFileSaved(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::CALIBRATION_TYPE fileType)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateCalibrationFileSaved(OnDelegateCalibrationFileSaved);
}

void OnDelegateCalibrationFileSaved(int id, Vieworks.vivix.net.CALIBRATION_TYPE fileType)
{
}

6.2.14 SetNotifyReconnected / SetDelegateReconnected
Sets the notification of NotifyReconnected / DelegateReconnected	
Syntax (C++)
void SetNotifyReconnected (
	_In_	NotifyReconnected	pNotify
);
Syntax (C#)
void SetDelegateReconnected (
	DelegateReconnected	val
);
Parameters
pNotify [in]
NotifyReconnected
val [in]
DelegateReconnected	
Remarks
Refer to ‘detector::NotifyReconnected’.
Refer to ‘detector.DelegateReconnected’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyReconnected(NotifyReconnected);
}

void NotifyReconnected(Vieworks::vivix::DETECTOR_ID id)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateReconnected(OnDelegateReconnected);
}

void OnDelegateReconnected(int id)
{
}

6.2.15 SetNotifyDisconnected / SetDelegateDisconnected
Sets the notification of NotifyDisconnected / DelegateDisconnected	
Syntax (C++)
void SetNotifyDisconnected (
	_In_	NotifyDisconnected	pNotify
);
Syntax (C#)
void SetDelegateDisconnected (
	DelegateDisconnected	val
);
Parameters
pNotify [in]
NotifyDisconnected
val [in]
DelegateDisconnected	
Remarks
Refer to ‘detector::NotifyDisconnected’
Refer to ‘detector.DelegateDisconnected’	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyDisconnected(NotifyDisconnected);
}

void NotifyDisconnected(Vieworks::vivix::DETECTOR_ID id)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateDisconnected(OnDelegateDisconnected);
}

void OnDelegateDisconnected(int id)
{
}

6.2.16 SetNotifyError / SetDelegateError
Sets the notification of NotifyError / DelegateError	
Syntax (C++)
void SetNotifyError (
	_In_	NotifyError	pNotify
);
Syntax (C#)
void SetDelegateError (
	DelegateError	val
);
Parameters
pNotify [in]
NotifyError
val [in]
DelegateError	
Remarks
Refer to ‘detector::NotifyError’.
Refer to ‘detector.DelegateError’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyError(NotifyError);
}

void NotifyError(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::ERROR_TYPE type)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateError(OnDelegateError);
}

void OnDelegateError(int id, Vieworks.vivix.net.ERROR_TYPE type)
{
}

6.2.17 SetNotifyShockDetection / SetDelegateShockDetection
Sets the notification of NotifyShockDetection / DelegateShockDetection	
Syntax (C++)
void SetNotifyShockDetection (
	_In_	NotifyShockDetection	pNotify
);
Syntax (C#)
void SetDelegateShockDetection (
	DelegateShockDetection	val
);
Parameters
pNotify [in]
NotifyShockDetection
val [in]
DelegateShockDetection	
Remarks
Refer to ‘detector::NotifyShockDetection.
Refer to ‘detector.DelegateShockDetection.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		pDetector->SetNotifyShockDetection(NotifyShockDetection);
}

void NotifyShockDetection(Vieworks::vivix::DETECTOR_ID id)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		pDetector.SetDelegateShockDetection(OnDelegateShockDetection);
}

void OnDelegateShockDetection(int id)
{
}

6.2.18 SetNotifyImageTransmissionProgress / SetDelegateImageTransmissionProgress
Sets the notification of NotifyImageTransmissionProgress / DelegateImageTransmissionProgress	
Syntax (C++)
void SetNotifyImageTransmissionProgress(
	_In_	NotifymageTransmissionProgress	pNotify
);
Syntax (C#)
void SetDelegateImageTransmissionProgress (
	DelegateImageTransmissionProgress	val
);
Parameters
pNotify [in]
NotifyImageTransmissionProgress
val [in]
DelegateImageTransmissionProgress	
Remarks
Refer to ‘detector::NotifyImageTransmissionProgress’. 
Refer to ‘detector.DelegateImageTransmissionProgress	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		pDetector->SetNotifyImageTransmissionProgress(NotifyImageTransmissionProgress);
}

void NotifyImageTransmissionProgress (Vieworks::vivix::DETECTOR_ID id, int progress)
{
		// Image transmission progress
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		 pDetector.SetDelegateImageTransmissionProgress
(OnDelegateImageTransmissionProgress);
}

void OnDelegateImageTransmissionProgress (int id, int progress)
{
		// Image transmission progress
}

6.2.19 SetNotifyAccSensorCalibrationProgress / SetDelegateAccSensorCalibrationProgress
Sets the notification of NotifyAccSensorCalibrationProgress / DelegateAccSensorCalibrationProgress 
Syntax (C++)
void SetNotifyIAccSensorCalibrationProgress (
	_In_	NotifyAccSensorCalibrationProgress	pNotify
);
Syntax (C#)
void SetDelegateAccSensorCalibrationProgress (
	DelegateAccSensorCalibrationProgress	val
);
Parameters
pNotify [in]
NotifyAccSensorCalibrationProgress
val [in]
DelegateAccSensorCalibrationProgress
Remarks
Refer to ‘detector::NotifyAccSensorCalibrationProgress. 
Refer to ‘detector.DelegateAccSensorCalibrationProgress
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		pDetector->SetNotifyAccSensorCalibrationProgress 
(NotifyAccSensorCalibrationProgress);
}

void NotifyAccSensorCalibrationProgress (Vieworks::vivix::DETECTOR_ID id, int progress)
{
		// Acc Sensor Calibration Progress
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		 pDetector.SetDelegateAccSensorCalibrationProgress
(OnDelegateAccSensorCalibrationProgress);
}

void OnDelegateAccSensorCalibrationProgress (int id, int progress)
{
		// Acc Sensor Calibration Progress
}	

6.2.20 SetNotifyFrameGrabberImageInEX / SetDelegateFrameGrabberImageInEX
Sets NotifyFrameGrabberImageInEX notification.
NotifyFrameGrabberImageInEX has IMAGE_INFO_EX as a parameter. Refer to <4.1.274.1.27 IMAGE_INFOIMAGE_INFO> and <4.1.284.1.28 IMAGE_INFO_EXIMAGE_INFO_EX>.
It is recommended to use this function instead of the existing callback function, because it will be added to the IMAGE_INFO_EX structure even when other items are added to the Image Info structure in the future.
If you use NotifyFrameGrabberImageInEX and NotifyFrameGrabberImageIn together, you will only obtain one image by NotifyFrameGrabberImageInEX.
Syntax (C++)
void SetNotifyFrameGrabberImageInEX (
	_In_	NotifyFrameGrabberImageInEX	pNotify
);
Syntax (C#)
void SetDelegateFrameGrabberImageInEX (
DelegateFrameGrabberImageInEX	val
);
Parameters
pNotify [in]
NotifyFrameGrabberImageInEX
val [in]
DelegateFrameGrabberImageInEX

Remarks
Refer to ‘detector::NotifyFrameGrabberImageInEX.
Refer to ‘detector.DelegateFrameGrabberImageInEX’.

Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;
 
// SDK Initialize finished.
// DetectorGet finished.

pDetector->SetNotifyFrameGrabberImageInEX(NotifyFrameGrabberImageInEX);

void NotifyFrameGrabberImageInEX(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::IMAGE_MODE imgMode, Vieworks::vivix::IMAGE_INFO_EX* image) 
{
}
Examples (C#) 
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

//SDK Initialize finished.
//DetectorGet finished.

pDetector.SetDelegateFrameGrabberImageInEX(OnDelegateFrameGrabberImageInEX);


void OnDelegateFrameGrabberImageInEX(int id, Vieworks.vivix.net.IMAGE_MODE imgMode, Vieworks.vivix.net.IMAGE_INFO_EX image)
{
}	

6.3 Callback Notification Functions


6.3.1 detector::NotifyFrameGrabberImageInStart / detector.DelegateFrameGrabberImageInStart
Notifies that the image transmission is started.	
Syntax (C++)
void detector::NotifyFrameGrabberImageInStart (
	_In_	DETECTOR_ID	id,
	_In_	IMAGE_MODE	imgMode
);
Syntax (C#)
void detector.DelegateFrameGrabberImageInStart (
	int	id,
	IMAGE_MODE	imgMode
);
Parameters
id[in]
Detector ID
imgMode [in]
Frame grabber image mode	
Remarks
FXRD-1717S / FXRD-1417S: When the image is transferred from filter driver.
FXRD-1417S: When the image is transferred from detector.	

6.3.2 detector::NotifyFrameGrabberImageIn / detector.DelegateFrameGrabberImageIn
Acquired image data and its information	
Syntax (C++)
void detector::NotifyFrameGrabberImageIn (
	_In_	DETECTOR_ID	id,
	_In_	IMAGE_MODE	imgMode,
	_In_	IMAGE_INFO	image
);
Syntax (C#)
void detector.DelegateFrameGrabberImageIn (
	int		id,
	IMAGE_MODE	imgMode,
	IMAGE_INFO	image
);
Parameters
Id [in]
Detector ID
imgMode [in]
Frame grabber image mode
image [in]
Image information	
Remarks
The real image is sent to this function.	

6.3.3 detector::NotifyFrameGrabberImageInEnd / detector.DelegateFrameGrabberImageInEnd
Detector frame grabber image in end notification.	
Syntax (C++)
void detector::NotifyFrameGrabberImageInEnd (
	_In_	DETECTOR_ID	id,
	_In_	IMAGE_MODE	imgMode
);
Syntax (C#)
void detector.DelegateFrameGrabberImageInEnd (
	int		id,
	IMAGE_MODE	imgMode
);
Parameters
id [in]
Detector ID
imgMode [in]
Frame grabber image mode	
Remarks
Notifies that the image transmission is finished.	

6.3.4 detector::NotifyExposed / detector.DelegateExposed
Transmits the notification generated when the detector is exposed to x-ray	
Syntax (C++)
void detector::NotifyExposed (
	_In_	DETECTOR_ID		id,
);
Syntax (C#)
void detector.DelegateExposed (
	int			id,
);
Parameters
id [in]
Detector ID	

6.3.5 detector::NotifyReadyForExposure / detector.DelegateReadyForExposure
Gets ready for exposure notification	
Syntax (C++)
void detector::NotifyReadyForExposure (
	_In_	DETECTOR_ID	id,
	_In_	bool		bReady
);
Syntax (C#)
void detector.DelegateReadyForExposure (
	int	id,
	bool	bReady
);
Parameters
id [in]
Detector ID
bool [in]
Exposure availability	

6.3.6 detector::NotifyOffsetRefreshCheck / detector.DelegateOffsetRefreshCheck
Notifies the check result of offset refresh.	
Syntax (C++)
void detector::NotifyOffsetRefreshCheck (
	_In_	DETECTOR_ID	id,
	_In_	double		previousTemperature,
	_In_	double		currentTemperature,
	_In_	bool		needRefresh
);
Syntax (C#)
void detector.DelegateOffsetRefreshCheck (
	int		id,
	double		previousTemperature,
	double		currentTemperature,
	bool		needRefresh
);
Parameters
id [in]
Detector ID
previousTemperature [in]
Previous temperature
currentTemperature [in]
Current temperature
needRefresh [in]
If this detector need offset refresh this value is true.	
Remarks
If Auto Offset Refresh is turned on by using the AutoOffsetRefreshConfigSet function, the relevant notification is called in every interval of setting time. If difference between the previous temperature and current temperature occurs as much as the configured difference, the needRefresh function is sent as true.	

6.3.7 detector::NotifyCalibrationIsNotReady / detector.DelegateCalibrationIsNotReady
Notifies when Offset Calibration cannot be processed.	
Syntax (C++)
void detector::NotifyCalibrationIsNotReady (
	_In_	DETECTOR_ID	id,
	_In_	int		timeLeft
);
Syntax (C#)
void detector.DelegateCalibrationIsNotReady (
	int		id,
	int		timeLeft
);
Parameters
id [in]
Detector ID
timeLeft [in]
Time left to offset calibration	

6.3.8 detector::NotifyCalibrationStep / detector.DelegateCalibrationStep
Notifies detector calibration step	
Syntax (C++)
void detector::NotifyCalibrationStep (
	_In_	DETECTOR_ID		id,
	_In_	CALIBRATION_TYPE	calibrationType,
	_In_	uint			stage,
	_In_	float			avgValue,
	_In_	IMAGE_INFO		image
);
Syntax (C#)
void detector.DelegateCalibrationStep (
	int			id,
	CALIBRATION_TYPE	calibrationType,
	uint			stage,
	float			avgValue,
	IMAGE_INFO		image
);
Parameters
id [in]
Detector ID
calibrationType [in]
Calibration type
stage [in]
Stage of calibration
avgValue [in]
Average value
image [in]
Image information	
Remarks
If the calibration is processed by OffsetCalibration, DefectUpdate, and GainCalibration functions, the process can be checked from the relevant notification.	

6.3.9 detector::NotifyCalibrationResult / detector.DelegateCalibrationResult
Notifies the result of detector calibration	
Syntax (C++)
void detector::NotifyCalibrationResult (
	_In_	DETECTOR_ID		id,
	_In_	CALIBRATION_TYPE	type,
	_In_	bool			done
);
Syntax (C#)
void detector.DelegateCalibrationResult (
	int			id,
	CALIBRATION_TYPE	type,
	bool			done
);
Parameters
id [in]
Detector ID
type [in]
Calibration type
done [in]
Done or fail detector calibration	
Remarks
If the calibration is processed by OffsetCalibration, DefectUpdate, and GainCalibration functions, the completion time and result of calibration can be checked from the relevant notification.	

6.3.10 detector::NotifyCalibrationOffsetRefreshStep / detector.DelegateCalibrationOffsetRefreshStep
Notifies the refresh step of detector offset	
Syntax (C++)
void detector::NotifyCalibrationOffsetRefreshStep (
	_In_	DETECTOR_ID	id,
	_In_	uint		stage,
	_In_	float		avgValue,
	_In_	IMAGE_INFO	image
);
Syntax (C#)
void detector.DelegateCalibrationOffsetRefreshStep (
	int		id,
	uint		stage,
	float		avgValue,
	IMAGE_INFO	image
);
Parameters
id [in]
Detector ID
stage [in]
Stage of calibration
avgValue [in]
Average value
image [in]
Image information	
Remarks
If the calibration is processed by OffsetRefresh function, the process can be checked from the relevant notification.	

6.3.11 detector::NotifyCalibrationOffsetRefreshResult / detector.DelegateCalibrationOffsetRefreshResult
Notifies the result of performed offset refresh.	
Syntax (C++)
void detector::NotifyCalibrateOffsetRefreshResult (
	_In_	DETECTOR_ID		id,
	_In_	OFFSET_REFRESH_STATUS	result
);
Syntax (C#)
void detector.DelegateCalibrateOffsetRefreshResult (
	int			id,
	OFFSET_REFRESH_STATUS	result
);
Parameters
id [in]
Detector ID
result [in]
Offset refresh result	
Remarks
If the calibration is processed by OffsetRefresh function, the process can be checked from the relevant notification.	

6.3.12 detector::NotifyCalibrationFileLoaded / detector.DelegateCalibrationFileLoaded
Notifies the upload of detector calibration file	
Syntax (C++)
void detector::NotifyCalibrationFileLoaded (
	_In_	DETECTOR_ID		id,
	_In_	CALIBRATION_TYPE	fileType
);
Syntax (C#)
void detector.DelegateCalibrationFileLoaded (
	int			id,
	CALIBRATION_TYPE	fileType
);
Parameters
id [in]
Detector ID
fileType [in]
Calibration file type	
Remarks
If the Offset Calibration file, Defect Map file, and Gain Calibration file are loaded successfully by using the CalibrationLoad function, the relevant notification is called.	

6.3.13 detector::NotifyCalibrationFileSaved / detector.DelegateCalibrationFileSaved
Notifies the saved detector calibration file	
Syntax (C++)
void detector::NotifyCalibrationFileSaved (
	_In_	DETECTOR_ID		id,
	_In_	CALIBRATION_TYPE	fileType
);
Syntax (C#)
void detector.DelegateCalibrationFileSaved (
	int			id,
	CALIBRATION_TYPE	fileType
);
Parameters
id [in]
Detector ID
fileType [in]
Calibration file type	
Remarks
If the Offset Calibration file, Defect Map file, and Gain Calibration file are saved successfully by using the CalibrationSave function, the relevant notification is called.	

6.3.14 detector::NotifyReconnected / detector.DelegateReconnected
Notifies the reconnected detector	
Syntax (C++)
void detector::NotifyReconnected (
	_In_ 	DETECTOR_ID	id
);
Syntax (C#)
void detector.DelegateReconnected (
	int	id
);
Parameters
id [in]
Detector ID	

6.3.15 detector::NotifyDisconnected / detector.DelegateDisconnected
Notifies disconnected detector	
Syntax (C++)
void Disconnected (
	_In_	DETECTOR_ID	id
);
Syntax (C#)
void Disconnected (
	int	id
);
Parameters
id [in]
Detector ID	

6.3.16 detector::NotifyError / detector.DelegateError
Notifies error(s)	
Syntax (C++)
void detector::NotifyError (
	_In_	DETECTOR_ID		id,
	_In_	ERROR_TYPE 		type
);
Syntax (C#)
void detector.DelegateError (
	int			id,
	ERROR_TYPE		type
);
Parameters
id [in]
Detector ID
type [in]
Error type	
Remarks
  • Detector Not Calibrated: Detector was taken the image but detector is not calibrated.	
  • Not Enough Memory: Insufficient free memory space to perform action.	
  • Image Timeout: Image transmission timeout.	
  • Hard disk Capacity Shortage: There is not enough hard disk space.	

6.3.17 detector::NotifyShockDetection / detector.DelegateShockDetection
Notifies shock detection	
Syntax (C++)
void detector::NotifyShockDetection(
	_In_	DETECTOR_ID		id,
SHOCK_LEVEL 			eLevel, 
int 				nExpectedFallHeightcm
);
Syntax (C#)
void detector.DelegateShockDetection(
	int			id
SHOCK_LEVEL 		level, 
int 			expectedFallHeightcm
);
Parameters
id [in]
Detector ID	
Remarks
  • For 1717S and 1717V detectors, this notification does not occur because there is no shock sensor.	
This notification occurs in the F/W where this function can operate.	
  • Refer to the supported software (version 1.0.11) in <2.3.4 Firmware version compatibility recommendations>.	
You can receive a notification up to 7 seconds after the shock occurred.	
  • Level and nExpectedFallHeightcm are not obtained for detectors other than N type,	

6.3.18 detector::NotifyImageTransmissionProgress / detector.DelegateImageTransmissionProgress
Notifies the progress of image transmission	
Syntax (C++)
void detector::NotifyImageTransmissionProgress (
	_In_	DETECTOR_ID		id,
	_In_	int			progress
);
Syntax (C#)
void detector. DelegateImageTransmissionProgress (
	int			id,
	int			progress
);
Parameters
id [in]
Detector ID
progress [in]
Image transmission progress	

6.3.19 detector::NotifyAccSensorCalibrationProgress/ detector.DelegateAccSensorCalibrationProgress
Notifies the progress of acceleration calibration 
Syntax (C++)
void detector::NotifyAccSensorCalibrationProgress (
	_In_	DETECTOR_ID		id,
	_In_	int			progress
);
Syntax (C#)
void detector. DelegateAccSensorCalibrationProgress (
	int			id,
	int			progress
);
Parameters
id [in]
Detector ID
progress [in]
Calibration progress	

6.3.20 detector::NotifyFrameGrabberImageInEX / detector.DelegateFrameGrabberImageInEX
Notifies acquired image data and its information.
NotifyFrameGrabberImageInEX is an extension of NotifyFrameGrabberImageIn as a callback to pass information that was not in the existing IMAGE_INFO, such as Partial mode.
Syntax (C++)
void detector:: NotifyFrameGrabberImageInEX (
	_In_	DETECTOR_ID	id,
_In_	IMAGE_MODE	imgMode, 
_In_	IMAGE_INFO_EX	image
);
Syntax (C#)
void detector. DelegateFrameGrabberImageInEX (
	int		id,
	IMAGE_MODE	imgMode, 
IMAGE_INFO_EX	image
);

Parameters
Id [in]
Detector ID
imgMode [in]
Frame grabber image mode
image [in]
Image information
Remarks
The real image is sent to this function.	



7 CFXRDS


7.1 Member Functions


7.1.1 VersionInfoGet
Brings the version information of the detector	
Syntax (C++)
RESULT VersionInfoGet (
	_Out_	DETECTOR_VERSION_INFO*		info
);
Syntax (C#)
RESULT VersionInfoGet (
	out	DETECTOR_VERSION_INFO*		info
);
Parameters
info [out]
Version information	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get version information.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to get version information.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
 Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		Vieworks::vivix::DETECTOR_VERSION_INFO DetectorVersionInfo;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_S:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_S:
			{
				Vieworks::vivix::detector::CFXRDS* pFXRDS = NULL;
				pFXRDS = (Vieworks::vivix::detector::CFXRDS*)pDetector;
				nResult = pFXRDS->VersionInfoGet(&DetectorVersionInfo);
			}
			break;

		default:
			// Not supported model.
			Break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get version information.
		}
		else
		{
			// Failed to get version information.
		}
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		Vieworks.vivix.net.DETECTOR_VERSION_INFO DetectorVersionInfo;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_S: 
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_V: 
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_S:
			{
				Vieworks.vivix.net.detector.FXRDS pFXRDS = null;
				pFXRDS = pDetector as Vieworks.vivix.net.detector.FXRDS;
				nResult = pFXRDS.VersionInfoGet(out DetectorVersionInfo);
			}
			break;

		default:
			// Not supported model.
			Break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get version information.
		}
		else
		{
			// Failed to get version information.
		}
	}

7.1.2 InterpacketDelaySet
Sets the delay time of detector interpacket	
Syntax (C++)
RESULT InterpacketDelaySet (
	_In_	bool	enable
);
Syntax (C#)
RESULT InterpacketDelaySet (
	bool	enable
);
Parameters
enable [in]
Enable interpacket delay.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set interpacket delay time.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to set interpacket delay time.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_S: 
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_S:
			{
				Vieworks::vivix::detector::CFXRDS* pFXRDS = NULL;
				pFXRDS = (Vieworks::vivix::detector::CFXRDS*)pDetector;
				nResult = pFXRDS->InterpacketDelaySet(true);
			}
			break;

		default:
			// Not supported model.
			Break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to enable interpacket delay.
		}
		else
		{
			// Failed to enable interpacket delay.
		}
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_S: 
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_S:
			{
				Vieworks.vivix.net.detector.FXRDS pFXRDS = null;
				pFXRDS = pDetector as Vieworks.vivix.net.detector.FXRDS;
				nResult = pFXRDS.InterpacketDelaySet(true);
			}
			break;

		default:
			// Not supported model.
			Break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to enable interpacket delay.
		}
		else
		{
			// Failed to enable interpacket delay.
		}
	}

7.1.3 InterpacketDelayGet
Gets the delay time of detector interpacket	
Syntax (C++)
RESULT InterpacketDelayGet (
	_Out_	bool*	enable
);
Syntax (C#)
RESULT InterpacketDelayGet (
	bool*	enable
);
Parameters
enable [out]
Enable Interpacket delay	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get interpacket delay time.	
RESULT_INVALID_PARAMETER	
[enable] value is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to get interpacket delay time.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::Cdetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		bool bInterpacketDelay = false;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_S: 
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_S:
			{
				Vieworks::vivix::detector::CFXRDS* pFXRDS = NULL;
				pFXRDS = (Vieworks::vivix::detector::CFXRDS*)pDetector;
				nResult = pFXRDS->InterpacketDelayGet(&bInterpacketDelay);
			}
			break;

		default:
			// Not supported model.
			Break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to enable interpacket delay.
		}
		else
		{
			// Failed to enable interpacket delay.
		}
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		bool bInterpacketDelay = false;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_S: 
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_S:
			{
				Vieworks.vivix.net.detector.FXRDS pFXRDS = null;
				pFXRDS = pDetector as Vieworks.vivix.net.detector.FXRDS;
				nResult = pFXRDS.InterpacketDelayGet(out bInterpacketDelay);
			}
			break;

		default:
			// Not supported model.
			Break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to enable interpacket delay.
		}
		else
		{
			// Failed to enable interpacket delay.
		}
	}

7.2 Callback Notification Setting Function


7.2.1 SetNotifyTemperature / SetDelegateTemperature
Sets NotifyTemperature notification	
Syntax (C++)
void SetNotifyTemperature (
	_In_	NotifyTemperature	pNotify
);
Syntax (C#)
void SetDelegateTemperature (
	DelegateTemperature	val
);
Parameters
pNotify [in]
NotifyTemperature
val [in]
DelegateTemperature	
Remarks
Refer to ‘detector::NotifyTemperature’.
Refer to ‘detector.DelegateTemperature’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_S: 
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_S:
			{
				((Vieworks::vivix::detector::FXRDS*)pDetector)->SetNotifyTemperature(NotifyTemperature);
			}
			break;
		default:
			// Not supported model
			break;
		}
}

void NotifyTemperature(Vieworks::vivix::DETECTOR_ID id, double temperature)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		Case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_S: 
		Case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_S:
			{
Vieworks.vivix.net.detector.FXRDS pFXRDS = null;
				pFXRDS = pDetector as Vieworks.vivix.net.detector.FXRDS;
				pFXRDS.SetDelegateTemperature(OnDelegateTemperature);
			}
			break;
		default:
			// Not supported model
			break;
		}
}

void OnDelegateTemperature(int id, double temperature)
{
}

7.3 Callback Notification Function


7.3.1 detector::NotifyTemperature / detector.DelegateTemperature
Notifies temperature	
Syntax (C++)
void detector::NotifyTemperature (
	_In_	DETECTOR_ID	id,
	_In_	double		temperature
);
Syntax (C#)
void detector.DelegateTemperature (
	int		id,
	double		temperature
);
Parameters
id [in]
Detector ID
temperature [in]
Temperature	



8 CFXRDW


8.1 Member Functions


8.1.1 VersionInfoGet
Brings the version information of the detector	
Syntax (C++)
RESULT VersionInfoGet (
	_In_	DETECTOR_VERSION_INFO*		info
);
Syntax (C#)
RESULT VersionInfoGet (
	out	DETECTOR_VERSION_INFO		info
);
Parameters
info [in]
Detector version information.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get version information.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get version information.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		bool bInterpacketDelay = false;

		Vieworks::vivix::DETECTOR_VERSION_INFO DetectorVersionInfo;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->VersionInfoGet(&DetectorVersionInfo);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get detector version information.
		}
		else
		{
			// Failed to get detector version information.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		bool bInterpacketDelay = false;

		Vieworks.vivix.net.DETECTOR_VERSION_INFO DetectorVersionInfo;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.VersionInfoGet(out DetectorVersionInfo);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get detector version information.
		}
		else
		{
			// Failed to get detector version information.
		}
	}

8.1.2 IsSleep
Checks the sleep state of the detector	
Syntax (C++)
RESULT IsSleep (
	_In_	bool*	isSleep
);
Syntax (C#)
RESULT IsSleep (
	out	bool	isSleep
);
Parameters
isSleep [in]	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get sleep state.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to get sleep state.	
Remarks
This function can be used after opening detector connection.
If the value of isSleep is true, it means that the detector is under the sleep state currently.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		bool bSleep = false;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->IsSleep(&bSleep);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set sleep state

			if(bSleep == true)
			{
				// Detector is sleep state.
			}
			else
			{
				// Detector is not sleep state.
			}
		}
		else
		{
			// Failed to get sleep state
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		bool bSleep = false;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.IsSleep(out bSleep);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set sleep state

			if(bSleep == true)
			{
				// Detector is sleep state.
			}
			else
			{
				// Detector is not sleep state.
			}
		}
		else
		{
			// Failed to get sleep state
		}
	}

8.1.3 NetworkConfigurationGet
Gets network configuration	
Syntax (C++)
RESULT NetworkConfigurationGet (
	_Out_	NETWORK_CONFIGURATION*	config
);
Syntax (C#)
RESULT NetworkConfigurationGet (
	out	NETWORK_CONFIGURATION	config
);
Parameters
config [out]
Network configuration	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get network configuration.	
RESULT_INVALID_PARAMETER	
[config] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get network configuration.	
Remarks
This function can be used after opening detector connection. This function brings the configuration related to the network information. The information is not stored in the detector, but recorded in the SDK memory. Therefore, call the ConfigurationRead function first and call the NetworkConfigurationGet function to get the setting value stored in the real detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::NETWORK_CONFIGURATION NetworkConfiguration;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->NetworkConfigurationGet(&NetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get network configuration.
		}
		else
		{
			// Failed to get network configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.NETWORK_CONFIGURATION NetworkConfiguration;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.NetworkConfigurationGet(out NetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get network configuration.
		}
		else
		{
			// Failed to get network configuration.
		}
	}

8.1.4 NetworkConfigurationSet
Sets network configuration	
Syntax (C++)
RESULT NetworkConfigurationSet (
	_In_	NETWORK_CONFIGURATION*	config
);
Syntax (C#)
RESULT NetworkConfigurationSet (
	NETWORK_CONFIGURATION	config
);
Parameters
config [in]
Network configuration	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set network configuration.	
RESULT_INVALID_PARAMETER	
The invalid item exists among the [config] items.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set networks configuration.	
Remarks
This function can be used after opening detector connection. This function set Configuration related to the network information. The information is not configured from the detector, but recorded in the SDK memory. Therefore, call the ConfigurationSave function to send the save the information in the SDK memory to the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::NETWORK_CONFIGURATION NetworkConfiguration;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->NetworkConfigurationSet(&NetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set network configuration.
		}
		else
		{
			// Failed to set network configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.NETWORK_CONFIGURATION NetworkConfiguration;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.NetworkConfigurationSet(NetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set network configuration.
		}
		else
		{
			// Failed to set network configuration.
		}
	}

8.1.5 WirelessNetworkConfigurationGet
Gets wireless network configuration	
Syntax (C++)
RESULT WirelessNetworkConfigurationGet (
	_Out_	WIRELESS_NETWORK_CONFIGURATION*	config
);
Syntax (C#)
RESULT WirelessNetworkConfigurationGet (
	out WIRELESS_NETWORK_CONFIGURATION	config
);
Parameters
config [out]
Wireless network configuration	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get wireless network configuration.	
RESULT_INVALID_PARAMETER	
[config] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get wireless network configuration.	
Remarks
This function can be used after opening detector connection. This function brings the configuration related to the wireless network information. The information is not stored in the detector, but recorded in the SDK memory. Therefore, call the ConfigurationRead function first and then call the WirelessNetworkConfigurationGet function to get the setting value in the real detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::WIRELESS_NETWORK_CONFIGURATION WirelessNetworkConfiguration;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->WirelessNetworkConfigurationGet(&WirelessNetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get wireless network configuration.
		}
		else
		{
			// Failed to get wireless network configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.WIRELESS_NETWORK_CONFIGURATION WirelessNetworkConfiguration;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.WirelessNetworkConfigurationGet(out WirelessNetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get wireless network configuration.
		}
		else
		{
			// Failed to get wireless network configuration.
		}
	}

8.1.6 WirelessNetworkConfigurationSet
Sets wireless network configuration	
Syntax (C++)
RESULT WirelessNetworkConfigurationSet (
	_In_	WIRELESS_NETWORK_CONFIGURATION*	config
);
Syntax (C#)
RESULT WirelessNetworkConfigurationSet (
	WIRELESS_NETWORK_CONFIGURATION*	config
);
Parameters
config [in]
Wireless network configuration	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set wireless network configuration.	
RESULT_INVALID_PARAMETER	
The invalid item exists among the [config] items.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set wireless network configuration.	
Remarks
This function can be used after opening detector connection. This function set configuration related to the wireless network information. The information is not configured in the detector, but recorded in the SDK memory. Therefore, call the ConfigurationSave function to send and save the information in the SDK memory to the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::WIRELESS_NETWORK_CONFIGURATION WirelessNetworkConfiguration;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->WirelessNetworkConfigurationSet(&WirelessNetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set wireless network configuration.
		}
		else
		{
			// Failed to set wireless network configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.WIRELESS_NETWORK_CONFIGURATION WirelessNetworkConfiguration;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.WirelessNetworkConfigurationSet(WirelessNetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set wireless network configuration.
		}
		else
		{
			// Failed to set wireless network configuration.
		}
	}

8.1.7 WirelessAPConfigurationGet
Description
Gets wireless AP configuration	
Syntax (C++)
RESULT WirelessAPConfigurationGet (
	_Out_	WIRELESS_AP_CONFIGURATION*	config
);
Syntax (C#)
RESULT WirelessAPConfigurationGet (
	out	WIRELESS_AP_CONFIGURATION	config
);
Parameters
config [out]
Wireless AP configuration	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get wireless AP configuration.	
RESULT_INVALID_PARAMETER	
[config] is NULL.	
RESULT_DETECTOR_NO_INFORMATION	
There is no detector information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get wireless AP configuration.	
Remarks
This function can be used after opening detector connection. This function brings the configuration related to the wireless AP information. The information is not stored in the detector, but recorded in the SDK memory. Therefore, call the ConfigurationRead function first and then call WirelessAPConfigurationGet function to get the setting value in the real detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::WIRELESS_AP_CONFIGURATION WirelessAPConfiguration;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->WirelessAPConfigurationGet(&WirelessAPConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get wireless AP configuration.
		}
		else
		{
			// Failed to get wireless AP configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.WIRELESS_AP_CONFIGURATION WirelessAPConfiguration;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.WirelessAPConfigurationGet(out WirelessAPConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get wireless AP configuration.
		}
		else
		{
			// Failed to get wireless AP configuration.
		}
	}

8.1.8 WirelessAPConfigurationSet
Sets wireless AP configuration	
Syntax (C++)
RESULT WirelessAPConfigurationSet (
	_In_	WIRELESS_AP_CONFIGURATION*	config
);
Syntax (C#)
RESULT WirelessAPConfigurationSet (
	WIRELESS_AP_CONFIGURATION	config
);
Parameters
config [in]
Wireless AP configuration.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set trigger debounce time.	
RESULT_INVALID_PARAMETER	
The invalid item exists among the [config] items.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set trigger debounce time.	
Remarks
This function can be used after opening detector connection. This function set configuration related to the wireless AP function. The information is not configured in the detector, but recorded in the SDK memory. Therefore, call the ConfigurationSave function to send and save the information in the SDK memory to the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::WIRELESS_AP_CONFIGURATION WirelessAPConfiguration;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->WirelessAPConfigurationSet(&WirelessAPConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set wireless AP configuration.
		}
		else
		{
			// Failed to set wireless AP configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.WIRELESS_AP_CONFIGURATION WirelessAPConfiguration;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.WirelessAPConfigurationSet(WirelessAPConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set wireless AP configuration.
		}
		else
		{
			// Failed to set wireless AP configuration.
		}
	}

8.1.9 ConfigurationRead
Calls the configuration value stored in the real detector to the SDK memory	
Syntax
RESULT ConfigurationRead (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to read configuration.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to read configuration.	
Remarks
This function can be used after opening detector connection. This function gets the information of Wireless AP Configuration, Network Configuration, and Wireless Network Configuration in the real detector to the SDK memory. The acquired information in the SDK memory can be brought by NetworkConfigurationGet, WirelessAPConfigurationGet, TriggerConfigurationGet functions. Note that the information of Wireless AP Configuration, Network Configuration, and Trigger Configuration which have not been stored by the CalibrationSave function can be renewed to the information stored in the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->ConfigurationRead();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to read configuration.
		}
		else
		{
			// Failed to read configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.ConfigurationRead();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to read configuration.
		}
		else
		{
			// Failed to read configuration.
		}
	}

8.1.10 ConfigurationSave
Saves the configuration value in the SDK memory to the detector	
Syntax
RESULT ConfigurationSave (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to save configuration.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to save configuration.	
Remarks
This function can be used after opening detector connection. Send and save the configured information of Network Configuration, Wireless AP Configuration, and Trigger Configuration in the SDK memory to the detector. The FXRD-1417W model reboots up after applying the ConfigurationSave function successfully.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->ConfigurationSave();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to save configuration.
		}
		else
		{
			// Failed to save configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.ConfigurationSave();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to save configuration.
		}
		else
		{
			// Failed to save configuration.
		}
	}

8.1.11 SleepModeEnable
Sets the sleep mode	
Syntax (C++)
RESULT SleepModeEnable (
	_In_	bool	enable
);
Syntax (C#)
RESULT SleepModeEnable (
	bool	enable
);
Parameters
enable [in]
Sleep mode enable/disable	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set sleep mode enable/disable.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set sleep mode enable/disable.	
Remarks
This function can be used after opening detector connection. If the sleep mode is turned on from VIVIX Setup, apply this function to turn off the sleep mode temporarily. If the sleep mode is turned off from VIVIX Setup, it cannot be enabled although applying this function. Since the sleep mode is enabled when the detector reboots up, turn off the mode if necessary.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->SleepModeEnable(true);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to enable sleep mode.
		}
		else
		{
			// Failed to enable sleep mode.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.SleepModeEnable(true);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to enable sleep mode.
		}
		else
		{
			// Failed to enable sleep mode.
		}
	}

8.1.12 WakeUp
Wakes up the detector	
Syntax
RESULT WakeUp (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to wakeup detector.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_NOT_SUPPORTED_MODEL	
Detector is not supported model.	
RESULT_ERROR	
Failed to wakeup detector or it is not in the sleep state.	
Remarks
This function can be used after opening detector connection. This function cannot be applied if the detector is not in the sleep mode. 
The detector wakes up completely at the time of calling the NotifyWakeUp function which was registered by the user.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->WakeUp();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to wake up detector.
		}
		else
		{
			// Failed to wake up detector.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.WakeUp();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to wake up detector.
		}
		else
		{
			// Failed to wake up detector.
		}
	}

8.1.13 GoSleep
Forces the detector to sleep	
Syntax
RESULT GoSleep (void);
Returns	
Description	
RESULT_SUCCESS	
Detector successfully enters sleep mode.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_NOT_SUPPORTED_MODEL	
Not a supported detector model.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is already in sleep state.	
RESULT_ERROR	
Detector failed to enter sleep mode or it is not in the sleep state.	
Remarks
This function can be used after opening detector connection. This function cannot be applied if the detector is in the sleep mode.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->GoSleep();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to go sleep the detector.
		}
		else
		{
			// Failed to go sleep the detector.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.GoSleep();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to go sleep the detector.
		}
		else
		{
			// Failed to go sleep the detector.
		}
	}

8.1.14 RemainSleepModeEntryTime
Checks the remaining time until entering the sleep mode	
Syntax (C++)
RESULT RemainSleepModeEntryTime(
	_Out_	int*	remainTime
);
Syntax (C#)
RESULT RemainSleepModeEntryTime(
	out	int	remainTime
);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the sleep mode entry remain time.	
RESULT_DETECTOR_NOT_CONNECTED	
The detector is not connected.	
RESULT_NOT_SUPPORTED_MODEL	
The connecting detector model is not a supported one.	
RESULT_ERROR	
Failed to get the sleep mode entry remain time.	
Remarks
This function is used for getting standby time which remains until the detector enters the sleep mode. This remaining time is initialized at the time of shooting. In case the detector is already in the sleep mode, the value is invalid.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				int nRemainTime = 0;
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->RemainSleepModeEntryTime(&nRemainTime);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get sleep mode entry remain time.
		}
		else
		{
			// Failed to get sleep mode entry remain time.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				int nRemainTime = 0;
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.RemainSleepModeEntryTime(out nRemainTime);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get sleep mode entry remain time.
		}
		else
		{
			// Failed to get sleep mode entry remain time.
		}
	}

8.1.15 StoredImageListGet
Brings the list of images stored in the detector	
Syntax (C++)
RESULT StoredImageListGet (
	_Out_	STORED_IMAGE_LIST*	info
);
Syntax (C#)
RESULT StoredImageListGet (
	out	STORED_IMAGE_LIST	info
);
Parameters
info [out]
Stored image list.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get stored image list.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
REUSLT_NOT_SUPPORTED_VERSION	
Not supported FW version.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set trigger debounce time.	
Remarks
This function can be used after opening detector connection. This function can be used from FW V1.08 or the higher version of FXRD-1417W detector model only.
The image is taken when the detector is not connected to the SDK.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{	
		Vieworks::vivix::STORED_IMAGE_LIST StoredImageList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->StoredImageListGet(&StoredImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get stored image list.
		}
		else
		{
			// Failed to get stored image list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{	
		Vieworks.vivix.net.STORED_IMAGE_LIST StoredImageList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.StoredImageListGet(out StoredImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get stored image list.
		}
		else
		{
			// Failed to get stored image list.
		}
	}

8.1.16 StoredImageGet
Gets stored image	
Syntax (C++)
RESULT StoredImageGet (
	_In_	STORED_IMAGE_INFO*	info
);
Syntax (C#)
RESULT StoredImageGet (
	STORED_IMAGE_INFO	info
);
Parameters
info [in]
Stored image information.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set trigger debounce time.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
REUSLT_NOT_SUPPORTED_VERSION	
Not supported FW version.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set trigger debounce time.	
Remarks
This function can be used after opening detector connection. This function can be used from FW V1.08 or the higher version of FXRD-1417W detector model only.
The image is taken when the detector is not connected to the SDK.
The images are sent through the FrameGrabberImageIn Callback function after applying the order successfully. The images are removed from the internal memory of the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::STORED_IMAGE_LIST StoredImageList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->StoredImageListGet(&StoredImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get stored image list.

			if(StoredImageList.nCount > 0)
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				pFXRDW->SetNotifyFrameGrabberImageIn(NotifyFrameGrabberImageIn);

				nResult = pFXRDW->StoredImageGet(&StoredImageList.pInfoList[0]);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to get stored image.
				}
				else
				{
					// Failed to get stored image.
				}
			}
		}
		else
		{
			// Failed to get stored image list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.STORED_IMAGE_LIST StoredImageList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.StoredImageListGet(out StoredImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get stored image list.

			if(StoredImageList.nCount > 0)
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				pFXRDW.SetDelegateFrameGrabberImageIn(OnDelegateFrameGrabberImageIn);

				nResult = pFXRDW.StoredImageGet(StoredImageList.aryInfoList[0]);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to get stored image.
				}
				else
				{
					// Failed to get stored image.
				}
			}
		}
		else
		{
			// Failed to get stored image list.
		}
	}

8.1.17 BackupImageListGet
Gets backup image list	
Syntax (C++)
RESULT BackupImageListGet (
	_Out_	STORED_IMAGE_LIST*	info
);
Syntax (C#)
RESULT BackupImageListGet (
	out	STORED_IMAGE_LIST	info
);
Parameters
info [out]
Backup image list.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get backup image list.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set trigger debounce time.	
Remarks
This function can be used after opening detector connection. This function can be used from FW V1.08 or higher.
The backup image is the image that was captured when the detector was connected to the SDK and the SDK could not be delivered to the SDK properly.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{	
		Vieworks::vivix::STORED_IMAGE_LIST BackupImageList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->BackupImageListGet(&BackupImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get backup image list.
		}
		else
		{
			// Failed to get backup image list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{	
		Vieworks.vivix.net.STORED_IMAGE_LIST BackupImageList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.BackupImageListGet(out BackupImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get backup image list.
		}
		else
		{
			// Failed to get backup image list.
		}
	}

8.1.18 BackupImageGet
Gets backup image	
Syntax (C++)
RESULT BackupImageGet (
	_In_	STORED_IMAGE_INFO*	info
);
Syntax (C#)
RESULT BackupImageGet (
	STORED_IMAGE_INFO*	info
);
Parameters
info [in]
Backup image information	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get backup image.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get backup image.	
Remarks
This function can be used after opening detector connection. This function can be used from FW V1.08 or the higher version only.
The backup image is the image that was captured when the detector was connected to the SDK and the SDK could not be delivered to the SDK properly.
The images are sent through the FrameGrabberImageIn Callback function after applying the order successfully. The images are removed from the internal memory of the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::STORED_IMAGE_LIST BackupImageList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->BackupImageListGet(&BackupImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get backup image list.

			if(BackupImageList.nCount > 0)
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				pFXRDW->SetNotifyFrameGrabberImageIn(NotifyFrameGrabberImageIn);

				nResult = pFXRDW->BackupImageGet(&BackupImageList.pInfoList[0]);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to get backup image.
				}
				else
				{
					// Failed to get backup image.
				}
			}
		}
		else
		{
			// Failed to get backup image list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.STORED_IMAGE_LIST BackupImageList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.BackupImageListGet(out BackupImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get backup image list.

			if(BackupImageList.nCount > 0)
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				pFXRDW.SetDelegateFrameGrabberImageIn(OnDelegateFrameGrabberImageIn);

				nResult = pFXRDW.BackupImageGet(BackupImageList.aryInfoList[0]);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to get backup image.
				}
				else
				{
					// Failed to get backup image.
				}
			}
		}
		else
		{
			// Failed to get backup image list.
		}
	}

8.1.19 RemoveImage
RESULT RemoveImage(STORED_IMAGE_INFO* info)	
Syntax (C++)
RESULT RemoveImage (
	_In_	STORED_IMAGE_INFO*	info
);
Syntax (C#)
RESULT RemoveImage (
	STORED_IMAGE_INFO	info
);
Parameters
info [in]
Image information.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to remove image in detector.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to remove image in detector.	
Remarks
This function can be used after opening detector connection. It deletes the backed-up or stored image in the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::STORED_IMAGE_LIST BackupImageList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;
				nResult = pFXRDW->BackupImageListGet(&BackupImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get backup image list.

			if(BackupImageList.nCount > 0)
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->RemoveImage(&BackupImageList.pInfoList[0]);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to remove backup image.
				}
				else
				{
					// Failed to remove backup image.
				}
			}
		}
		else
		{
			// Failed to get backup image list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.STORED_IMAGE_LIST BackupImageList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				nResult = pFXRDW.BackupImageListGet(out BackupImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get backup image list.

			if(BackupImageList.nCount > 0)
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				nResult = pFXRDW.RemoveImage(BackupImageList.aryInfoList[0]);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to remove backup image.
				}
				else
				{
					// Failed to remove backup image.
				}
			}
		}
		else
		{
			// Failed to get backup image list.
		}
	}

8.1.20 LogDataListGet
Gets a list of log data	
Syntax (C++)
RESULT LogDataListGet (
	_Out_	LOG_LIST*	logList
);
Syntax (C#)
RESULT LogDataListGet (
	out	LOG_LIST		logList
);
Parameters
logList [out]
Log data list.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get log data list.	
RESULT_INVALID_PARAMETER	
[logList] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get log data list.	
Remarks
This function can be used after opening detector connection. Input Timestamp to startDate and endDate of LOG_LIST as a parameter to search the log in the certain period. Input 0 to startDate and endDate and send it as a parameter if you need the log data list of the whole period.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::LOG_LIST LogList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				CTime t1(2015, 3, 10, 0, 0, 0);
				CTime t2(2015, 3, 12, 0, 0, 0);

				// Boundary set
				LogList.startDate = t1.GetTime();
				LogList.endDate = t2.GetTime();

				nResult = pFXRDW->LogDataListGet(&LogList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get log list.
		}
		else
		{
			// Failed to get log list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.LOG_LIST LogList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				CTime t1(2015, 3, 10, 0, 0, 0);
				CTime t2(2015, 3, 12, 0, 0, 0);

				// Boundary set
				LogList.startDate = t1.GetTime();
				LogList.endDate = t2.GetTime();

				nResult = pFXRDW.LogDataListGet(out LogList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get log list.
		}
		else
		{
			// Failed to get log list.
		}
	}

8.1.21 LogDataGet
Gets log	
Syntax (C++)
RESULT LogDataGet (
	_In_	LOG_DATA*	logData
);
Syntax (C#)
RESULT LogDataGet (
	LOG_DATA*	logData
);
Parameters
logData [in]
Log data	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get log data.	
RESULT_INVALID_PARAMETER	
[logData] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get log data.	
Remarks
This function can be used after opening detector connection. Assign the log data to be brought by using LOG_DATA in the LOG_LIST structure, which was acquired by LogDataListGet. The log data is saved to “Detector\[Serial number]” at the bottom of the storage route of SDK log.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::LOG_LIST LogList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				CTime t1(2015, 3, 10, 0, 0, 0);
				CTime t2(2015, 3, 12, 0, 0, 0);

				// Boundary set
				LogList.startDate = t1.GetTime();
				LogList.endDate = t2.GetTime();

				nResult = pFXRDW->LogDataListGet(&LogList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get log list.

			if(LogList.LogCount > 0)
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->LogDataGet(&LogList.LogList[0]);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to get log in log path.
				}
				else
				{
					// Failed to get log.
				}
			}
		}
		else
		{
			// Failed to get log list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.LOG_LIST LogList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				CTime t1(2015, 3, 10, 0, 0, 0);
				CTime t2(2015, 3, 12, 0, 0, 0);

				// Boundary set
				LogList.startDate = t1.GetTime();
				LogList.endDate = t2.GetTime();

				nResult = pFXRDW.LogDataListGet(out LogList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get log list.

			if(LogList.LogCount > 0)
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				nResult = pFXRDW.LogDataGet(LogList.LogList[0]);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to get log in log path.
				}
				else
				{
					// Failed to get log.
				}
			}
		}
		else
		{
			// Failed to get log list.
		}
	}

8.1.22 LogExportToday
Downloads the today’s log only	
Syntax (C++)
RESULT LogExportToday (
	_In_	const FILE_PATH	exportPath
);
Syntax (C#)
RESULT LogExportToday (
	string		exportPath
);
Parameters
exportPath [in]
Folder path.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to export log today.	
RESULT_INVALID_PARAMETER	
[exportPath] is not valid or not folder path.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_IO_INSUFFICIENT_PERMISSION	
[exportPath] does not have write permission.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to export log today.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->LogExportToday(_T("D:\\LogFolder"));
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to export today log.
		}
		else
		{
			// Failed to export today log.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				nResult = pFXRDW.LogExportToday("D:\\LogFolder");
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to export today log.
		}
		else
		{
			// Failed to export today log.
		}
	}

8.1.23 LogExportAll
Saves all logs including shock report in the specified path	
Syntax (C++)
RESULT LogExportAll (
	_In_	bool		bIncludeShockReport,
	_In_	const FILE_PATH	exportPath
);
Syntax (C#)
RESULT LogExportAll (
	bool		bIncludeShockReport,
	string		exportPath,
	DelegateLogDownloadState state,
	DelegateLogDownloadResult result
);
Parameters
bIncludeShockReport [in]
Whether the shock sensor log is included or not.
exportPath [in]
Folder path.
state [in]
Delegate Log Download State.
result [in]
Delegate Log Download Result.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to export log all.	
RESULT_INVALID_PARAMETER	
[exportPath] is not valid or not folder path.	
RESULT_DETECTOR_IS_IN_BUSY	
Cannot execute the function since another performance is being processed.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to export log all.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->LogExportAll(true, _T("D:\\LogFolder"));
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to export all log.
		}
		else
		{
			// Failed to export all log.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				nResult = pFXRDW.LogExportAll(true, "D:\\LogFolder", null, null);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to export all log.
		}
		else
		{
			// Failed to export all log.
		}
	}

8.1.24 ShockReportExportAll
Gets shock report all	
Syntax (C++)
RESULT ShockReportExportAll (
	_In_	const FILE_PATH	exportPath
);
Syntax (C#)
RESULT ShockReportExportAll (
	string		exportPath
	DelegateShockReportDownloadState state,
	DelegateShockReportDownloadResult result
);
Parameters
exportPath [in]
Folder path.
state [in]
Delegate Shock Report Download State.
result [in]
Delegate Shock Report Download Result.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to export shock report.	
RESULT_INVALID_PARAMETER	
[exportPath] is not valid or not folder path.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to export shock report.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->ShockReportExportAll(_T("D:\\LogFolder"));
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to export shock report.
		}
		else
		{
			// Failed to export shock report.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				nResult = pFXRDW.ShockReportExportAll("D:\\LogFolder", null, null);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to export shock report.
		}
		else
		{
			// Failed to export shock report.
		}
	}

8.1.25 CurrentPatientInfoSet
Sets the current patient information	
Syntax (C++)
RESULT RESULT CurrentPatientInfoSet (
	_In_	PATIENT_INFO*	info
);
Syntax (C#)
RESULT RESULT CurrentPatientInfoSet (
	PATIENT_INFO*	info
);
Parameters
info [in]
Patient information.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set current patient information.	
RESULT_INVALID_PARAMETER	
[info] is NULL or invalid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set current patient information.	
Remarks
This function can be used after opening detector connection.
The limitations of each member of Info are shown in the table below.	
Parameters	
Limits	
patientName	
Must be entered. (1 to 65 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
patientId	
Must be entered. (1 to 65 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
accNo	
17 characters or less.
Unavailable characters $ % & [ ] { } | ; : < > =	
studyDate	
Must be entered. (1 to 9 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
studyTime	
Must be entered. (1 to 7 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	

8.1.26 PatientInfoListSet
Sets a list of patient information	
Syntax (C++)
RESULT PatientInfoListSet (
	_In_	PATIENT_INFO_LIST*	info,
	_In_	PATIENT_LIST_SET_TYPE	type
);
Syntax (C#)
RESULT PatientInfoListSet (
	PATIENT_INFO_LIST*	info,
	PATIENT_LIST_SET_TYPE	type
);
Parameters
info [in]
Patient information list
type [in]
Patient list set type.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set patient information list.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set patient information list.	
Remarks
This function can be used after opening detector connection.
Supported models: FXRD-1417W / FXRD-1012N / VXTD-2532E
The limitations of each member of ‘Info  patientStepInfo’ are shown in the table below.	
Parameters	
Limits	
name	
Must be entered. (1 to 65 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
birth	
9 characters or less.
Unavailable characters $ % & [ ] { } | ; : < > =	
id	
Must be entered. (1 to 65 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
accNo	
17 characters or less.
Unavailable characters $ % & [ ] { } | ; : < > =	
studyDate	
Must be entered. (1 to 9 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
studyTime	
Must be entered. (1 to 7 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
scheduledDateTime	
Must be entered. (1 to 15 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	

8.1.27 BodyPartInfoListSet
Sets a list of body part information	
Syntax (C++)
RESULT BodyPartInfoListSet (
	_In_	BODY_PART_LIST*		info
);
Syntax (C#)
RESULT BodyPartInfoListSet (
	BODY_PART_LIST*		info
);
Parameters
info [in]
Body part information list.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set body part information list.	
RESULT_INVALID_PARAMETER	
[info] is NULL or invalid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set body part information list.	
Remarks
This function can be used after opening detector connection.
The limitations of each member of Info are shown in the table below.	
Parameters	
Limits	
nBodypartCount	
0 (zero) or more	
viewerserial	
Must be entered. (1 to 9 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
aryBodypartInfo[ ].meaning	
Must be entered. (1 to 65 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
aryBodypartInfo[ ].aryProjectionInfo[ ].meaning	
Must be entered. (1 to 65 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	

8.1.28 SelfDiagnosis
Commands the detector to process self-diagnosis	
Syntax (C++)
RESULT SelfDiagnosis (
	_In_	bool	bWithSCU
);
Syntax (C#)
RESULT SelfDiagnosis (
	bool	bWithSCU
);
Parameters
bWithSCU [in]
Check whether the self-diagnosis related to SCU is processed or not when processing the detector self-diagnosis.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set trigger debounce time.	
RESULT_DETECTOR_IS_IN_BUSY	
Cannot execute the self-diagnosis since another performance is being processed.	
RESULT_NOT_SUPPORTED_VERSION	
Not supported version.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set trigger debounce time.	
Remarks
This function can be used after opening detector connection. The self-diagnosis is supported from the detector FW V1.10 or the higher version. Executes all diagnosable items in the detector FW and sends the result. The self-diagnosis items can be different depending on the firmware version of detector. The callback functions related to the self-diagnosis are NotifySelfDiagnosisTimeout, NotifySelfDiagnosisItemResult, and NotifySelfDiagnosisDone.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->SelfDiagnosis(true);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to start self diagnosis.
		}
		else
		{
			// Failed to start self diagnosis.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW;

				nResult = pFXRDW.SelfDiagnosis(true);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to start self diagnosis.
		}
		else
		{
			// Failed to start self diagnosis.
		}
	}

8.1.29 DiagnosableItemsGet
Gets a list of diagnosable item	
Syntax (C++)
RESULT DiagnosableItemsGet (
	_In_	bool				bIsSCU,
	_Out_	DIAGNOSABLE_ITEM_INFO_LIST*	list
);
Syntax (C#)
RESULT DiagnosableItemsGet (
	_In_	bool				bIsSCU,
	ref	DIAGNOSABLE_ITEM_INFO_LIST	list
);
Parameters
bIsSCU [in]
Include SCU related function diagnosis.
list [out]
Diagnosable item information list.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get diagnosable item list.	
RESULT_INVALID_PARAMETER	
Detector ID is out of range or [type] value is invalid or out of range.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get diagnosable item list.	
Remarks
This function can be used after opening detector connection.
The self-diagnosis is supported from the detector FW V1.10 or the higher version. It receives the list of diagnosable items from the detector firmware. Execute the self-diagnosis to all diagnosable items or partial items by using the DiagnoseItem function. The self-diagnosis items can be different depending on the firmware version of detector. The callback functions related to the self-diagnosis are NotifySelfDiagnosisTimeout, NotifySelfDiagnosisItemResult, and NotifySelfDiagnosisDone.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::DIAGNOSABLE_ITEM_INFO_LIST DiagnosableItemInfoList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->DiagnosableItemsGet(true, &DiagnosableItemInfoList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.
		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;


	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.DIAGNOSABLE_ITEM_INFO_LIST DiagnosableItemInfoList = new Vieworks.vivix.net.DIAGNOSABLE_ITEM_INFO_LIST();
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDW;

				nResult = pFXRDW.DiagnosableItemsGet(true, ref DiagnosableItemInfoList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.
		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}

8.1.30 DiagnoseItem
Diagnoses item	
Syntax (C++)
RESULT DiagnoseItem (
	_In_	int	category,
	_In_	int	item
);
Syntax (C#)
RESULT DiagnoseItem (
	_In_	int	category,
	_In_	int	item
);
Parameters
category [in]
It is the category number of the item to be self-diagnosed.
item [in]
It is the item number of the item to be self-diagnosed.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to start diagnosis.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to start diagnosis.	
Remarks
This function can be used after opening detector connection.
The self-diagnosis is supported from the detector FW V1.10 or the higher version.
The diagnosable items can be sent by using the DiagnosableItemsGet function.
Execute the self-diagnosis to all diagnosable items or partial items by using the DiagnoseItem function
The callback functions related to the DiagnoseItem function are NotifySelfDiagnosisTimeout and NotifySelfDiagnosisItemResult.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::DIAGNOSABLE_ITEM_INFO_LIST DiagnosableItemInfoList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->DiagnosableItemsGet(true, &DiagnosableItemInfoList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.

			Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
			pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

			if(DiagnosableItemInfoList.numOfitems > 0)
			{
				nResult = pFXRDN->DiagnoseItem(DiagnosableItemInfoList.items[0].categoryId, DiagnosableItemInfoList.items[0].itemId);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to diagnose item.
				}
				else
				{
					// Failed to diagnose item.
				}
			}
		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;


	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.DIAGNOSABLE_ITEM_INFO_LIST DiagnosableItemInfoList = new Vieworks.vivix.net.DIAGNOSABLE_ITEM_INFO_LIST();
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDW;

				nResult = pFXRDW.DiagnosableItemsGet(true, ref DiagnosableItemInfoList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.

			Vieworks.vivix.net.detector.FXRDW pFXRDW = NULL;
			pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW;

			if(DiagnosableItemInfoList.numOfitems > 0)
			{
				nResult = pFXRDW.DiagnoseItem(DiagnosableItemInfoList.items[0].categoryId, DiagnosableItemInfoList.items[0].itemId);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to diagnose item.
				}
				else
				{
					// Failed to diagnose item.
				}
			}
		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}

8.1.31 AbortSelfDiagnosis
Aborts self-diagnosis	
Syntax (C++)
RESULT AbortSelfDiagnosis (void);
Syntax (C#)
RESULT AbortSelfDiagnosis (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to abort self diagnosis.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_NOT_SUPPORTED_VERSION	
Not supported version.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to abort self diagnosis.	
Remarks
This function can be used after opening detector connection.
The self-diagnosis is supported in the V1.10 or the higher version of F/W.
The callback function related to this function is NotifySelfDiagnosisDone.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->AbortSelfDiagnosis();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to abort self diagnosis.
		}
		else
		{
			// Failed to abort self diagnosis.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW;

				nResult = pFXRDW.AbortSelfDiagnosis();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to abort self diagnosis.
		}
		else
		{
			// Failed to abort self diagnosis.
		}
	}

8.1.32 ConnectionTypeGet
Gets the interface communicated wth the connecting detector.	
Syntax (C++)
RESULT ConnectionTypeGet (
	_Out_	CONNECTION_INTERFACE*	interfaceType
);
Syntax (C#)
RESULT IsSCUConnected (
	Out	CONNECTION_INTERFACE	interfaceType
);
Parameters
interfaceType [out]
A variable for indicating communication interface type between a detector and SDK.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get connection type.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
Remarks
Acquires information about the communication way between the detector and SDK. This information is the same as that of being transferred through KeepAlive notification / delegate.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		CONNECTION_INTERFACE connectionType;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->ConnectionTypeGet(&connectionType);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get connection interface information.
		}
		else
		{
			// Failed to get connection interface information.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		CONNECTION_INTERFACE connectionType;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				nResult = pFXRDW.ConnectionTypeGet(out connectionType);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get connection interface information.
		}
		else
		{
			// Failed to get connection interface information.
		}
	}

8.1.33 WirelessSignalGet
Gets information about the signal strength of wireless communication.	
Syntax (C++)
RESULT WirelessSignalGet (
	_Out_	WIRELESS_SIGNAL_QUALITY*	wirelessQuality,
	_Out_	unsigned int*			linkQuality
);
Syntax (C#)
RESULT WirelessSignalGet (
	Out	WIRELESS_SIGNAL_QUALITY	wirelessQuality,
	Out	unsigned int			linkQuality
);
Parameters
wirelessQuality [out]
Signal strength level of wireless communication

linkQuality [out]
Signal strength value of wireless communication	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get wireless signal information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
Remarks
Acquires information about the communication way between the detector and SDK. This information is the same as that of being transferred through KeepAlive notification / delegate.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		WIRELESS_SIGNAL_QUALITY wirelessQuality;
		unsigned int linkQuality;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->WirelessSignalGet(&wirelessQuality, &linkQuality);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get wireless signal information.
		}
		else
		{
			// Failed to get wireless signal information.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		WIRELESS_SIGNAL_QUALITY wirelessQuality;
		unsigned int linkQuality;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				nResult = pFXRDW.WirelessSignalGet(out wirelessQuality, out linkQuality);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get wireless signal information.
		}
		else
		{
			// Failed to get wireless signal information.
		}
	}

8.1.34 BatteryStateGet
Gets information of the battery installed to the detector.	
Syntax (C++)
RESULT BatteryStateGet (
	_Out_	BATTERY_REMAIN_LEVEL*	batteryRemain,
	_Out_	double*			batteryGauge,
	_Out_	double*			voltage
);
Syntax (C#)
RESULT BatteryStateGet (
	Out	BATTERY_REMAIN_LEVEL	batteryRemain,
	Out	double			batteryGauge,
	Out	double			voltage
);
Parameters
batteryRemain [out]
Battery level

batteryGauge [out]
Battery level (Unit: %)

voltage [out]
Battery voltage	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get battery state information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
Remarks
Acquires information about the communication way between the detector and SDK. This information is the same as that of being transferred through KeepAlive notification / delegate.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		BATTERY_REMAIN_LEVEL batteryRemain;
		double batteryGauge;
		double voltage;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->BatteryStateGet(&batteryRemain, &batteryGauge, &voltage);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get battery state information.
		}
		else
		{
			// Failed to get battery state information.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		BATTERY_REMAIN_LEVEL batteryRemain;
		double batteryGauge;
		double voltage;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				nResult = pFXRDW.BatteryStateGet(out batteryRemain, out batteryGauge, out voltage);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get battery state information.
		}
		else
		{
			// Failed to get battery state information.
		}
	}

8.1.35 OffsetDownload
Downloads the offset calibration data	
Syntax (C++)
RESULT OffsetDownload (
	_In_	const FILE_PATH	filePath
);
Syntax (C#)
RESULT OffsetDownload (
	string	filePath
);
Parameters
filePath [in]
File path.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to download the offset calibration data file.	
RESULT_INVALID_PARAMETER	
[filePath] is not valid or not file path.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to download the offset calibration data file.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->OffsetDownload(_T("D:\\offset.dat"));
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to download offset calibration data.
		}
		else
		{
			// Failed to download offset calibration data.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW;

				nResult = pFXRDW.OffsetDownload("D:\\offset.dat");
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to download offset calibration data.
		}
		else
		{
			// Failed to download offset calibration data.
		}
	}

8.1.36 IsSCUConnected
Checks if communication between a detector and SCU are successfully linked.	
Syntax (C++)
RESULT IsSCUConnected (
	_Out_	bool	bConnected
);
Syntax (C#)
RESULT IsSCUConnected (
	Out	bool	bConnected
);
Parameters
bConnected [out]
A variable for indicating if communication between a detector and SCU are linked normally.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get connection state with SCU.	
Remarks
Indicating whether communication between the detector and SCU is linked or not. The detector cannot receive signals from a generator if it is not connected with SCU.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		bool bSCUConnected = false;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->IsSCUConnected(&bSCUConnected);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get connection state.
		}
		else
		{
			// Failed to get connection state.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		bool bSCUConnected = false;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				nResult = pFXRDW.IsSCUConnected(out bSCUConnected);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get connection state.
		}
		else
		{
			// Failed to get connection state.
		}
	}

8.1.37 ImageTransmissionAbort
Aborts the current image transmission	
Syntax (C++)
RESULT ImageTransmissionAbort (void);
Syntax (C#)
RESULT ImageTransmissionAbort (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to abort image transmission.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_VERSION	
Not supported F/W version.	
RESULT_ERROR	
There is no image in transit, or failed to abort image transmission.	
Remarks
Since the image transmission timeout can be set up to 120 seconds, the feature to stop transmitting images is added.	
  • F/W V01.23 / V02.06 or later are available.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDW = NULL;
				pFXRDW = (Vieworks::vivix::detector::CFXRDW*)pDetector;

				nResult = pFXRDW->ImageTransmissionAbort();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to abort image transmission.
		}
		else
		{
			// Failed to abort image transmission.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		bool bSCUConnected = false;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 

				nResult = pFXRDW.ImageTransmissionAbort();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to abort image transmission.
		}
		else
		{
			// Failed to abort image transmission.
		}
	}

8.2 Callback Notification Setting Function


8.2.1 SetNotifyPowerWarning / SetDelegatePowerWarning
Sets NotifyPowerWarning notification	
Syntax (C++)
void SetNotifyPowerWarning (
	_In_	NotifyPowerWarning	pNotify
);
Syntax (C#)
void SetDelegatePowerWarning (
	DelegatePowerWarning	val
);
Parameters
pNotify [in]
NotifyPowerWarning
val [in]
DelegatePowerWarning	
Remarks
Refer to ‘detector::NotifyPowerWarning’.
Refer to ‘detector.DelegatePowerWarning’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)->SetNotifyPowerWarning(NotifyPowerWarning);
			}
			break;
		default:
			// Not supported model
			break;
		}
}

void NotifyPowerWarning(Vieworks::vivix::DETECTOR_ID id, VOLTAGE_STATUS status)
{
		switch(status)
		{
		case Vieworks::vivix::VOLTAGE_STATUS::VOLTAGE_WARNING:
			{
				// Voltage warning
			}
			break;

		case Vieworks::vivix::VOLTAGE_STATUS::VOLTAGE_POWER_OFF:
			{
				// Power off
			}
			break;

		case Vieworks::vivix::VOLTAGE_HIBERNATE:
			{
				// Hibernate
			}
			break;
		default:
			{
				// Invalid Voltage Status
			}
			break;
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegatePowerWarning(OnDelegatePowerWarning);
			}
			break;
		default:
			// Not supported model
			break;
		}
}

void OnDelegatePowerWarning(int id, VOLTAGE_STATUS status)
{
		switch(status)
		{
		case Vieworks.vivix.net.VOLTAGE_STATUS.VOLTAGE_WARNING:
			{
				// Voltage warning
			}
			break;

		case Vieworks.vivix.net.VOLTAGE_STATUS.VOLTAGE_POWER_OFF:
			{
				// Power off
			}
			break;

		case Vieworks.vivix.net.VOLTAGE_HIBERNATE:
			{
				// Hibernate
			}
			break;
		default:
			{
				// Invalid Voltage Status
			}
			break;
		}
}

8.2.2 SetNotifySleep / SetDelegateSleep
Sets NotifySleep / DelegateSleep notification	
Syntax (C++)
void SetNotifySleep (
	_In_	NotifySleep	pNotify
);
Syntax (C#)
void SetDelegateSleep (
	DelegateSleep	val
);
Parameters
pNotify [in]
NotifySleep
val [in]
DelegateSleep	
Remarks
Refer to ‘detector::NotifySleep’.
Refer to ‘detector.DelegateSleep’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)->SetNotifySleep(NotifySleep);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifySleep(Vieworks::vivix::DETECTOR_ID id)
{
		// Detector is in sleep state
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegateSleep(OnDelegateSleep);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateSleep(int id)
{
		// Detector enters sleep state
}

8.2.3 SetNotifyWakeUp / SetDelegateWakeUp
Sets NotifyWakeUp / DelegateWakeUp notification	
Syntax (C++)
void SetNotifyWakeUp (
	_In_	NotifyWakeUp	pNotify
);
Syntax (C#)
void SetDelegateWakeUp (
	DelegateWakeUp	val
);
Parameters
pNotify [in]
NotifyWakeUp
val [in]
DelegateWakeUp	
Remarks
Refer to ‘detector::NotifyWakeUp’.
Refer to ‘detector.DelegateWakeUp’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)->SetNotifyWakeUp(NotifyWakeUp);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyWakeUp(Vieworks::vivix::DETECTOR_ID id)
{
		// The detector converts from the Sleep status to the normal.
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegateWakeUp(OnDelegateWakeUp);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateWakeUp(int id)
{
		// The detector converts from the Sleep status to the normal.
}

8.2.4 SetNotifyKeepAlive / SetDelegateKeepAlive
Sets NotifyKeepAlive / DelegateKeepAlive notification	
Syntax (C++)
void SetNotifyKeepAlive (
	_In_	NotifyKeepAlive	pNotify
);
Syntax (C#)
void SetDelegateKeepAlive (
	DelegateKeepAlive	val
);
Parameters
pNotify [in]
NotifyKeepAlive
val [in]
DelegateKeepAlive	
Remarks
Refer to ‘detector::NotifyKeepAlive’.
Refer to ‘detector.DelegateKeepAlive’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)->SetNotifyKeepAlive(NotifyKeepAlive);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyKeepAlive(Vieworks::vivix::DETECTOR_ID id, double temperature, Vieworks::vivix::CONNECTION_INTERFACE interfaceType, Vieworks::vivix::WIRELESS_SIGNAL_QUALITY wirelessQuality, unsigned int linkQuality, Vieworks::vivix::BATTERY_REMAIN_LEVEL batteryRemain, unsigned int batteryGauge)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegateKeepAlive(OnDelegateKeepAlive);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateKeepAlive(int id, double temperature, Vieworks.vivix.net.CONNECTION_INTERFACE interfaceType, Vieworks.vivix.net.WIRELESS_SIGNAL_QUALITY wirelessQuality, uint linkQuality, Vieworks.vivix.net.BATTERY_REMAIN_LEVEL batteryRemain, uint batteryGauge)
{
}

8.2.5 SetNotifyLogDownloadState / SetDelegateLogDownloadState
Sets the notification of NotifyLogDownloadState / DelegateLogDownloadState	
Syntax (C++)
void SetNotifyLogDownloadState(
	_In_	NotifyLogDownloadState	pNotify
);
Syntax (C#)
void SetDelegateLogDownloadState(
	DelegateLogDownloadState	val
);
Parameters
pNotify [in]
NotifyLogDownloadState
val [in]
DelegateLogDownloadState	
Remarks
Refer to ‘detector::NotifyLogDownloadState’.
Refer to ‘detector.DelegateLogDownloadState’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)->SetNotifyLogDownloadState(NotifyLogDownloadState);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyLogDownloadState(Vieworks::vivix::DETECTOR_ID id, int currentStep, int totalStep, bool success)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegateLogDownloadState(OnDelegateLogDownloadState);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateLogDownloadState(int id, int currentStep, int totalStep, bool success)
{
}

8.2.6 SetNotifyLogDownloadResult / SetDelegateLogDownloadResult
Sets the notification of NotifyLogDownloadResult / DelegateLogDownloadResult	
Syntax (C++)
void SetNotifyLogDownloadResult(
	_In_	NotifyLogDownloadResult	pNotify
);
Syntax (C#)
void SetDelegateLogDownloadResult(
	DelegateLogDownloadResult	val
);
Parameters
pNotify [in]
NotifyLogDownloadResult
val [in]
DelegateLogDownloadResult	
Remarks
Refer to ‘detector::NotifyLogDownloadResult’.
Refer to ‘detector.DelegateLogDownloadResult’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)->SetNotifyLogDownloadResult(NotifyLogDownloadResult);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyLogDownloadResult(Vieworks::vivix::DETECTOR_ID id, bool success)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegateLogDownloadResult(OnDelegateLogDownloadResult);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateLogDownloadResult(int id, bool success)
{
}

8.2.7 SetNotifyReboot / SetDelegateReboot
Sets the notification of NotifyReboot / DelegateReboot	
Syntax (C++)
void SetNotifyReboot(
	_In_	NotifyReboot	pNotify
);
Syntax (C#)
void SetDelegateReboot(
	DelegateReboot	val
);
Parameters
pNotify [in]
NotifyReboot
val [in]
DelegateReboot	
Remarks
Refer to ‘detector::NotifyReboot’.
Refer to ‘detector.DelegateReboot’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)->SetNotifyReboot(NotifyReboot);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyReboot(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::REBOOT_STATUS rebootStatus)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegateReboot(OnDelegateReboot);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateReboot(int id, Vieworks.vivix.net.REBOOT_STATUS rebootStatus)
{
}

8.2.8 SetNotifySelfDiagnosisTimeout / SetDelegateSelfDiagnosisTimeout
Sets the notification of NotifySelfDiagnosisTimeout / DelegateSelfDiagnosisTimeout	
Syntax (C++)
void SetNotifySelfDiagnosisTiemout(
	_In_	NotifySelfDiagnosisTimeout		pNotify
);
Syntax (C#)
void SetDelegateSelfDiagnosisTiemout(
	DelegateSelfDiagnosisTimeout		val
);
Parameters
pNotify [in]
NotifySelfDiagnosisTimeout
val [in]
DelegateSelfDiagnosisTimeout	
Remarks
Refer to ‘detector::NotifySelfDiagnosisTimeout’.
Refer to ‘detector.DelegateSelfDiagnosisTimeout’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)->SetNotifySelfDiagnosisTimeout(NotifySelfDiagnosisTimeout);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifySelfDiagnosisTimeout(Vieworks::vivix::DETECTOR_ID id)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegateSelfDiagnosisTimeout
(OnDelegateSelfDiagnosisTimeout);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateSelfDiagnosisTimeout(int id)
{
}

8.2.9 SetNotifySelfDiagnosisItemResult / SetDelegateSelfDiagnosisItemResult
Sets the notification of NotifySelfDiagnosisItemResult / DelegateSelfDiagnosisItemResult	
Syntax (C++)
void SetNotifySelfDiagnosisResult (
	_In_	NotifySelfDiagnosisResult	pNotify
);
Syntax (C#)
void SetDelegateSelfDiagnosisResult (
	DelegateSelfDiagnosisResult	val
);
Parameters
pNotify [in]
NotifySelfDiagnosisItemResult
val [in]
DelegateSelfDiagnosisItemResult	
Remarks
Refer to ‘detector::NotifySelfDiagnosisItemResult’.
Refer to ‘detector.DelegateSelfDiagnosisItemResult’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)->SetNotifySelfDiagnosisResult(NotifySelfDiagnosisResult);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifySelfDiagnosisResult(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::SELF_DIAGNOSIS_RESULT* result)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegateSelfDiagnosisResult
(OnDelegateSelfDiagnosisResult);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateSelfDiagnosisResult(int id, Vieworks.vivix.net.SELF_DIAGNOSIS_RESULT result)
{
}

8.2.10 SetNotifySelfDiagnosisItemDone / SetDelegateSelfDiagnosisItemDone
Sets the notification of NotifySelfDiagnosisItemDone / DelegateSelfDiagnosisItemDone	
Syntax (C++)
void SetNotifySelfDiagnosisDone (
	_In_	NotifySelfDiagnosisDone	pNotify
);
Syntax (C#)
void SetDelegateSelfDiagnosisDone (
	DelegateSelfDiagnosisDone	val
);
Parameters
pNotify [in]
NotifySelfDiagnosisItemDone
val [in]
DelegateSelfDiagnosisItemDone	
Remarks
Refer to ‘detector::NotifySelfDiagnosisDone’.
Refer to ‘detector.DelegateSelfDiagnosisDone’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)->SetNotifySelfDiagnosisDone(NotifySelfDiagnosisDone);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifySelfDiagnosisDone(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::SELF_DIAGNOSIS_DONE_TYPE type, Vieworks::vivix::SELF_DIAGNOSIS_REPORT* report)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegateSelfDiagnosisDone(OnDelegateSelfDiagnosisDone);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateSelfDiagnosisDone(int id, Vieworks.vivix.net.SELF_DIAGNOSIS_DONE_TYPE type, Vieworks.vivix.net.SELF_DIAGNOSIS_REPORT report)
{
}

8.2.11 SetNotifyShockReportDownloadState / SetDelegateShockReportDownloadState
Sets the notification of NotifyShockReportDownloadState / DelegateShockReportDownloadState	
Syntax (C++)
void SetNotifyShockReportDownloadState(
	_In_	NotifyShockReportDownloadState	pNotify
);
Syntax (C#)
void SetDelegateShockReportDownloadState(
	DelegateShockReportDownloadState		val
);
Parameters
pNotify [in]
NotifyShockReportDownloadState
val [in]
DelegateShockReportDownloadState	
Remarks
Refer to ‘detector::NotifyShockReportDownloadState’.
Refer to ‘detector.DelegateShockReportDownloadState’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)->SetNotifyShockReportDownloadState(NotifyShockReportDownloadState);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyShockReportDownloadState(Vieworks::vivix::DETECTOR_ID id, int currentStep, int totalStep, bool success)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegateShockReportDownloadState
(OnDelegateShockReportDownloadState);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateShockReportDownloadState(int id, int currentStep, int totalStep, bool success)
{
}

8.2.12 SetNotifyShockReportDownloadResult / SetDelegateShockReportDownloadResult
Sets the notification of NotifyShockReportDownloadResult / DelegateShockReportDownloadResult	
Syntax (C++)
void SetNotifyShockReportDownloadResult(
	_In_	NotifyShockReportDownloadResult	pNotify
);
Syntax (C#)
void SetDelegateShockReportDownloadResult(
	DelegateShockReportDownloadResult	val
);
Parameters
pNotify [in]
NotifyShockReportDownloadResult
val [in]
DelegateShockReportDownloadResult	
Remarks
Refer to ‘detector::NotifyShockReportDownloadResult’.
Refer to ‘detector.DelegateShockReportDownloadResult’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)->SetNotifyShockReportDownloadResult(NotifyShockReportDownloadResult);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyShockReportDownloadResult(Vieworks::vivix::DETECTOR_ID id, bool success)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegateShockReportDownloadResult
(OnDelegateShockReportDownloadResult);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateShockReportDownloadResult(int id, bool success)
{
}

8.2.13 SetNotifyImageTransmissionDelayed / SetDelegateImageTransmissionDelayed
Sets the notification of SetNotifyImageTransmissionDelayed / ImageTransmissionDelayed	
Syntax (C++)
void SetNotifyImageTransmissionDelayed (
	_In_	NotifyImageTransmissionDelayed	pNotify
);
Syntax (C#)
void SetDelegateImageTransmissionDelayed (
	DelegatemageTransmissionDelayed	val
);
Parameters
pNotify [in]
NotifyImageTransmissionDelayed
val [in]
DelegatemageTransmissionDelayed	
Remarks
Refer to ‘detector::NotifyImageTransmissionDelayed'.
Refer to ‘detector.DelegatemageTransmissionDelayed'.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				((Vieworks::vivix::detector::FXRDW*)pDetector)-> SetNotifyImageTransmissionDelayed(NotifyImageTransmissionDelayed);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyImageTransmissionDelayed(Vieworks::vivix::DETECTOR_ID id)
{
		// Image Transmission Delayed
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_W:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDW = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDW; 
				pFXRDW.SetDelegateImageTransmissionDelayed
(OnDelegateImageTransmissionDelayed);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateImageTransmissionDelayed(int id)
{
		// Image Transmission Delayed
}

8.3 Callback Notification Function


8.3.1 detector::NotifyPowerWarning / detector.DelegatePowerWarning
Gives warning of wireless detector power	
Syntax (C++)
void detector::NotifyPowerWarning (
	_In_	DETECTOR_ID		id,
	_In_	VOLTAGE_STATUS		status
);
Syntax (C#)
void detector.DelegatePowerWarning (
	int			id,
	VOLTAGE_STATUS		status
);
Parameters
id [in]
Detector ID
status [in]
Detector voltage status	

8.3.2 detector::NotifySleep / detector.DelegateSleep
Notifies when wireless detector enters to sleep mode	
Syntax (C++)
void WirelessDetectorSleep (
	_In_	DETECTOR_ID	id
);
Syntax (C#)
void DelegateSleep (
	int	id
);
Parameters
id [in]
Detector ID	

8.3.3 detector::NotifyWakeUp / detector.DelegateWakeUp
Notifies when wireless detector wakes up	
Syntax (C++)
void detector::NotifyWakeUp (
	_In_	DETECTOR_ID	id
);
Syntax (C#)
void detector.DelegateWakeUp (
	int	id
);
Parameters
id [in]
Detector ID	
Remarks
It is the notification called when the detector wakes up from the sleep status completely.	

8.3.4 detector::NotifyKeepAlive / detector.DelegateKeepAlive
Notifies that wireless detector keeps alive. If a battery pack is not attached to the detector, the value of BATTERY_REMAIN is not reliable.	
Syntax (C++)
void detector::NotifyKeepAlive (
	_In_	DETECTOR_ID			id,
	_In_	double				temperature, 
	_In_	CONNECTION_INTERFACE		interfaceType,
	_In_	WIRELESS_SIGNAL_QUALITY	wirelessQuality,
	_In_	uint				linkQuality
	_In_	BATTERY_REMAIN_LEVEL		batteryRemain,
	_In_	uint				batteryGauge
);
Syntax (C#)
void detector.DelegateKeepAlive (
	int				id,
	double				temperature, 
	CONNECTION_INTERFACE		interfaceType,
	WIRELESS_SIGNAL_QUALITY	wirelessQuality,
	uint				linkQuality
	BATTERY_REMAIN_LEVEL		batteryRemain,
	uint				batteryGauge
);
Parameters
id [in]
Detector ID
temperature [in]
Temperature of detector
interfaceType [in]
Detector interface type
wirelessQuality [in]
Wireless signal quality.
batteryRemain [in]
Battery remain level
batteryGauge [in]
Battery remain gauge	
Remarks
This notification is delivered every 2 seconds.	

8.3.5 detector::NotifyLogDownloadState/ detector.DelegateLogDownloadState
Notifies the download state.	
Syntax (C++)
void detector:: NotifyLogDownloadState (
	_In_	DETECTOR_ID	id,
	_In_	int		currentStep,
	_In_	int		totalStep,
	_In_	bool		success
);
Syntax (C#)
void detector. DelegateLogDownloadState (
	int		id,
	int		currentStep,
	int		totalStep,
	bool		success
);
Parameters
id [in]
Detector ID
currentStep [in]
Current step
totalStep [in]
Total step
success [in]
Download state	

8.3.6 detector::NotifyrLogDownloadResult / detector.DelegaterLogDownloadResult
Notifies the download result	
Syntax (C++)
void detector::NotifyLogDownloadResult (
	_In_	DETECTOR_ID	id,
	_In_	bool		success
);
Syntax (C#)
void detector.DelegateLogDownloadResult (
	int		id,
	bool		success
);
Parameters
id [in]
Detector ID
success [in]
Download result	

8.3.7 detector::NotifyReboot / detector.DelegateReboot
Notifies the rebooting process of the detector.	
Syntax (C++)
void detector::NotifyReboot (
	_In_	DETECTOR_ID		id,
	_In_	REBOOT_STATUS		rebootStatus
);
Syntax (C#)
void detector.DelegateReboot (
	int			id,
	REBOOT_STATUS		rebootStatus
);
Parameters
id [in]
Detector ID
rebootStatus [in]
Reboot status	

8.3.8 detector::NotifySelfDiagnosisTimeout / detector.DelegateSelfDiagnosisTimeout
Notifies self-diagnostic timeout	
Syntax (C++)
void detector::NotifySelfDiagnosisTimeout (
	_In_	DETECTOR_ID	id,
);
Syntax (C#)
void detector.DelegateSelfDiagnosisTimeout (
	int	id,
);
Parameters
id [in]
Detector ID	

8.3.9 detector::NotifySelfDiagnosisItemResult / detector.DelegateSelfDiagnosisItemResult
Notifies self-diagnostic progress information	
Syntax (C++)
void detector::NotifySelfDiagnosisItemResult (
	_In_	DETECTOR_ID		id,
	_In_	SELF_DIAGNOSIS_RESULT*	result
);
Syntax (C#)
void detector.DelegateSelfDiagnosisItemResult (
	int			id,
	SELF_DIAGNOSIS_RESULT	result
);
Parameters
id [in]
Detector ID
result [in]
Self-diagnosis result	
Remarks
When each self-diagnosis item is finished, the result transmitted using this function.	

8.3.10 detector::NotifySelfDiagnosisDone / detector.DelegateSelfDiagnosisDone
Notifies self-diagnostic result	
Syntax (C++)
void detector::NotifySelfDiagnosisDone (
	_In_	DETECTOR_ID			id,
	_In_	SELF_DIAGNOSIS_DONE_TYPE	type,
	_In_	SELF_DIAGNOSIS_REPORT*		report
);
Syntax (C#)
void detector.DelegateSelfDiagnosisDone (
	int				id,
	SELF_DIAGNOSIS_DONE_TYPE	type,
	SELF_DIAGNOSIS_REPORT		report
);
Parameters
id [in]
Detector ID
type [in]
Self-diagnosis done type
report [in]
Self-diagnosis report array	
Remarks
When all item is finished, the total result transmitted using this function.	

8.3.11 detector::NotifyShockReportDownloadState / detector.DelegateShockReportDownloadState
Notifies the download state of shock report	
Syntax (C++)
void detector::NotifyShockReportDownloadState (
	_In_	DETECTOR_ID	id,
	_In_	int		currentStep,
	_In_	int		totalStep,
	_In_	bool		success
);
Syntax (C#)
void detector.DelegateShockReportDownloadState (
	int		id,
	int		currentStep,
	int		totalStep,
	bool		success
);
Parameters
id [in]
Detector ID
currentStep [in]
Number of current downloaded shock report
totalStep [in]
Total number of shock report
success [in]
Download result	

8.3.12 detector::NotifyShockReportDownloadResult / detector.DelegateShockReportDownloadResult
Notifies download result	
Syntax (C++)
void detector::NotifyShockReportDownloadResult (
	_In_	DETECTOR_ID	id,
	_In_	bool	success
);
Syntax (C#)
void detector.DelegateShockReportDownloadResult (
	int	id,
	bool	success
);
Parameters
id [in]
Detector ID
success [in]
Download result	

8.3.13 detector::NotifyImageTransmissionDelayed / detector.DelegateImageTransmissionDelayed
Notifies the delay of image transmission	
Syntax (C++)
void detector::NotifyImageTransmissionDelayed(
	_In_	DETECTOR_ID		id
);
Syntax (C#)
void detector.DelegateImageTransmissionDelayed(
	int			id
);
Parameters
id [in]
Detector ID	
Remarks
If image transmission is delayed while the SDK is getting images, the relevant notification is called.	



9 CFXRDN


9.1 Member Functions


9.1.1 VersionInfoGet
Gets the version information	
Syntax (C++)
RESULT VersionInfoGet (
	_Out_	NTYPE_VERSION_INFO*	info
);
Syntax (C#)
RESULT VersionInfoGet (
	out	NTYPE_VERSION_INFO	info
);
Parameters
info [out]
Version information	
Returns	
Description	
RESULT_SUCCESS	
Succeed in getting the version information.	
RESULT_INVALID_PARAMETER	
Incorrect parameter	
RESULT_DETECTOR_NOT_CONNECTED	
Not connected detector	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector in the Sleep status.	
RESULT_ERROR	
Failed to get the version information.	
Remarks
This function can be used after opening detector connection. This function provides a model name, serial number, firmware, FPGA, Bootloader, Kernel, Package, RamdiskVer, and MAC address for the factory setting.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::NTYPE_VERSION_INFO NTypeVersionInfor;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:

			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->VersionInfoGet(&NTypeVersionInfor);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get detector version information.
		}
		else
		{
			// Failed to get detector version information.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.NTYPE_VERSION_INFO NTypeVersionInfor;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:

			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.VersionInfoGet(out NTypeVersionInfor);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get detector version information.
		}
		else
		{
			// Failed to get detector version information.
		}
	}

9.1.2 DetectorEnableStateGet
Gets the activated state of the detector	
Syntax (C++)
RESULT DetectorEnableStateGet (
	_Out_	bool*	enable
);
Syntax (C#)
RESULT DetectorEnableStateGet (
	out	bool	enable
);
Parameters
enable [out]
Activated state of the detector	
Returns	
Description	
RESULT_SUCCESS	
Succeed in getting activated state information of the detector.	
RESULT_INVALID_PARAMETER	
Incorrect parameter	
RESULT_DETECTOR_NOT_CONNECTED	
Not connected detector	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector in the Sleep status.	
RESULT_ERROR	
Failed to get activated state information of the detector.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		bool DetectorEnableState = false;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->DetectorEnableStateGet(&DetectorEnableState);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get detector enable state.
		}
		else
		{
			// Failed to get detector enable state.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		bool DetectorEnableState = false;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.DetectorEnableStateGet(out DetectorEnableState);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get detector enable state.
		}
		else
		{
			// Failed to get detector enable state.
		}
	}

9.1.3 DetectorEnableStateSet
Sets the activated state of the detector	
Syntax (C++)
RESULT DetectorEnableStateSet (
	_In_	bool	enable
);
Syntax (C#)
RESULT DetectorEnableStateSet (
	bool	enable
);
Parameters
enable [in]
Activated state of the detector	
Returns	
Description	
RESULT_SUCCESS	
Succeed in setting activated state of the detector.	
RESULT_INVALID_PARAMETER	
Incorrect parameter	
RESULT_DETECTOR_NOT_CONNECTED	
Not connected detector	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector in the Sleep status.	
RESULT_ERROR	
Failed to set activated state of the detector.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->DetectorEnableStateSet(false);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to disable detector state.
		}
		else
		{
			// Failed to disable detector state.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.DetectorEnableStateSet(false);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to disable detector state.
		}
		else
		{
			// Failed to disable detector state.
		}
	}

9.1.4 CaptureCountGet
Acquires the number of cumulative shots	
Syntax (C++)
RESULT CaptureCountGet(
	_Out_	unsigned long*	val
);
Syntax (C#)
RESULT CaptureCountGet(
	out	uint		val
);
Parameters
val [out]
The number of shooting images	
Returns	
Description	
RESULT_SUCCESS	
Succeed in getting the number of shooting images.	
RESULT_INVALID_PARAMETER	
Incorrect parameter.	
RESULT_DETECTOR_NOT_CONNECTED	
Not connected detector.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector in the Sleep status.	
RESULT_ERROR	
Failed to get the number of shooting images.	
Remarks
This function can be used after opening detector connection. This function counts the images that X-ray actually exposed to only. The images taken by SWTrigger cannot affect the counting.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		unsigned long ulCaptureCount = 0;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->CaptureCountGet(&ulCaptureCount);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get capture count.
		}
		else
		{
			// Failed to get capture count.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		uint uCaptureCount = 0;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.CaptureCountGet(out ulCaptureCount);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get capture count.
		}
		else
		{
			// Failed to get capture count.
		}
	}

9.1.5 IsSleep
Checks the sleep state of the detector.	
Syntax (C++)
RESULT IsSleep (
	_In_	bool*	isSleep
);
Syntax (C#)
RESULT IsSleep (
	out	bool	isSleep
);
Parameters
isSleep [in]
Sleep state	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get sleep state.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_ERROR	
Failed to get sleep state.	
Remarks
This function can be used after opening detector connection. If the value of ‘isSleep’ is true, it means that the detector is in the sleep state.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		bool bSleep = false;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->IsSleep(&bSleep);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get sleep state.
		}
		else
		{
			// Failed to get sleep state.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		bool bSleep = false;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:

			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.IsSleep(out bSleep);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get sleep state.
		}
		else
		{
			// Failed to get sleep state.
		}
	}

9.1.6 NetworkConfigurationGet
Gets the network configuration	
Syntax (C++)
RESULT NetworkConfigurationGet (
	_Out_	NETWORK_CONFIGURATION*	config
);
Syntax (C#)
RESULT NetworkConfigurationGet (
	out	NETWORK_CONFIGURATION	config
);
Parameters
config [out]
Network configuration	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get network configuration.	
RESULT_INVALID_PARAMETER	
[config] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get network configuration.	
Remarks
This function can be used after opening detector connection. It brings the settings related to the network information. The information is the recorded one in the SDK memory, not in the detector. Therefore, call the ConfigurationRead function and then call the NetworkConfigurationGet function to get the setting value in the real detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::NETWORK_CONFIGURATION NetworkConfiguration;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->NetworkConfigurationGet(&NetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get network configuration.
		}
		else
		{
			// Failed to get network configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.NETWORK_CONFIGURATION NetworkConfiguration;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.NetworkConfigurationGet(out NetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get network configuration.
		}
		else
		{
			// Failed to get network configuration.
		}
	}

9.1.7 NetworkConfigurationSet
Sets the network configuration	
Syntax (C++)
RESULT NetworkConfigurationSet (
	_In_	NETWORK_CONFIGURATION*	config
);
Syntax (C#)
RESULT NetworkConfigurationSet (
	NETWORK_CONFIGURATION*	config
);
Parameters
config [in]
Network configuration	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set network configuration.	
RESULT_INVALID_PARAMETER	
One or more parameters are not valid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set networks configuration.	
Remarks
This function can be used after opening detector connection. It configures items related to the network information. The information is the recorded one in the SDK memory, not in the detector. Therefore, call the ConfigurationSave function to send and save the information in the SDK memory to the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::NETWORK_CONFIGURATION NetworkConfiguration;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->NetworkConfigurationSet(&NetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set network configuration.
		}
		else
		{
			// Failed to set network configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.NETWORK_CONFIGURATION NetworkConfiguration;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.NetworkConfigurationSet(NetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set network configuration.
		}
		else
		{
			// Failed to set network configuration.
		}
	}

9.1.8 WirelessNetworkConfigurationGet
Gets the wireless network configuration	
Syntax (C++)
RESULT WirelessNetworkConfigurationGet (
	_Out_	WIRELESS_NETWORK_CONFIGURATION*	config
);
Syntax (C#)
RESULT WirelessNetworkConfigurationGet (
	out	WIRELESS_NETWORK_CONFIGURATION	config
);
Parameters
config [out]
Wireless network configuration	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get wireless network configuration.	
RESULT_INVALID_PARAMETER	
[config] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get wireless network configuration.	
Remarks
This function can be used after opening detector connection. It brings the settings related to the wireless network. The information is the recorded one in the SDK memory, not in the detector. Therefore, call the ConfigurationRead function and then call the WirelessNetworkConfigurationGet function to get the setting value in the real detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::WIRELESS_NETWORK_CONFIGURATION WirelessNetworkConfiguration;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->WirelessNetworkConfigurationGet(&WirelessNetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get wireless network configuration.
		}
		else
		{
			// Failed to get wireless network configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.WIRELESS_NETWORK_CONFIGURATION WirelessNetworkConfiguration;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.WirelessNetworkConfigurationGet(out WirelessNetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get wireless network configuration.
		}
		else
		{
			// Failed to get wireless network configuration.
		}
	}

9.1.9 WirelessNetworkConfigurationSet
Sets the wireless network configuration	
Syntax (C++)
RESULT WirelessNetworkConfigurationSet (
	_In_	WIRELESS_NETWORK_CONFIGURATION*	config
);
Syntax (C#)
RESULT WirelessNetworkConfigurationSet (
	WIRELESS_NETWORK_CONFIGURATION	config
);
Parameters
config [in]
Wireless network configuration	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set wireless network configuration.	
RESULT_INVALID_PARAMETER	
One or more parameters are not valid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set wireless network configuration.	
Remarks
This function can be used after opening detector connection. It configures items related to the wireless network. The information is the recorded one in the SDK memory, not in the detector. Therefore, call the ConfigurationSave function to send and save the information in the SDK memory to the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::WIRELESS_NETWORK_CONFIGURATION WirelessNetworkConfiguration;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->WirelessNetworkConfigurationSet(&WirelessNetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set wireless network configuration.
		}
		else
		{
			// Failed to set wireless network configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.WIRELESS_NETWORK_CONFIGURATION WirelessNetworkConfiguration;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.WirelessNetworkConfigurationSet(WirelessNetworkConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set wireless network configuration.
		}
		else
		{
			// Failed to set wireless network configuration.
		}
	}

9.1.10 WirelessAPConfigurationGet
Gets the wireless AP configuration	
Syntax (C++)
RESULT WirelessAPConfigurationGet (
	_Out_	WIRELESS_AP_CONFIGURATION*	config
);
Syntax (C#)
RESULT WirelessAPConfigurationGet (
	out WIRELESS_AP_CONFIGURATION	config
);
Parameters
config [out]
Wireless AP configurations.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get wireless AP configuration.	
RESULT_INVALID_PARAMETER	
[config] is NULL.	
RESULT_DETECTOR_NO_INFORMATION	
There is no detector information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get wireless AP configuration.	
Remarks
This function can be used after opening detector connection. It brings settings related to the wireless AP information. The information is the recorded one in the SDK memory, not in the detector. Therefore, call the ConfigurationRead function and then call the WirelessAPConfigurationGet function to get the setting value in the real detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::WIRELESS_AP_CONFIGURATION WirelessAPConfiguration;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->WirelessAPConfigurationGet(&WirelessAPConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get wireless AP configuration.
		}
		else
		{
			// Failed to get wireless AP configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.WIRELESS_AP_CONFIGURATION WirelessAPConfiguration;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.WirelessAPConfigurationGet(out WirelessAPConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get wireless AP configuration.
		}
		else
		{
			// Failed to get wireless AP configuration.
		}
	}

9.1.11 WirelessAPConfigurationSet
Sets the wireless AP configuration	
Syntax (C++)
RESULT WirelessAPConfigurationSet (
	_In_	WIRELESS_AP_CONFIGURATION*	config
);
Syntax (C#)
RESULT WirelessAPConfigurationSet (
	WIRELESS_AP_CONFIGURATION*	config
);
Parameters
config [in]
Wireless AP configurations.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set wireless AP configuration.	
RESULT_INVALID_PARAMETER	
One or more parameters are not valid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set wireless AP configuration.	
Remarks
This function can be used after opening detector connection. It configures items related to the wireless AP information. The information is the recorded one in the SDK memory, not in the detector. Therefore, call the ConfigurationSave function to send and save the information in the SDK memory to the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::WIRELESS_AP_CONFIGURATION WirelessAPConfiguration;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->WirelessAPConfigurationSet(&WirelessAPConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set wireless AP configuration.
		}
		else
		{
			// Failed to set wireless AP configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.WIRELESS_AP_CONFIGURATION WirelessAPConfiguration;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.WirelessAPConfigurationSet(WirelessAPConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set wireless AP configuration.
		}
		else
		{
			// Failed to set wireless AP configuration.
		}
	}

9.1.12 ImageConfigurationGet
Gets the image configuration	
Syntax (C++)
RESULT ImageConfigurationGet (
	_Out_	IMAGE_CONFIGURATION*	config
);
Syntax (C#)
RESULT ImageConfigurationGet (
	out 	IMAGE_CONFIGURATION	config
);
Parameters
config [out]
Image configurations.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get image configuration.	
RESULT_INVALID_PARAMETER	
[config] is NULL.	
RESULT_DETECTOR_NO_INFORMATION	
There is no detector information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get wireless AP configuration.	
Remarks
This function can be used after opening detector connection. It brings settings related to the image information. The information is the recorded one in the SDK memory, not in the detector. Therefore, call the ConfigurationRead function and then call the ImageConfigurationGet function to get the setting value in the real detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::IMAGE_CONFIGURATION ImageConfiguration;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->ImageConfigurationGet(&ImageConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get image configuration.
		}
		else
		{
			// Failed to get image configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.IMAGE_CONFIGURATION ImageConfiguration;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.ImageConfigurationGet(out ImageConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get image configuration.
		}
		else
		{
			// Failed to get image configuration.
		}
	}

9.1.13 ImageConfigurationSet
Sets image configuration	
Syntax (C++)
RESULT ImageConfigurationSet (
	_In_	IMAGE_CONFIGURATION*		config
);
Syntax (C#)
RESULT ImageConfigurationSet (
	IMAGE_CONFIGURATION		config
);
Parameters
config [in]
Image configurations.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set image configuration.	
RESULT_INVALID_PARAMETER	
One or more parameters are not valid.	
RESULT_NOT_SUPPORTED_MODEL	
On models that FTM mode is not available, an error occurs when trying to set the FTM mode.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set image configuration.	
Remarks
This function can be used after opening detector connection. It configures items related to the image information. The information is the recorded one in the SDK memory, not in the detector. Therefore, call the ConfigurationSave function to send and save the information in the SDK memory to the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::IMAGE_CONFIGURATION ImageConfiguration;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->ImageConfigurationSet(&ImageConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set image configuration.
		}
		else
		{
			// Failed to set image configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.IMAGE_CONFIGURATION ImageConfiguration;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.ImageConfigurationSet(ImageConfiguration);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set image configuration.
		}
		else
		{
			// Failed to set image configuration.
		}
	}

9.1.14 ConfigurationRead
Calls the configuration value stored in the real detector to the SDK memory	
Syntax
RESULT ConfigurationRead (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to read configuration.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to read configuration.	
Remarks
This function can be used after opening detector connection. Get the information of Wireless AP Configuration, Network Configuration, and Wireless Network Configuration of the real detector to the SDK memory. The information in the SDK memory can be brought by using NetworkConfigurationGet, WirelessAPConfigurationGet, and TriggerConfigurationGet functions. Note that the information of Wireless AP Configuration, Network Configuration, and Trigger Configuration which were not saved by using the CalibrationSave function can be renewed as the information in the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->ConfigurationRead();
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to read configuration.
		}
		else
		{
			// Failed to read configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN ;
				nResult = pFXRDN.ConfigurationRead();
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to read configuration.
		}
		else
		{
			// Failed to read configuration.
		}
	}

9.1.15 ConfigurationSave
Saves the configuration value set in the SDK memory to the detector.	
Syntax
RESULT ConfigurationSave (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to save configuration.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to save configuration.	
Remarks
This function can be used after opening detector connection. It sends and saves the information of network configuration, wireless AP configuration, and trigger configuration in the SDK memory to the detector. The FXRD-1417W model is rebooted up after the ConfigurationSave function is applied successfully.
The detector can be disconnected or reconnected depending on the items.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->ConfigurationSave();
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to save configuration.
		}
		else
		{
			// Failed to save configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN ;
				nResult = pFXRDN.ConfigurationSave();
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to save configuration.
		}
		else
		{
			// Failed to save configuration.
		}
	}

9.1.16 Reboot
Reboots the detector	
Syntax
RESULT Reboot (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to reboot.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to reboot.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->Reboot();
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to start rebooting.
		}
		else
		{
			// Failed to start rebooting.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.Reboot();
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to start rebooting.
		}
		else
		{
			// Failed to start rebooting.
		}
	}

9.1.17 Shutdown
Shuts down the detector	
Syntax
RESULT Shutdown(void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to reboot.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_NOT_SUPPORTED_MODEL	
This function is not supported.	
RESULT_ERROR	
Failed to reboot.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->Shutdown();
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to start rebooting.
		}
		else
		{
			// Failed to start rebooting.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD2530_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD3643_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD4343_V:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.Shutdown();
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to start rebooting.
		}
		else
		{
			// Failed to start rebooting.
		}
	}


9.1.18 SleepModeEnable
Enables sleep mode.	
Syntax (C++)
RESULT SleepModeEnable (
	_In_	bool	enable
);
Syntax (C#)
RESULT SleepModeEnable (
	bool	enable
);
Parameters
enable [in]
Sleep mode enable/disable	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set sleep mode enable/disable.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set sleep mode enable/disable.	
Remarks
This function can be used after opening detector connection. Use this function to turn off the sleep mode temporarily if the mode is turned on from VIVIX Setup. The detector cannot get into the sleep mode even if you turn on the mode by using the SleepModeEnable function, in case the sleep mode has been turned off from VIVIX Setup. Since the sleep mode is enabled when the detector is rebooted, turn off the mode if needed.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->SleepModeEnable(true);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to enable sleep mode.
		}
		else
		{
			// Failed to enable sleep mode.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.SleepModeEnable(true);
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to enable sleep mode.
		}
		else
		{
			// Failed to enable sleep mode.
		}
	}

9.1.19 WakeUp
Wakes up the detector	
Syntax
RESULT WakeUp (int* pnExpectedWakeUpTime = NULL); 	// C++
RESULT WakeUp();					//.net
RESULT WakeUp([Out] int% ExpectedWakeUpTime);		//.net
Returns	
Description	
RESULT_SUCCESS	
Succeeded to wakeup detector.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_NOT_SUPPORTED_MODEL	
This function is not supported.	
RESULT_COMMAND_IS_NOT_READY	
Detector is not in sleep mode.	
RESULT_ERROR	
Failed to wakeup detector or Detector is not sleep.	
Remarks
This function can be used after opening detector connection. The function cannot be executed if the detector is not in the sleep state.
Even the return value of the function is RESULT_SUCCESS, it does not mean that the detector wakes up completely. The detector wakes up at the time of calling the registered NotifyWakeUp function.
By passing an Integer pointer as a parameter, you can get the estimated time taking for the detector to wake up.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->WakeUp();
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to wake up detector.
		}
		else
		{
			// Failed to wake up detector.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.WakeUp();
			}
			break;

		default:
			// Not supported model.
			break;
		}
		
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to wake up detector.
		}
		else
		{
			// Failed to wake up detector.
		}
	}

9.1.20 GoSleep
Turns the detector to the sleep mode	
Syntax
RESULT GoSleep (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to sleep detector.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_BUSY	
Temporarily unable to enter sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Detector is not supported model.	
RESULT_DETECTOR_IS_IN_SLEEP	
Already in sleep state.	
RESULT_ERROR	
Failed to go sleep the detector or it is not in the sleep state.	
Remarks
This function can be used after opening detector connection. This function cannot be applied if the detector is in the sleep mode.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->GoSleep();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to go sleep the detector.
		}
		else
		{
			// Failed to go sleep the detector.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD2530_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD3643_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD4343_V:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;s
				nResult = pFXRDN.GoSleep();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to go sleep the detector.
		}
		else
		{
			// Failed to go sleep the detector.
		}
	}


9.1.21 RemainSleepModeEntryTime
Checks the remaining time until entering to the sleep mode	
Syntax (C++)
RESULT RemainSleepModeEntryTime(
	_Out_	int*	remainTime
);
Syntax (C#)
RESULT RemainSleepModeEntryTime(
	out	int	remainTime
);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the sleep mode entry remain time.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_NOT_SUPPORTED_MODEL	
Detector is not supported model.	
RESULT_ERROR	
Failed to get the sleep mode entry remain time.	
Remarks
This function is used for getting standby time which remains until the detector enters the sleep mode. This remaining time is initialized at the time of shooting. In case the detector is already in the sleep mode, the value is invalid.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				int nRemainTime = 0;
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->RemainSleepModeEntryTime(&nRemainTime);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get sleep mode entry remain time.
		}
		else
		{
			// Failed to get sleep mode entry remain time.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				int nRemainTime = 0;
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDW = pDetector as Vieworks.vivix.net.detector.FXRDN; 
				nResult = pFXRDN.RemainSleepModeEntryTime(out nRemainTime);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get sleep mode entry remain time.
		}
		else
		{
			// Failed to get sleep mode entry remain time.
		}
	}

9.1.22 BackupImageListGet
Gets a list of backup image	
Syntax (C++)
RESULT BackupImageListGet (
	_Out_	STORED_IMAGE_LIST*	info
);
Syntax (C#)
RESULT BackupImageListGet (
	out	STORED_IMAGE_LIST	info
);
Parameters
info [out]
Backup image list.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get backup image list.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set trigger debounce time.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{	
		Vieworks::vivix::STORED_IMAGE_LIST NTypeBackupImageList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->BackupImageListGet(&NTypeBackupImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get backup image list.
		}
		else
		{
			// Failed to get backup image list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net. STORED_IMAGE_LIST NTypeBackupImageList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.BackupImageListGet(out NTypeBackupImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get backup image list.
		}
		else
		{
			// Failed to get backup image list.
		}
	}

9.1.23 BackupImageGet
Gets backup image	
Syntax (C++)
RESULT BackupImageGet (
	_In_	STORED_IMAGE_INFO*	info
);
Syntax (C#)
RESULT BackupImageGet (
	STORED_IMAGE_INFO	info
);
Parameters
info [in]
Backup image information	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get backup image.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get backup image.	
Remarks
This function can be used after opening detector connection.
Unlike FXRD-1417W, FXRD-1012N, FXRD-1417N, FXRD-1717N and VXTD-2532E, when SDK and the detector are not connected and when SDK and the detector are connected while image transmission fails, all the images becomes backed-up.
After the order is succeeded, the images are sent by the FrameGrabberImageIn Callback function. The transmitted images are removed in the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::STORED_IMAGE_LIST NTypeBackupImageList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->BackupImageListGet(&NTypeBackupImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get backup image list.

			if(NTypeBackupImageList.nCount > 0)
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				pFXRDN->SetNotifyFrameGrabberImageIn(NotifyFrameGrabberImageIn);

				nResult = pFXRDN->BackupImageGet(&NTypeBackupImageList.pInfoList[0]);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to get backup image.
				}
				else
				{
					// Failed to get backup image.
				}
			}
		}
		else
		{
			// Failed to get backup image list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.STORED_IMAGE_LIST NTypeBackupImageList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.BackupImageListGet(out NTypeBackupImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get backup image list.

			if(NTypeBackupImageList.nCount > 0)
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				pFXRDN.SetDelegateFrameGrabberImageIn
(OnDelegateFrameGrabberImageIn);

				nResult = pFXRDN.BackupImageGet
(NTypeBackupImageList.aryInfoList[0]);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to get backup image.
				}
				else
				{
					// Failed to get backup image.
				}
			}
		}
		else
		{
			// Failed to get backup image list.
		}
	}

9.1.24 RemoveImage
Removes the image stored in the internal memory of the detector	
Syntax (C++)
RESULT RemoveImage (
	_In_	STORED_IMAGE_INFO*	info
);
Syntax (C#)
RESULT RemoveImage (
	STORED_IMAGE_INFO	info
);
Parameters
info [in]
Image information.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to remove image in detector.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to remove image in detector.	
Remarks
This function can be used after opening detector connection. The backup images in the detector are removed.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::STORED_IMAGE_LIST NTypeBackupImageList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->BackupImageListGet(&NTypeBackupImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get backup image list.

			if(NTypeBackupImageList.nCount > 0)
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->RemoveImage(&NTypeBackupImageList.pInfoList[0]);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to remove backup image.
				}
				else
				{
					// Failed to remove backup image.
				}
			}
		}
		else
		{
			// Failed to get backup image list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.STORED_IMAGE_LIST NTypeBackupImageList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.BackupImageListGet(out NTypeBackupImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get backup image list.

			if(NTypeBackupImageList.nCount > 0)
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.BackupImageGet
(NTypeBackupImageList.aryInfoList[0]);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to remove backup image.
				}
				else
				{
					// Failed to remove backup image.
				}
			}
		}
		else
		{
			// Failed to get backup image list.
		}
	}

9.1.25 FTMImageListGet
Gets a list of FTM image	
Syntax (C++)
RESULT FTMImageListGet (
	_Out_	FTM_IMAGE_LIST*	info
);
Syntax (C#)
RESULT FTMImageListGet (
	out	FTM_IMAGE_LIST	info
);
Parameters
info [out]
FTM image list	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get FTM image list.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_NOT_SUPPORTED_MODEL	
FXRD-1012N and VXTD-2532E Only	
RESULT_NOT_SUPPORTED_VERSION	
FXRD-1012N: F/W v1.0.3.31 or higher
VXTD-2532E: F/W v1.0.0.4 or higher	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get FTM image list.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{	
		Vieworks::vivix::FTM_IMAGE_LIST FTMImageList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->FTMImageListGet(&FTMImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get FTM image list.
		}
		else
		{
			// Failed to get FTM image list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net. FTM_IMAGE_LIST FTMImageList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN. FTMImageListGet (out FTMImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get FTM image list.
		}
		else
		{
			// Failed to get FTM image list.
		}
	}

9.1.26 FTMImageGet
Gets FTM image	
Syntax
RESULT FTMImageGet (
	_In_	FTM_IMAGE_INFO*	info
);
Parameters
info [in]
FTM image information	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get FTM image.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_NOT_SUPPORTED_MODEL	
FXRD-1012N and VXTD-2532E Only	
RESULT_NOT_SUPPORTED_VERSION	
FXRD-1012N: F/W v1.0.3.31 or higher
VXTD-2532E: F/W v1.0.0.4 or higher	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get FTM image.	
Remarks
This function can be used after opening detector connection. After the order is succeeded, the images are sent by the FrameGrabberImageIn Callback function. The transmitted images are removed in the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::FTM_IMAGE_LIST FTMImageList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->FTMImageListGet(&FTMImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get FTM image list.

			if(FTMImageList.nCount > 0)
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				pFXRDN->SetNotifyFrameGrabberImageIn(NotifyFrameGrabberImageIn);

				nResult = pFXRDN->FTMImageGet(&FTMImageList.pInfoList[0]);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to get FTM image.
				}
				else
				{
					// Failed to get FTM image.
				}
			}
		}
		else
		{
			// Failed to get FTM image list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.FTM_IMAGE_LIST FTMImageList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.FTMImageListGet(out FTMImageList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get FTM image list.

			if(NTypeBackupImageList.nCount > 0)
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				 pFXRDN.SetDelegateFrameGrabberImageIn(OnDelegateFrameGrabberImageIn);

				nResult = pFXRDN.FTMImageGet(FTMImageList.aryInfoList[0]);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to get FTM image.
				}
				else
				{
					// Failed to get FTM image.
				}
			}
		}
		else
		{
			// Failed to get FTM image list.
		}
	}

9.1.27 RemoveFTMImage
Removes FTM image from detector	
Syntax
RESULT RemoveFTMImage (
	_In_	FTM_IMAGE_INFO*	info
);
Parameters
info [in]
Image information.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to remove FTM image in detector.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_NOT_SUPPORTED_MODEL	
FXRD-1012N and VXTD-2532E Only	
RESULT_NOT_SUPPORTED_VERSION	
FXRD-1012N: F/W v1.0.3.31 or higher
VXTD-2532E: F/W v1.0.0.4 or higher	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to remove FTM image in detector.	
Remarks
This function can be used after opening detector connection. The FTM images in the detector are removed.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != NULL)
	{
		Vieworks::vivix::FTM_IMAGE_LIST FTMImageList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;
				nResult = pFXRDN->FTMImageListGet(&FTMImageList);
			}
			break;

		default:
			// Not supported model.
			Break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get FTM image list.

			If(FTMImageList.nCount > 0)
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->RemoveFTMImage(&FTMImageList.pInfoList[0]);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to remove FTM image.
				}
				else
				{
					// Failed to remove FTM image.
				}
			}
		}
		else
		{
			// Failed to get FTM image list.
		}
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	If(pDetector != null)
	{
		Vieworks.vivix.net.FTM_IMAGE_LIST FTMImageList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				nResult = pFXRDN.FTMImageListGet(out FTMImageList);
			}
			break;

		default:
			// Not supported model.
			Break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to remove FTM image list.

			If(FTMImageList.nCount > 0)
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.RemoveFTMImage(FTMImageList.aryInfoList[0]);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to remove FTM image.
				}
				else
				{
					// Failed to remove FTM image.
				}
			}
		}
		else
		{
			// Failed to get FTM image list.
		}
	}

9.1.28 FlushFTMImage
Removes all FTM images from detector and resets the FTM ID	
Syntax
RESULT FlushFTMImage ( );
Returns	
Description	
RESULT_SUCCESS	
Succeeded to remove FTM image in detector.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_NOT_SUPPORTED_MODEL	
FXRD-1012N and VXTD-2532E Only	
RESULT_NOT_SUPPORTED_VERSION	
FXRD-1012N: F/W v1.0.3.31 or higher
VXTD-2532E: F/W v1.0.0.4 or higher	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to remove FTM image in detector.	
Remarks
This function can be used after opening detector connection. The FTM images in the detector are removed.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{

				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->FlushFTMImage();

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to flush FTM image.
				}
				else
				{
					// Failed to flush FTM image.
				}
			}
			break;

		default:
			// Not supported model.
			Break;
		}
	}
Examples (C#)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.FlushFTMImage();

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to flush FTM image.
				}
				else
				{
					// Failed to flush FTM image.
				}
			}
			break;

		default:
			// Not supported model.
			Break;
		}
}

9.1.29 LogDataListGet
Gets a list of log data	
Syntax (C++)
RESULT LogDataListGet (
	_Out_	LOG_LIST*	logList
);
Syntax (C#)
RESULT LogDataListGet (
	out	LOG_LIST		logList
);
Parameters
logList [out]
Log data list.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get log data list.	
RESULT_INVALID_PARAMETER	
[logList] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get log data list.	
Remarks
This function can be used after opening detector connection. Input Timestamp to startDate and endDate of LOG_LIST as a parameter to search the log in the certain period. Input 0 to startDate and endDate and send it as a parameter if you need the log data list of the whole period.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::LOG_LIST LogList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				CTime t1(2015, 3, 10, 0, 0, 0);
				CTime t2(2015, 3, 12, 0, 0, 0);

				// Boundary set
				LogList.startDate = t1.GetTime();
				LogList.endDate = t2.GetTime();

				nResult = pFXRDN->LogDataListGet(&LogList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get log list.
		}
		else
		{
			// Failed to get log list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.LOG_LIST LogList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				CTime t1(2015, 3, 10, 0, 0, 0);
				CTime t2(2015, 3, 12, 0, 0, 0);

				// Boundary set
				LogList.startDate = t1.GetTime();
				LogList.endDate = t2.GetTime();

				nResult = pFXRDN.LogDataListGet(out LogList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get log list.
		}
		else
		{
			// Failed to get log list.
		}
	}

9.1.30 LogDataGet
Gets log	
Syntax (C++)
RESULT LogDataGet (
	_In_	LOG_DATA*	logData
);
Syntax (C#)
RESULT LogDataGet (
	LOG_DATA	logData
);
Parameters
logData [in]
Log data	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get log data.	
RESULT_INVALID_PARAMETER	
[logData] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get log data.	
Remarks
This function can be used after opening detector connection. Assign the log data to be brought by using LOG_DATA of the LOG_LIST structure, which was acquired by LogDataListGet. The log data is stored to “Detector\[Serial number]”, located at the bottom of SDK log storage route.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::LOG_LIST LogList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				CTime t1(2015, 3, 10, 0, 0, 0);
				CTime t2(2015, 3, 12, 0, 0, 0);

				// Boundary set
				LogList.startDate = t1.GetTime();
				LogList.endDate = t2.GetTime();

				nResult = pFXRDN->LogDataListGet(&LogList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get log list.

			if(LogList.LogCount > 0)
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->LogDataGet(&LogList.LogList[0]);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to get log in log path.
				}
				else
				{
					// Failed to get log.
				}
			}
		}
		else
		{
			// Failed to get log list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.LOG_LIST LogList;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				CTime t1(2015, 3, 10, 0, 0, 0);
				CTime t2(2015, 3, 12, 0, 0, 0);

				// Boundary set
				LogList.startDate = t1.GetTime();
				LogList.endDate = t2.GetTime();

				nResult = pFXRDN.LogDataListGet(out LogList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get log list.

			if(LogList.LogCount > 0)
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.LogDataGet(LogList.LogList[0]);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to get log in log path.
				}
				else
				{
					// Failed to get log.
				}
			}
		}
		else
		{
			// Failed to get log list.
		}
	}

9.1.31 LogExportToday
Downloads the today’s log	
Syntax (C++)
RESULT LogExportToday (
	_In_	const FILE_PATH	exportPath
);
Syntax (C#)
RESULT LogExportToday (
	string	exportPath
);
Parameters
exportPath [in]
Folder path.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to export log today.	
RESULT_INVALID_PARAMETER	
[exportPath] is not valid or not folder path.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_IO_INSUFFICIENT_PERMISSION	
[exportPath] does not have write permission.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to export log today.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->LogExportToday(_T("D:\\LogFolder"));
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to export today log.
		}
		else
		{
			// Failed to export today log.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.LogExportToday("D:\\LogFolder");
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to export today log.
		}
		else
		{
			// Failed to export today log.
		}
	}

9.1.32 LogExportAll
Gets all logs with shock report	
Syntax (C++)
RESULT LogExportAll (
	_In_	bool		bIncludeShockReport,
	_In_	const FILE_PATH	exportPath
);
Syntax (C#)
RESULT LogExportAll (
	bool		bIncludeShockReport,
	string		exportPath ,
	DelegateLogDownloadState state, 
	DelegateLogDownloadResult result
);
Parameters
bIncludeShockReport [in]
Whether the shock sensor is included in the log or not.
exportPath [in]
Folder path.
state [in]
Delegate Log Download State.
result [in]
Delegate Log Download Result.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to export log all.	
RESULT_INVALID_PARAMETER	
[exportPath] is not valid or not folder path.	
RESULT_DETECTOR_IS_IN_BUSY	
Cannot execute the function since another task is being processed.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to export log all.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->LogExportAll(true, _T("D:\\LogFolder"));
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to export all log.
		}
		else
		{
			// Failed to export all log.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.LogExportAll(true, "D:\\LogFolder", null, null);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to export all log.
		}
		else
		{
			// Failed to export all log.
		}
	}

9.1.33 ShockReportExportAll
Gets all shock reports	
Syntax (C++)
RESULT ShockReportExportAll (
	_In_	const FILE_PATH	exportPath
);
Syntax (C#)
RESULT ShockReportExportAll (
	string		exportPath,
	DelegateShockReportDownloadState state,
	DelegateShockReportDownloadResult result
);
Parameters
exportPath [in]
Folder path.
state [in]
Delegate Shock Report Download State.
result [in]
Delegate Shock Report Download Result.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to export shock report.	
RESULT_INVALID_PARAMETER	
[exportPath] is not valid or not folder path.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to export shock report.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->ShockReportExportAll(_T("D:\\LogFolder"));
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to export shock report.
		}
		else
		{
			// Failed to export shock report.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.ShockReportExportAll("D:\\LogFolder", null, null);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to export shock report.
		}
		else
		{
			// Failed to export shock report.
		}
	}

9.1.34 CurrentPatientInfoSet
Sets the current patient information	
Syntax (C++)
RESULT RESULT CurrentPatientInfoSet (
	_In_	PATIENT_INFO*	info
);
Syntax (C#)
RESULT RESULT CurrentPatientInfoSet (
	PATIENT_INFO*	info
);
Parameters
info [in]
Patient information.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set current patient information.	
RESULT_INVALID_PARAMETER	
[info] is NULL or invalid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set current patient information.	
Remarks
This function can be used after opening detector connection.
The limitations of each member of Info are shown in the table below.	
Parameters	
Limits	
patientName	
Must be entered. (1 to 65 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
patientId	
Must be entered. (1 to 65 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
accNo	
17 characters or less.
Unavailable characters $ % & [ ] { } | ; : < > =	
studyDate	
Must be entered. (1 to 9 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
studyTime	
Must be entered. (1 to 7 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	

9.1.35 PatientInfoListSet
Sets a list of patient information	
Syntax (C++)
RESULT PatientInfoListSet (
	_In_	PATIENT_INFO_LIST*	info,
	_In_	PATIENT_LIST_SET_TYPE	type
);
Syntax (C#)
RESULT PatientInfoListSet (
	PATIENT_INFO_LIST*	info,
	PATIENT_LIST_SET_TYPE	type
);
Parameters
info [in]
Patient information list
type [in]
Patient list set type.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set patient information list.	
RESULT_INVALID_PARAMETER	
[info] is NULL.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set patient information list.	
Remarks
This function can be used after opening detector connection.
The limitations of each member of ‘Info  patientStepInfo’ are shown in the table below.	
Parameters	
Limits	
name	
Must be entered. (1 to 65 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
birth	
9 characters or less.
Unavailable characters $ % & [ ] { } | ; : < > =	
id	
Must be entered. (1 to 65 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
accNo	
17 characters or less.
Unavailable characters $ % & [ ] { } | ; : < > =	
studyDate	
Must be entered. (1 to 9 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
studyTime	
Must be entered. (1 to 7 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
scheduledDateTime	
Must be entered. (1 to 15 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	

9.1.36 BodyPartInfoListSet
Sets a list of body part information	
Syntax (C++)
RESULT BodyPartInfoListSet (
	_In_	BODY_PART_LIST*		info
);
Syntax (C#)
RESULT BodyPartInfoListSet (
	BODY_PART_LIST*		info
);
Parameters
info [in]
Body part information list.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set body part information list.	
RESULT_INVALID_PARAMETER	
[info] is NULL or invalid.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set body part information list.	
Remarks
This function can be used after opening detector connection.
The limitations of each member of Info are shown in the table below.	
Parameters	
Limits	
nBodypartCount	
0 (zero) or more	
viewerserial	
Must be entered. (1 to 9 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
aryBodypartInfo[ ].meaning	
Must be entered. (1 to 65 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	
aryBodypartInfo[ ].aryProjectionInfo[ ].meaning	
Must be entered. (1 to 65 characters)
Unavailable characters $ % & [ ] { } | ; : < > =	

9.1.37 SelfDiagnosis
Commands self-diagnosis to the detector	
Syntax (C++)
RESULT SelfDiagnosis (
	_In_	bool	bWithSCU
);
Syntax (C#)
RESULT SelfDiagnosis (
	bool	bWithSCU
);
Parameters
bWithSCU [in]
Whether the self-diagnosis related to SCU is processed or not when processing the self-diagnosis of the detector.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set trigger debounce time.	
RESULT_DETECTOR_IS_IN_BUSY	
Cannot execute the function since another task is being processed.	
RESULT_NOT_SUPPORTED_VERSION	
Not supported version.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to set trigger debounce time.	
Remarks
This function can be used after opening detector connection. It executes all diagnosable items in the detector firmware and sends the result. The self-diagnosis items can be different depending on the detector firmware version. The callback functions related to the self-diagnosis are NotifySelfDiagnosisTimeout, NotifySelfDiagnosisItemResult, and NotifySelfDiagnosisDone.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->SelfDiagnosis(true);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to start self diagnosis.
		}
		else
		{
			// Failed to start self diagnosis.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SelfDiagnosis(true);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to start self diagnosis.
		}
		else
		{
			// Failed to start self diagnosis.
		}
	}

9.1.38 DiagnosableItemsGet
Gets a list of diagnosable item	
Syntax (C++)
RESULT DiagnosableItemsGet (
	_In_	bool				bIsSCU,
	_Out_	DIAGNOSABLE_ITEM_INFO_LIST*	list
);
Syntax (C#)
RESULT DiagnosableItemsGet (
	_In_	bool				bIsSCU,
	ref	DIAGNOSABLE_ITEM_INFO_LIST	list
);
Parameters
bIsSCU [in]
Include SCU related function diagnosis.
list [out]
Diagnosable item information list.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded in getting diagnosable item list.	
RESULT_INVALID_PARAMETER	
Detector ID is out of range or [type] value is invalid or out of range.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get diagnosable item list.	
Remarks
This function can be used after opening detector connection. It receives the list of diagnosable items from the detector firmware. You can process the self-diagnosis to all transmitted items or partial items by using the DiagnoseItem function. The self-diagnostic items can be different depending on the detector firmware version. The callback functions related to the self-diagnosis are NotifySelfDiagnosisTimeout, NotifySelfDiagnosisItemResult, and NotifySelfDiagnosisDone.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::DIAGNOSABLE_ITEM_INFO_LIST DiagnosableItemInfoList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N: 
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N: 
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->DiagnosableItemsGet(true, &DiagnosableItemInfoList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.
		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;


	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.DIAGNOSABLE_ITEM_INFO_LIST DiagnosableItemInfoList = new Vieworks.vivix.net.DIAGNOSABLE_ITEM_INFO_LIST();
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.DiagnosableItemsGet(true, ref DiagnosableItemInfoList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.
		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}

9.1.39 DiagnoseItem
Diagnoses item	
Syntax (C++)
RESULT DiagnoseItem (
	_In_	int	category,
	_In_	int	item
);
Syntax (C#)
RESULT DiagnoseItem (
	_In_	int	category,
	_In_	int	item
);
Parameters
category [in]
Category number of an item to be self-diagnosed.
item [in]
Item number of an item to be self-diagnosed.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to start self-diagnosis.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to start self-diagnosis.	
Remarks
This function can be used after opening detector connection. You can process the self-diagnosis to all transmitted items or partial items by using the DiagnosableImtesGet function. The callback functions related to the DiagnoseItem function are NotifySelfDiagnosisTimeout and NotifySelfDiagnosisItemResult.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::DIAGNOSABLE_ITEM_INFO_LIST DiagnosableItemInfoList;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->DiagnosableItemsGet(true, &DiagnosableItemInfoList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.

			Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
			pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

			if(DiagnosableItemInfoList.numOfitems > 0)
			{
				nResult = pFXRDN->DiagnoseItem(DiagnosableItemInfoList.items[0].categoryId, DiagnosableItemInfoList.items[0].itemId);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to diagnose item.
				}
				else
				{
					// Failed to diagnose item.
				}
			}
		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;


	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.DIAGNOSABLE_ITEM_INFO_LIST DiagnosableItemInfoList = new Vieworks.vivix.net.DIAGNOSABLE_ITEM_INFO_LIST();
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.DiagnosableItemsGet(true, ref DiagnosableItemInfoList);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.

			Vieworks.vivix.net.detector.FXRDN pFXRDN = NULL;
			pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

			if(DiagnosableItemInfoList.numOfitems > 0)
			{
				nResult = pFXRDN.DiagnoseItem(DiagnosableItemInfoList.items[0].categoryId, DiagnosableItemInfoList.items[0].itemId);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to diagnose item.
				}
				else
				{
					// Failed to diagnose item.
				}
			}
		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}

9.1.40 AbortSelfDiagnosis
Aborts self-diagnosis	
Syntax (C++)
RESULT AbortSelfDiagnosis (void);
Syntax (C#)
RESULT AbortSelfDiagnosis (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to abort self-diagnosis.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_NOT_SUPPORTED_VERSION	
Not supported version.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to abort self-diagnosis.	
Remarks
This function can be used after opening detector connection. The callback function related to the DiagnoseAbort function is NotifySelfDiagnosisDone.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->AbortSelfDiagnosis();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to abort self diagnosis.
		}
		else
		{
			// Failed to abort self diagnosis.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.AbortSelfDiagnosis();
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to abort self diagnosis.
		}
		else
		{
			// Failed to abort self diagnosis.
		}
	}

9.1.41 ConnectionTypeGet
Checks interface communicated with the connecting detector	
Syntax (C++)
RESULT ConnectionTypeGet (
	_Out_	CONNECTION_INTERFACE*	interfaceType
);
Syntax (C#)
RESULT IsSCUConnected (
	Out	CONNECTION_INTERFACE	interfaceType
);
Parameters
interfaceType [out]
A variable for indicating communication interface type between a detector and SDK.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get connection type.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
Remarks
This function can be used after opening detector connection.
Acquires information about the communication way between the detector and SDK. This information is the same as that of being transferred through KeepAlive notification / delegate.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		CONNECTION_INTERFACE connectionType;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->ConnectionTypeGet(&connectionType);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get connection interface information.
		}
		else
		{
			// Failed to get connection interface information.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		CONNECTION_INTERFACE connectionType;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

				nResult = pFXRDN.ConnectionTypeGet(out connectionType);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get connection interface information.
		}
		else
		{
			// Failed to get connection interface information.
		}
	}

9.1.42 WirelessSignalGet
Gets information about signal strength of wireless communication.	
Syntax (C++)
RESULT WirelessSignalGet (
	_Out_	WIRELESS_SIGNAL_QUALITY*	wirelessQuality,
	_Out_	unsigned int*			linkQuality,
_Out_	int* 				pnSignalStrength = NULL
);
Syntax (C#)
RESULT WirelessSignalGet (
	Out	WIRELESS_SIGNAL_QUALITY	wirelessQuality,
	Out	unsigned int			linkQuality
);

RESULT WirelessSignalGet (
	Out	WIRELESS_SIGNAL_QUALITY	wirelessQuality,
	Out	unsigned int			linkQuality
Out	int 				signalStrength
);
Parameters
wirelessQuality [out]
Signal quality level of wireless communication 

linkQuality [out]
Signal quality value of wireless communication 

SignalStrength [out]
Signal strength value of wireless communication	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get wireless signal information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		WIRELESS_SIGNAL_QUALITY wirelessQuality;
		unsigned int linkQuality;
		int linkSterngth;
		switch (pDetector->DetectorClassGet())
		{
		case Vieworks::vivix::DETECTOR_CLASS::DETECTOR_CLASS_FXRDN:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->WirelessSignalGet(&wirelessQuality, &linkQuality, &linkSterngth);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get wireless signal information.
		}
		else
		{
			// Failed to get wireless signal information.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		WIRELESS_SIGNAL_QUALITY wirelessQuality;
		unsigned int linkQuality;
		int linkSterngth;

		switch (pDetector.DetectorClassGet())
		{
		case Vieworks.vivix.net.DETECTOR_CLASS.DETECTOR_CLASS_FXRDN:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

				nResult = pFXRDN.WirelessSignalGet(out wirelessQuality, out linkQuality, out linkSterngth);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get wireless signal information.
		}
		else
		{
			// Failed to get wireless signal information.
		}
	}

9.1.43 BatteryStateGet
Acquires information of the battery installed to the detector.	
Syntax (C++)
RESULT BatteryStateGet (
	_Out_	BATTERY_REMAIN_LEVEL*	batteryRemain,
	_Out_	double*			batteryGauge,
	_Out_	bool*			isEquipped,
	_Out_	double*			voltage,
	_Out_	bool*			isCharging,
	_Out_	bool*			isEquipped2,
	_Out_	double*			voltage2,
	_Out_	bool*			isCharging2
);
Syntax (C#)
RESULT BatteryStateGet (
	Out	BATTERY_REMAIN_LEVEL	batteryRemain,
	Out	double			batteryGauge,
	Out	bool			isEquipped,
	Out	double			voltage,
	Out	bool			isCharging,
	Out	bool			isEquipped2,
	Out	double			voltage2,
	Out	bool			isCharging2
);
Parameters
batteryRemain [out]
Battery level

batteryGauge [out]
Battery level (Unit: %) 

isEquipped [out]
Whether the 1st battery is installed to the detector or not.

voltage [out]
Voltage of the 1st battery

isCharging [out]
Whether the 1st battery is charged or not.

isEquipped2 [out]
Whether the 2nd battery is installed to the detector or not.

voltage2 [out]
Voltage of the 2nd battery

isCharging2 [out]
Whether the 2nd battery is charged or not.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get battery state information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
Remarks
This function can be used after opening detector connection.
In case of the FXRD-1012N model, the information of the 1st battery is valid only. In case of the FXRD-1717N model, the FXRD-1417N model and the VXTD-2532E which uses two batteries, the parameters of batteryRemain and batteryGauge are indicated as a sum of values of the two batteries. (If only one battery (fully-charged) is attached, the return value will be 50%.)	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		BATTERY_REMAIN_LEVEL batteryRemain;
		double batteryGauge;
		bool isEquipped, isEquipped2;
		double voltage, voltage2;
		bool isCharging, isCharging2;

		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->BatteryStateGet(&batteryRemain, &batteryGauge, &isEquipped, &voltage, &isCharging, &isEquipped2, &voltage2, &isCharging2);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get battery state information.
		}
		else
		{
			// Failed to get battery state information.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		BATTERY_REMAIN_LEVEL batteryRemain;
		double batteryGauge;
		bool isEquipped, isEquipped2;
		double voltage, voltage2;
		bool isCharging, isCharging2;

		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

				nResult = pFXRDN.BatteryStateGet(out batteryRemain, out batteryGauge, out isEquipped, out voltage, out isCharging, out isEquipped2, out voltage2, out isCharging2);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get battery state information.
		}
		else
		{
			// Failed to get battery state information.
		}
	}

9.1.44 OffsetDownload
Downloads the offset calibration data.	
Syntax (C++)
RESULT OffsetDownload (
	_In_	const FILE_PATH	filePath
);
Syntax (C#)
RESULT OffsetDownload (
	string	filePath
);
Parameters
filePath [in]
File path.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to download the offset calibration data file.	
RESULT_INVALID_PARAMETER	
[filePath] is not valid or not file path.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to download the offset calibration data file.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->OffsetDownload(_T("D:\\offset.dat"));
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to download offset calibration data.
		}
		else
		{
			// Failed to download offset calibration data.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.OffsetDownload("D:\\offset.dat");
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to download offset calibration data.
		}
		else
		{
			// Failed to download offset calibration data.
		}
	}

9.1.45 DefectDownload
Downloads the defect calibration data	
Syntax (C++)
RESULT DefectDownload (
	_In_	const FILE_PATH	filePath
);
Syntax (C#)
RESULT DefectDownload (
	string	filePath
);
Parameters
filePath [in]
File path.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to download the defect calibration data file.	
RESULT_INVALID_PARAMETER	
[filePath] is not valid or not file path.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to download the defect calibration data file.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->DefectDownload(_T("D:\\offset.dat"));
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to download defect calibration data.
		}
		else
		{
			// Failed to download defect calibration data.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.DefectDownload("D:\\offset.dat");
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to download defect calibration data.
		}
		else
		{
			// Failed to download defect calibration data.
		}
	}

9.1.46 GainDownload
Downloads the gain calibration data	
Syntax (C++)
RESULT GainDownload (
	_In_	const FILE_PATH	filePath
);
Syntax (C#)
RESULT GainDownload (
	string	filePath
);
Parameters
filePath [in]
File path.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to download the gain calibration data file.	
RESULT_INVALID_PARAMETER	
[filePath] is not valid or not file path.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to download the gain calibration data file.	
Remarks
This function can be used after opening detector connection.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDW* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->GainDownload(_T("D:\\offset.dat"));
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to download gain calibration data.
		}
		else
		{
			// Failed to download gain calibration data.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDW pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.GainDownload("D:\\offset.dat");
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to download gain calibration data.
		}
		else
		{
			// Failed to download gain calibration data.
		}
	}

9.1.47 IsSCUConnected
Checks if communications between a detector and SCU are linked normally	
Syntax (C++)
RESULT IsSCUConnected (
	_Out_	bool	bConnected
);
Syntax (C#)
RESULT IsSCUConnected (
	Out	bool	bConnected
);
Parameters
bConnected [out]
A variable for indicating if communication between a detector and SCU are linked normally.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get connection state with SCU.	
Remarks
Indicating whether communication between the detector and SCU is linked or not. The detector cannot receive signals from a generator if it is not connected with SCU.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		bool bSCUConnected = false;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->IsSCUConnected(&bSCUConnected);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get connection state.
		}
		else
		{
			// Failed to get connection state.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		bool bSCUConnected = false;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

				nResult = pFXRDN.IsSCUConnected(out bSCUConnected);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get connection state.
		}
		else
		{
			// Failed to get connection state.
		}
	}

9.1.48 EnableImageAcquisitionGet
Gets EnableImageAcquisition of the current detector.	
Syntax (C++)
RESULT EnableImageAcquisitionGet (
	_Out_	bool	pbEnable
);
Syntax (C#)
RESULT EnableImageAcquisitionGet (
	Out	bool	pbEnable
);
Parameters
pbEnable [out]
A variable for indicating EnableImageAcquisition state.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get enableImageAcquisition state.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
This function can use by FXRD-2530VW, FXRD-3643VW, FXRD-4343VW only.	
RESULT_ERROR	
Failed to get EnableImageAcquisition state.	
Remarks
This function prevents images from being transmitted to an undesired detector due to AED response when multiple detectors are simultaneously used. The AEDOnOFF function was previously created for the same purpose as the current function, however, a user should manually manipulate the sensor, resulting in the rise of potential problem. Therefore, EnableImageAcquisitionGet is recommended for use.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		bool bEnableImageAcquisition = false;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->EnableImageAcquisitionGet(&bEnableImageAcquisition);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get enableImageAcquisition state.
		}
		else
		{
			// Failed to get enableImageAcquisition state.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		bool bEnableImageAcquisition = false;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD2530_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD3643_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD4343_V:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

				nResult = pFXRDN.EnableImageAcquisitionGet(out bEnableImageAcquisition);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get enableImageAcquisition state.
		}
		else
		{
			// Failed to get enableImageAcquisition state.
		}
	}

9.1.49 EnableImageAcquisitionSet
Changes EnableImageAcquisition of the detector	
Syntax (C++)
RESULT EnableImageAcquisitionSet (
	bool	bEnable
);
Syntax (C#)
RESULT EnableImageAcquisitionSet (
	bool	bEnable
);
Parameters
bEnable [in]
A variable for indicating EnableImageAcquisition state.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set enableImageAcquisition state.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
This function can use by FXRD-2530VW, FXRD-3643VW, FXRD-4343VW only.	
RESULT_ERROR	
Failed to set EnableImageAcquisition state.	
Remarks
This function prevents images from being transmitted to an undesired detector due to AED response when multiple detectors are simultaneously used. The AEDOnOFF function was previously created for the same purpose as the current function, however, a user should manually manipulate the sensor, resulting in the rise of potential problem. Therefore, EnableImageAcquisitionSet is recommended for use.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->EnableImageAcquisitionSet(true);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set enableImageAcquisition state.
		}
		else
		{
			// Failed to set enableImageAcquisition state.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD2530_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD3643_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD4343_V:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

				nResult = pFXRDN.EnableImageAcquisitionSet(true);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set enableImageAcquisition state.
		}
		else
		{
			// Failed to set enableImageAcquisition state.
		}
	}

9.1.50 PerformaceOptionGet
Gets Performance Option of the current detector	
Syntax (C++)
RESULT PerformaceOptionGet (
	_Out_	PERFORMANCE_OPTION	peOption
);
Syntax (C#)
RESULT PerformaceOptionGet (
	Out	PERFORMANCE_OPTION	peOption
);
Parameters
peOption [out]
A variable for indicating Performance Option.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get Performance Option.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
This function can use by FXRD-2530VW, FXRD-3643VW, FXRD-4343VW only.	
RESULT_ERROR	
Failed to get Performance Option.	
Remarks
FXRD-2530VW, FXRD 3643VW, and FXRD-4343VW models can use either High Performance or Battery Saver.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		Vieworks::vivix::PERFORMANCE_OPTION eOption;
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->PerformaceOptionGet(&eOption);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get Performance Option.
		}
		else
		{
			// Failed to get Performance Option.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		Vieworks.vivix.net.PERFORMANCE_OPTION eOption;
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD2530_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD3643_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD4343_V:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

				nResult = pFXRDN. PerformaceOptionGet(out eOption);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get Performance Option.
		}
		else
		{
			// Failed to get Performance Option.
		}
	}

9.1.51 PerformaceOptionSet
Changes Performance Option of the detector.	
Syntax (C++)
RESULT PerformaceOptionSet (
	PERFORMANCE_OPTION	eOption
);
Syntax (C#)
RESULT PerformaceOptionSet (
	PERFORMANCE_OPTION	eOption
);
Parameters
eOption [in]
A variable for indicating Performance Option	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set Performance Option.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
This function can use by FXRD-2530VW, FXRD-3643VW, FXRD-4343VW only.	
RESULT_ERROR	
Failed to set Performance Option.	
Remarks
FXRD-2530VW, FXRD 3643VW, and FXRD-4343VW models can use either High Performance or Battery Saver.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

				nResult = pFXRDN->PerformaceOptionSet(PERFORMANCE_OPTION:: PERFORMANCE_OPTION_HIGH_PERFORMANCE);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set Performance Option.
		}
		else
		{
			// Failed to set Performance Option.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD2530_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD3643_V:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD4343_V:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

				nResult = pFXRDN.PerformaceOptionSet(PERFORMANCE_OPTION. PERFORMANCE_OPTION_HIGH_PERFORMANCE);
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set Performance Option.
		}
		else
		{
			// Failed to set Performance Option.
		}
	}

9.1.52 PackageUpdate
Excutes package udate to the designated file	
Syntax (C++)
RESULT PackageUpdate (
	_In_	const FILE_PATH	strPath
);
Syntax (C#)
RESULT PackageUpdate (
	string	strPath
);
Parameters
strPath [in]
package file path.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to update package.	
RESULT_INVALID_PARAMETER	
[strPath] is not valid or not folder path.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_IO_FILE_OPEN_FAILED	
[strPath] could not open.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_DEVICE_NO_NEEDED_UPDATE	
The latest package is already installed. 	
RESULT_ERROR	
Failed to update package. The file may be broken or not compatible with the current detector. Or, it may be temporary communications disruption. 	
Remarks
This function can be used after opening detector connection.
The package file transmitted via the official distribution channel should be used and updated. PackageUpdate API is returned after the operation is complete. If the program looks stopped from the main thread, try it again from a new thread. 
PackageUpdate takes a long time, and Progress Notification is provided to show the progress. Check the item of NotifyPackageUpdateProgress.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::detector::CDetector* pDetector = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.
	// on new thread

	if(pDetector != NULL)
	{
		switch (pDetector->DetectorClassGet())
		{
		case Vieworks::vivix::DETECTOR_CLASS::DETECTOR_CLASS_FXRDN:
			{
				Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
				pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

			 	pFXRDN->SetNotifyPackageUpdateProgress(NotifyPackageUpdateProgress);

				nResult = pFXRDN->PackageUpdate(_T("C:\\packagefile.vhdr"));
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
		}
		else
		{
		}
	}

void NotifyPackageUpdateProgress(Vieworks::vivix::DETECTOR_ID id, int nProgress)
{
		// Package Update Progress
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.detector.Detector pDetector = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pDetector != null)
	{
		switch (pDetector->DetectorClassGet())
		{
		case Vieworks.vivix.DETECTOR_CLASS.DETECTOR_CLASS_FXRDN:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;
				pFXRDN.SetDelegatePackageUpdateProgress
(OnDelegatePackageUpdateProgress);

				nResult = pFXRDN.PackageUpdate("C:\\packagefile.vhdr");
			}
			break;

		default:
			// Not supported model.
			break;
		}

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
		}
		else
		{
		}
	}

void OnDelegatePackageUpdateProgress(int id, int nProgress)
{
		// Package Update Progress

}

9.1.53 LEDBlinkStateGet
Gets the LEDBlinkState of the current detector	
Syntax (C++)
RESULT LEDBlinkStateGet (
 _Out_ bool pbBlinking
);
Syntax (C#)
RESULT LEDBlinkStateGet (
 Out bool blinking
);
Parameters
pbBlinking [out]
A variable for indicating LEDBlinkState. 	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the state.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
This function can use by FXRD-2530VW, FXRD-3643VW, FXRD-4343VW only.	
RESULT_ERROR	
Failed to get the state.	
Remarks

This function makes LED flicker and identify the relevant detector when multiple VW series detectors are simultaneously used. Flicker stops when the SDK and the detector are disconnected or the blinking state is set to false.  
	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
 Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
 Vieworks::vivix::detector::CDetector* pDetector = NULL;

 // SDK Initialize finished.
 // DetectorGet finished.
 // Open finished.

 if(pDetector != NULL)
 {
  bool bBlinking = false;
  switch (pDetector->DetectorTypeGet())
  {
  case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
  case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
  case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
   {
    Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
    pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

    nResult = pFXRDN->LEDBlinkStateGet(&bBlinking);
   }
   break;

  default:
   // Not supported model.
   break;
  }
 }
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
 Vieworks.vivix.net.detector.Detector pDetector = null;

 // SDK Initialize finished.
 // DetectorGet finished.
 // Open finished.

 if(pDetector != null)
 {
  bool blinking = false;
  switch (pDetector.DetectorTypeGet())
  {
  case Vieworks.vivix.net.DETECTOR_TYPE.FXRD2530_V:
  case Vieworks.vivix.net.DETECTOR_TYPE.FXRD3643_V:
  case Vieworks.vivix.net.DETECTOR_TYPE.VXTD4343_V:
   {
    Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
    pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

    nResult = pFXRDN. LEDBlinkStateGet(out blinking);
   }
   break;

  default:
   // Not supported model.
   break;
  }
 }

9.1.54 LEDBlinkStateSet
Changes LEDBlinkState of the detector	
Syntax (C++)
RESULT LEDBlinkStateSet (
 bool bBlinking
);
Syntax (C+)
text
Parameters
bBlinking [in]
A variable for indicating LED Blink State. 
Return Values	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set the state.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
This function can use by FXRD-2530VW, FXRD-3643VW, FXRD-4343VW only.	
RESULT_ERROR	
Failed to set the state.	
Remarks
This function makes LED flicker and identify the relevant detector when multiple VW series detectors are simultaneously used. Flicker stops when the SDK and the detector are disconnected or the blinking state is set to false.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
 Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
 Vieworks::vivix::detector::CDetector* pDetector = NULL;

 // SDK Initialize finished.
 // DetectorGet finished.
 // Open finished.

 if(pDetector != NULL)
 {
  switch (pDetector->DetectorTypeGet())
  {
  case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
  case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
  case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
   {
    Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
    pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

    nResult = pFXRDN->LEDBlinkStateSet(true);
   }
   break;

  default:
   // Not supported model.
   break;
  }
 }
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
 Vieworks.vivix.net.detector.Detector pDetector = null;

 // SDK Initialize finished.
 // DetectorGet finished.
 // Open finished.

 if(pDetector != null)
 {
  switch (pDetector.DetectorTypeGet())
  {
  case Vieworks.vivix.net.DETECTOR_TYPE.FXRD2530_V:
  case Vieworks.vivix.net.DETECTOR_TYPE.FXRD3643_V:
  case Vieworks.vivix.net.DETECTOR_TYPE.VXTD4343_V:
   {
    Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
    pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

    nResult = pFXRDN. LEDBlinkStateSet(true);
   }
   break;

  default:
   // Not supported model.
   break;
  }
 }

9.1.55 WIFISignalLevelGet
Gets Wifi Signal level of the current detector	
Syntax (C++)
RESULT WIFISignalLevelGet (
 _Out_ WIFI_SIGNAL_LEVELS* peLevels
);
Syntax (C#)
RESULT WIFISignalLevelGet (
 Out WIFI_SIGNAL_LEVELS% levels
);
Parameters
peLevels [out]
A variable for indicating wifi level. 	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the state.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
This function can use by FXRD-2530VW, FXRD-3643VW, FXRD-4343VW only.	
RESULT_ERROR	
Failed to get the state.	
Remarks
This function changes the display mode that indicates the connection status through LCD of the VW series. When it is set to Level 3, the wifi signal strength is displayed as below: 
(Good) (Normal) (Bad) (Unknown)
(level5 (previous icon))
When the detector and SDK are disconnected, it returns to Level 5. When it is set to Level 3, Very Good and Very Bad among the link qualities acquired from the WirelessSignalGet function are unavailable. 	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
 Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
 Vieworks::vivix::detector::CDetector* pDetector = NULL;

 // SDK Initialize finished.
 // DetectorGet finished.
 // Open finished.

 if(pDetector != NULL)
 {
  WIFI_SIGNAL_LEVELS eLvels = WIFI_SIGNAL_5_LEVELS;
  switch (pDetector->DetectorTypeGet())
  {
  case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
  case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
  case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
   {
    Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
    pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

    nResult = pFXRDN->WIFISignalLevelGet(&eLvels);
   }
   break;

  default:
   // Not supported model.
   break;
  }
 }
Examples (C+)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
 Vieworks.vivix.net.detector.Detector pDetector = null;

 // SDK Initialize finished.
 // DetectorGet finished.
 // Open finished.

 if(pDetector != null)
 {
  WIFI_SIGNAL_LEVELS eLvels = WIFI_SIGNAL_5_LEVELS;
  switch (pDetector.DetectorTypeGet())
  {
  case Vieworks.vivix.net.DETECTOR_TYPE.FXRD2530_V:
  case Vieworks.vivix.net.DETECTOR_TYPE.FXRD3643_V:
  case Vieworks.vivix.net.DETECTOR_TYPE.VXTD4343_V:
   {
    Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
    pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

    nResult = pFXRDN. WIFISignalLevelGet(out eLvels);
   }
   break;

  default:
   // Not supported model.
   break;
  }
 }

9.1.56 WIFISignalLevelSet
Changes Wifi Signal level of the detector	
Syntax (C++)
RESULT WIFISignalLevelSet (
 WIFI_SIGNAL_LEVELS eLevels
);
Syntax (C+)
RESULT WIFISignalLevelSet (
 WIFI_SIGNAL_LEVELS eLevels
);
Parameters
eLevels [in]
A variable for indicating Wifi Signal level. 	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set the state.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
This function can use by FXRD-2530VW, FXRD-3643VW, FXRD-4343VW only.	
RESULT_ERROR	
Failed to set the state.	
Remarks
Remarks
This function changes the display mode that indicates the connection status through LCD of the VW series. When it is set to Level 3, the wifi signal strength is displayed as below: 
(Good) (Normal) (Bad) (Unknown)
(level5 (previous icon))
When the detector and SDK are disconnected, it returns to Level 5. When it is set to Level 3, Very Good and Very Bad among the link qualities acquired from the WirelessSignalGet function are unavailable.  	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
 Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
 Vieworks::vivix::detector::CDetector* pDetector = NULL;

 // SDK Initialize finished.
 // DetectorGet finished.
 // Open finished.

 if(pDetector != NULL)
 {
  switch (pDetector->DetectorTypeGet())
  {
  case Vieworks::vivix::DETECTOR_TYPE::FXRD2530_V:
  case Vieworks::vivix::DETECTOR_TYPE::FXRD3643_V:
  case Vieworks::vivix::DETECTOR_TYPE::FXRD4343_V:
   {
    Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
    pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

    nResult = pFXRDN->WIFISignalLevelSet(WIFI_SIGNAL_3_LEVELS);
   }
   break;

  default:
   // Not supported model.
   break;
  }
 }
Examples (C+)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
 Vieworks.vivix.net.detector.Detector pDetector = null;

 // SDK Initialize finished.
 // DetectorGet finished.
 // Open finished.

 if(pDetector != null)
 {
  switch (pDetector.DetectorTypeGet())
  {
  case Vieworks.vivix.net.DETECTOR_TYPE.FXRD2530_V:
  case Vieworks.vivix.net.DETECTOR_TYPE.FXRD3643_V:
  case Vieworks.vivix.net.DETECTOR_TYPE.VXTD4343_V:
   {
    Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
    pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

    nResult = pFXRDN. WIFISignalLevelSet(WIFI_SIGNAL_3_LEVELS);
   }
   break;

  default:
   // Not supported model.
   break;
  }
 }

9.1.57 AccelerationCalibrationByDirection
Calibrates acceleration sensor by the input direction	
Syntax
RESULT AccelerationCalibrationByDirection (ACCELERATION_CAL_DIRECTION direction);
Returns	
Description	
RESULT_SUCCESS	
Acceleration sensor calibration command was sent normally.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
There is no acceleration sensor in the detector.
This detector does not support 6 directional acceleration calibration. 	
RESULT_ERROR	
Failed to send the accelerometer calibration command.	
Remarks
This function can be used after opening detector connection.
It is available to check the progress using the API below.
SetNotify/DelegateAccSensorCalibrationProgress, Notify/DelegateAccSensorCalibrationProgress.
Check the intermediate result with the AccelerationCalBy6PlaneResultGet function to proceed the further process of 6 directional calibration in total. 
Check the description on enum of ACCELERATION_CAL_DIRECTION for direction information. 	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{ 
  nResult = pDetector-> AccelerationCalibrationByDirection(ACCELERATION_CAL_DIRECTION_0_0_PLUS);
}
Examples (C+)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{ 
  nResult = pDetector. AccelerationCalibrationByDirection(ACCELERATION_CAL_DIRECTION_0_0_PLUS);
}

9.1.58 AccelerationCalBy6PlaneResultGet
Gets the calibration result of 6 directional acceleration	
Syntax (C++)
RESULT AccelerationCalBy6PlaneResultGet (ACC_CAL_BY_6PLANE_RESULT* pstResult);
Syntax (C+)
RESULT AccelerationCalBy6PlaneResultGet (out ACC_CAL_BY_6PLANE_RESULT^% result);
Parameters	
union ACC_CAL_BY_6PLANE_RESULT [out] (C++)
union ACC_CAL_BY_6PLANE_RESULT
{
 unsigned short uRaw;
 struct
 {
  unsigned char done1 : 1;
  unsigned char done2 : 1;
  unsigned char done3 : 1;
  unsigned char done4 : 1;
  unsigned char done5 : 1;
  unsigned char done6 : 1;
  unsigned char notUsed1 : 1;
  unsigned char notUsed2 : 1;
  unsigned char error1 : 1;
  unsigned char error2 : 1;
  unsigned char error3 : 1;
  unsigned char error4 : 1;
  unsigned char error5 : 1;
  unsigned char error6 : 1;
  unsigned char notUsed3 : 1;
  unsigned char notUsed4 : 1;
 } result;
}; 
class ACC_CAL_BY_6PLANE_RESULT [out] (C#)
{
public:
 bool done1;
 bool done2;
 bool done3;
 bool done4;
 bool done5;
 bool done6;
 bool notUsed1;
 bool notUsed2;
 bool error1;
 bool error2;
 bool error3;
 bool error4;
 bool error5;
 bool error6;
 bool notUsed3;
 bool notUsed4;
};
Returns	
Description	
RESULT_SUCCESS	
Acceleration sensor calibration command was sent normally.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
There is no acceleration sensor in the detector.
This detector does not support 6 directional acceleration calibration.	
RESULT_ERROR	
Failed to send the accelerometer calibration command.	
Remarks

This function can be used after opening detector connection.
It is available to check the progress using the API below.
SetNotify/DelegateAccSensorCalibrationProgress, Notify/DelegateAccSensorCalibrationProgress.
ACC_CAL_BY_6PLANE_RESULT is composed of 6 dones and 6 error flags. Each field goes with the order of ACCELERATION_CAL_DIRECTION. Once calibration on the acceleration sensor of each direction is complete, “done” change to “true”. If the direction information and the actual status of the detector are different, “erre flag” changes to “true”. Whem the benchmark ACCELERATION_CAL_DIRECTION_0_0_PLUS is calibrated, the calibration results of the other directions are all initialized. Make sure not to halt operation before the calibration on 6 directional acceleration sensor is complete. If not, the obtained value of the accelerator sensor may not be reliable. 
Check the enum description on ACCELERATION_CAL_DIRECTION for details on direction. 	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != NULL)
{ 
  ACC_CAL_BY_6PLANE_RESULT stResult;
  nResult = pDetector-> AccelerationCalBy6PlaneResultGet(&stResult);
}
Examples (C+)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.
// Open finished.

If(pDetector != null)
{ 
  ACC_CAL_BY_6PLANE_RESULT result;
  nResult = pDetector. AccelerationCalBy6PlaneResultGet(out result);
}

9.1.59 PowerSourceGet
Gets the power source of the current detector	
Syntax (C++)
RESULT PowersourceGet (
 _Out_ POWER_SOURCE* pePowerSource
);
Syntax (C+)
RESULT PowersourceGet (
 Out POWER_SOURCE % pePowerSource
);
Parameters
pePowerSource [out]
Current power source of the detector.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the state.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_INVALID_PARAMETER	
Parameter is null pointer.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
 Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
 Vieworks::vivix::detector::CDetector* pDetector = NULL;

 // SDK Initialize finished.
 // DetectorGet finished.
 // Open finished.

 if(pDetector != NULL)
 {
  POWER_SOURCE eSource = WIFI_SIGNAL_5_LEVELS;
  switch (pDetector->DetectorClassGet())
  {
  case Vieworks::vivix::DETECTOR_CLASS::DETECTOR_CLASS_FXRDN:
   {
    Vieworks::vivix::detector::CFXRDN* pFXRDN = NULL;
    pFXRDN = (Vieworks::vivix::detector::CFXRDN*)pDetector;

    nResult = pFXRDN-> PowersourceGet (&eSource);
   }
   break;

  default:
   // Not supported model.
   break;
  }
 }
Examples (C+)
 Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
 Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
 Vieworks.vivix.net.detector.Detector pDetector = null;

 // SDK Initialize finished.
 // DetectorGet finished.
 // Open finished.

 if(pDetector != null)
 {
  POWER_SOURCE source = WIFI_SIGNAL_5_LEVELS;
  switch (pDetector.DetectorTypeGet())
  {
  case Vieworks.vivix.net.DETECTOR_CLASS. DETECTOR_CLASS_FXRDN:
   {
    Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
    pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 

    nResult = pFXRDN. PowersourceGet (out source);
   }
   break;

  default:
   // Not supported model.
   break;
  }
 }

9.1.60 DriveModeCountGet
Acquires the number of drive modes	
Syntax (C++/C#)
RESULT DriveModeCountGet (
	_Out_	int*	count
);
Syntax (C#)
RESULT DriveModeCountGet (
	out	int	count
);
Parameters
count [out]
	A variable for indicating the number of drive modes.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the number of drive modes.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Can be used with drive mode supported models only.	
RESULT_ERROR	
Failed to get the number of drive modes.	
Examples (C++)
 Vieworks::vivix::detector::CDetector* pDetector = NULL;
	// SDK Initialized, DetectorGet done, Open finished, using namespaces.

 int nCount = -1;
	if(pDetector->DetectorClassGet() == DETECTOR_CLASS_FXRDN)
		nResult = ((CFXRDN*)pDetector)->DriveModeCountGet(&nCount);
Examples (C#)	
	Vieworks.vivix.net.detector.Detector Detector = null;
	// SDK Initialized, DetectorGet done, Open finished, using namespaces.

	int count = -1;
	if(Detector. DetectorClassGet() == DETECTOR_CLASS.DETECTOR_CLASS_FXRDN)
		nResult = (Detector as FXRDN).DriveModeCountGet(out count);

9.1.61 DriveModeGet
Acquires the index of the drive mode currently selected.	
Syntax (C++/C#)
RESULT DriveModeGet (
	_Out_	int*	nIndex
);
Syntax (C#)
RESULT DriveModeGet (
	out	int	nIndex
);
Parameters
nIndex [out]
	A variable for indicating the index of the drive mode currently selected.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the number of drive modes.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Can be used with drive mode supported models only.	
RESULT_ERROR	
Failed to get the number of drive modes.	
Examples (C++)
 Vieworks::vivix::detector::CDetector* pDetector = NULL;
	// SDK Initialized, DetectorGet done, Open finished, using namespaces.

 int nDriveMode = -1;
	if(pDetector->DetectorClassGet() == DETECTOR_CLASS_FXRDN)
		nResult = ((CFXRDN*)pDetector)->DriveModeGet(&nDriveMode);
Examples (C#)
	Vieworks.vivix.net.detector.Detector Detector = null;
	// SDK Initialized, DetectorGet done, Open finished, using namespaces.

	int Drivemode = -1;
	if(Detector. DetectorClassGet() == DETECTOR_CLASS.DETECTOR_CLASS_FXRDN)
		Result = (Detector as FXRDN).DriveModeGet(out Drivemode);

9.1.62 DriveModeSet
Selects a drive mode	
Syntax (C++/C#)
RESULT DriveModeSet (
 _In_ int nIndex
);
Syntax (C#)
RESULT DriveModeSet (
 int nIndex
);
Parameters
nIndex [out]
 A variable for indicating the index of the drive mode to select.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the number of drive modes.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Can be used with drive mode supported models only.	
RESULT_ERROR	
Failed to get the number of drive modes.	
Examples (C++)
 Vieworks::vivix::detector::CDetector* pDetector = NULL;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 int nDriveMode = -1;
 if(pDetector->DetectorClassGet() == DETECTOR_CLASS_FXRDN)
  RESULT nResult = ((CFXRDN*)pDetector)->DriveModeSet(nDriveMode);
Examples (C#)
Vieworks.vivix.net.detector.Detector Detector = null;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 int Drivemode = -1;
 if(Detector. DetectorClassGet() == DETECTOR_CLASS.DETECTOR_CLASS_FXRDN)
  RESULT nResult = (Detector as FXRDN).DriveModeSet(Drivemode);

9.1.63 DriveModeChangeProgressGet
Gets the progress of the drive mode change sequence	
Syntax (C++/C#)
RESULT DriveModeChangeProgressGet (
 _Out_ int* pnProgress
);
Syntax (C#)
RESULT DriveModeChangeProgressGet (
 out int progress
);
Parameters
nProgress [out]
 A variable for indicating the progress of the drive mode change sequence.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the number of drive modes.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Can be used with drive mode supported models only.	
RESULT_ERROR	
Failed to get the number of drive modes.	
Examples (C++)
Vieworks::vivix::detector::CDetector* pDetector = NULL;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 int nProgress = -1;
 if(pDetector->DetectorClassGet() == DETECTOR_CLASS_FXRDN)
  RESULT nResult = ((CFXRDN*)pDetector)->DriveModeChangeProgressGet (&nProgress);
Examples (C#)
Vieworks.vivix.net.detector.Detector Detector = null;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 int progress = -1;
 if(Detector. DetectorClassGet() == DETECTOR_CLASS.DETECTOR_CLASS_FXRDN)
  RESULT nResult = (Detector as FXRDN).DriveModeChangeProgressGet(out progress);

9.1.64 DriveModeNameGet
Gets the progress of the drive mode change sequence	
Syntax (C++/C#)
RESULT DriveModeChangeProgressGet (
	_In_	int			nIndex,
	_Out_	DRIVE_MODE_NAME*	pszName
);
Syntax (C#)
RESULT DriveModeChangeProgressGet (
  int nIndex,
 out String name
);
Parameters
nIndex [In]
 A variable for indicating the index of the drive mode.
name [out]
 Name for the drive mode.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the number of drive modes.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Can be used with drive mode supported models only.	
RESULT_ERROR	
Failed to get the number of drive modes.	
Examples (C++)
Vieworks::vivix::detector::CDetector* pDetector = NULL;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 DRIVE_MODE_NAME szName = {0,};
 if(pDetector->DetectorClassGet() == DETECTOR_CLASS_FXRDN)
  RESULT nResult = ((CFXRDN*)pDetector)->DriveModeNameGet(0,&szName);
Examples (C#)
 Vieworks.vivix.net.detector.Detector Detector = null;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 String name;
 if(Detector. DetectorClassGet() == DETECTOR_CLASS.DETECTOR_CLASS_FXRDN)
  RESULT nResult = (Detector as FXRDN).DriveModeNameGet(0, out name);

9.1.65 AcquisitionModeGet
Gets the acquisition mode	
Syntax (C++/C#)
RESULT AcquisitionModeGet (
 _Out_ ACQUISITION_MODE * peAcqMode;
);
Syntax (C#)
RESULT AcquisitionModeGet (,
 out ACQUISITION_MODE eAcqMode;
);
Parameters
eAcqMode [Out]
 A variable for indicating the acquisition mode.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the number of drive modes.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Can be used with drive mode supported models only.	
RESULT_ERROR	
Failed to get the number of drive modes.	
Examples (C++)
 Vieworks::vivix::detector::CDetector* pDetector = NULL;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 ACQUISITION_MODE eAcqMode = ACQUISITION_MODE_RADIO;
 if(pDetector->DetectorClassGet() == DETECTOR_CLASS_FXRDN)
  RESULT nResult = ((CFXRDN*)pDetector)->AcquisitionModeGet(&eAcqMode);
Examples (C#)
 Vieworks.vivix.net.detector.Detector Detector = null;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 ACQUISITION_MODE acqMode;
 if(Detector. DetectorClassGet() == DETECTOR_CLASS.DETECTOR_CLASS_FXRDN)
  RESULT nResult = (Detector as FXRDN). AcquisitionModeGet(out acqMode);

9.1.66 BinningModeGet
Gets the binning mode	
Syntax (C++/C#)
RESULT BinningModeGet (
 _Out_ BINNING_MODE* peBinningMode;
);
Syntax (C#)
RESULT BinningModeGet (,
 out BINNING _MODE eBinningMode;
);
Parameters
eBinningMode [Out]
 A variable for indicating the binning mode.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the number of drive modes.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Can be used with drive mode supported models only.	
RESULT_ERROR	
Failed to get the number of drive modes.	
Examples (C++)
 Vieworks::vivix::detector::CDetector* pDetector = NULL;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 BINNING_MODE eBinningMode = BINNING_MODE_NONE;
 if(pDetector->DetectorClassGet() == DETECTOR_CLASS_FXRDN)
  RESULT nResult = ((CFXRDN*)pDetector)->BinningModeGet(&eBinningMode);
Examples (C#)
 Vieworks.vivix.net.detector.Detector Detector = null;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 BINNING_MODE eBinningMode;
 if(Detector. DetectorClassGet() == DETECTOR_CLASS.DETECTOR_CLASS_FXRDN)
  RESULT nResult = (Detector as FXRDN).BinningModeGet(out eBinningMode);

9.1.67 AoiOffsetGet
Gets the starting position of the area of interest	
Syntax (C++/C#)
RESULT AoiOffsetGet (
 _Out_ int* pnOffsetX;
 _Out_ int* pnOffsetY’
);
Syntax (C#)
RESULT AoiOffsetGet (,
 out int offsetX;
 out int offsetY’
);
Parameters
nOffsetX, nOffsetY [out]
 Variables for indicating the starting X, Y position of the area of interest.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the number of drive modes.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Can be used with drive mode supported models only.	
RESULT_ERROR	
Failed to get the number of drive modes.	
Examples (C++)
 Vieworks::vivix::detector::CDetector* pDetector = NULL;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 int nOffsetX = -1, nOffsetY = -1;
 if(pDetector->DetectorClassGet() == DETECTOR_CLASS_FXRDN)
  RESULT nResult = ((CFXRDN*)pDetector)->AoiOffsetGet(&nOffsetX, &nOffsetY);
Examples (C#)
 Vieworks.vivix.net.detector.Detector Detector = null;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 int nOffsetX = -1, nOffsetY = -1;
 if(Detector. DetectorClassGet() == DETECTOR_CLASS.DETECTOR_CLASS_FXRDN)
  RESULT nResult = (Detector as FXRDN).AoiOffsetGet(out nOffsetX, out nOffsetY);

9.1.68 AoiSizeGet
Gets the size of the area of interest	
Syntax (C++/C#)
RESULT AoiSizeGet (
 _Out_ int* pnWidth;
 _Out_ int* pnHeight’
);
Syntax (C#)
RESULT AoiSizeGet (,
 out int width
 out int height
);
Parameters
nWIdth, nHeight [out]
 Variables for indicating the size of the area of interest.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the number of drive modes.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Can be used with drive mode supported models only.	
RESULT_ERROR	
Failed to get the number of drive modes.	
Examples (C++)
 Vieworks::vivix::detector::CDetector* pDetector = NULL;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 int nWidth = -1, nHeight = -1;
 if(pDetector->DetectorClassGet() == DETECTOR_CLASS_FXRDN)
  RESULT nResult = ((CFXRDN*)pDetector)-> AoiSizeGet(&nWidth, &nHeight);
Examples (C#)
 Vieworks.vivix.net.detector.Detector Detector = null;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 int width, height;
 if(Detector. DetectorClassGet() == DETECTOR_CLASS.DETECTOR_CLASS_FXRDN)
  RESULT nResult = (Detector as FXRDN).AoiSizeGet(out width, out height);

9.1.69 MaxAoiSizeGet
Gets the max size of the area of interest	
Syntax (C++/C#)
RESULT MaxAoiSizeGet (
 _Out_ int* pnWidth;
 _Out_ int* pnHeight’
);
Syntax (C#)
RESULT MaxAoiSizeGet (,
 out int width
 out int height
);
Parameters
nWIdth, nHeight [out]
 Variables for indicating the max size of the area of interest.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the number of drive modes.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Can be used with drive mode supported models only.	
RESULT_ERROR	
Failed to get the number of drive modes.	
Remarks
The max AOI size is equivalent with the original binning applied image size.	
Examples (C++)
 Vieworks::vivix::detector::CDetector* pDetector = NULL;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 int nWidth = -1, nHeight = -1;
 if(pDetector->DetectorClassGet() == DETECTOR_CLASS_FXRDN)
  RESULT nResult = ((CFXRDN*)pDetector)->MaxAoiSizeGet(&nWidth, &nHeight);
Examples (C#)
 Vieworks.vivix.net.detector.Detector Detector = null;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.
 int width, height;
 if(Detector. DetectorClassGet() == DETECTOR_CLASS.DETECTOR_CLASS_FXRDN)
  RESULT nResult = (Detector as FXRDN).MaxAoiSizeGet(out width, out height);

9.1.70 FrameRateGet
Gets the frame rate	
Syntax (C++/C#)
RESULT FrameRateGet (
 _Out_ double* pfFrameRate;
);
Syntax (C#)
RESULT FrameRateGet (,
 out double frameRate
);
Parameters
frameRate [out]
 A variable for indicating the frame rate. (fps)	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the number of drive modes.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Can be used with drive mode supported models only.	
RESULT_ERROR	
Failed to get the number of drive modes.	
Examples (C++)
 Vieworks::vivix::detector::CDetector* pDetector = NULL;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces

 float fFrameRate = 0.0;
 if(pDetector->DetectorClassGet() == DETECTOR_CLASS_FXRDN)
  RESULT nResult = ((CFXRDN*)pDetector)->FrameRateGet(&fFrameRate);
Examples (C#)
 Vieworks.vivix.net.detector.Detector Detector = null;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 float frameRate;
 if(Detector. DetectorClassGet() == DETECTOR_CLASS.DETECTOR_CLASS_FXRDN)
  RESULT nResult = (Detector as FXRDN).FrameRateGet(out frameRate);

9.1.71 FrameCountGet
Gets the frame count	
Syntax (C++/C#)
RESULT FrameRateGet (
 _Out_ int* pnFrameCount;
);
Syntax (C#)
RESULT FrameRateGet (,
 out int frameCount
);
Parameters
frameCount [out]
 A variable for indicating the number of images to acquire on a multi-frame acquisition sequence.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the number of drive modes.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_NOT_SUPPORTED_MODEL	
Can be used with drive mode supported models only.	
RESULT_ERROR	
Failed to get the number of drive modes.	
Examples (C++)
Vieworks::vivix::detector::CDetector* pDetector = NULL;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces

 int nFrameCount = 0;
 if(pDetector->DetectorClassGet() == DETECTOR_CLASS_FXRDN)
  RESULT nResult = ((CFXRDN*)pDetector)->FrameCountGet(&nFrameCount);
Examples (C#)
Vieworks.vivix.net.detector.Detector Detector = null;
 // SDK Initialized, DetectorGet done, Open finished, using namespaces.

 int frameCount = 0;
 if(Detector. DetectorClassGet() == DETECTOR_CLASS.DETECTOR_CLASS_FXRDN)
  RESULT nResult = (Detector as FXRDN).FrameCountGet(out frameCount);

9.2 Callback Notification Setting Function


9.2.1 SetNotifyPowerWarning / SetDelegatePowerWarning
Sets NotifyPowerWarning / DelegatePowerWarning notification	
Syntax (C++)
void SetNotifyPowerWarning (
	_In_	NotifyPowerWarning	pNotify
);
Syntax (C#)
void SetDelegatePowerWarning (
	DelegatePowerWarning	val
);
Parameters
pNotify [in]
NotifyPowerWarning
val [in]
DelegatePowerWarning	
Remarks
Refer to ‘detector::NotifyPowerWarning’.
Refer to ‘detector.DelegatePowerWarning’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)->SetNotifyPowerWarning(NotifyPowerWarning);
			}
			break;
		default:
			// Not supported model
			break;
		}
}

void NotifyPowerWarning(Vieworks::vivix::DETECTOR_ID id, VOLTAGE_STATUS status)
{
		switch(status)
		{
		case Vieworks::vivix::VOLTAGE_STATUS::VOLTAGE_WARNING:
			{
				// Voltage warning
			}
			break;

		case Vieworks::vivix::VOLTAGE_STATUS::VOLTAGE_POWER_OFF:
			{
				// Power off
			}
			break;

		case Vieworks::vivix::VOLTAGE_HIBERNATE:
			{
				// Hibernate
			}
			break;
		default:
			{
				// Invalid Voltage Status
			}
			break;
		}
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SetDelegatePowerWarning(OnDelegatePowerWarning);
			}
			break;
		default:
			// Not supported model
			break;
		}
}

void OnDelegatePowerWarning(int id, VOLTAGE_STATUS status)
{
		switch(status)
		{
		case Vieworks.vivix.net.VOLTAGE_STATUS.VOLTAGE_WARNING:
			{
				// Voltage warning
			}
			break;

		case Vieworks.vivix.net.VOLTAGE_STATUS.VOLTAGE_POWER_OFF:
			{
				// Power off
			}
			break;

		case Vieworks.vivix.net.VOLTAGE_HIBERNATE:
			{
				// Hibernate
			}
			break;
		default:
			{
				// Invalid Voltage Status
			}
			break;
		}
}

9.2.2 SetNotifySleep / SetDelegateSleep
Sets NotifySleep / DelegateSleep notification	
Syntax (C++)
void SetNotifySleep (
	_In_	NotifySleep	pNotify
);
Syntax (C#)
void SetDelegateSleep (
	DelegateSleep	val
);
Parameters
pNotify [in]
NotifySleep
val [in]
DelegateSleep	
Remarks
Refer to ‘detector::NotifySleep’.
Refer to ‘detector.DelegateSleep’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)->SetNotifySleep(NotifySleep);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifySleep(Vieworks::vivix::DETECTOR_ID id)
{
		// Detector is in sleep state
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SetDelegateSleep(OnDelegateSleep);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateSleep(int id)
{
		// Detector is in sleep state
}

9.2.3 SetNotifyWakeUp / SetDelegateWakeUp
Sets NotifyWakeUp / DelegateWakeUp notification	
Syntax (C++)
void SetNotifyWakeUp (
	_In_	NotifyWakeUp	pNotify
);
Syntax (C#)
void SetDelegateWakeUp (
	DelegateWakeUp	val
);
Parameters
pNotify [in]
NotifyWakeUp
val [in]
DelegateWakeUp	
Remarks
Refer to ‘detector::NotifyWakeUp’.
Refer to ‘detector.DelegateWakeUp’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)->SetNotifyWakeUp(NotifyWakeUp);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyWakeUp(Vieworks::vivix::DETECTOR_ID id)
{
		// The detector is turned out from the Sleep status to the normal
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012-N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SetDelegateWakeUp(OnDelegateWakeUp);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateWakeUp(int id)
{
		// The detector is turned out from the Sleep status to the normal
}

9.2.4 SetNotifyKeepAlive / SetDelegateKeepAlive
Sets NotifyKeepAlive / DelegateKeepAlive notification	
Syntax (C++)
void SetNotifyKeepAlive (
	_In_	NotifyKeepAlive	pNotify
);
Syntax (C#)
void SetDelegateKeepAlive (
	DelegateKeepAlive	val
);
Parameters
pNotify [in]
NotifyKeepAlive
val [in]
DelegateKeepAlive	
Remarks
Refer to ‘detector::NotifyKeepAlive’.
Refer to ‘detector.DelegateKeepAlive’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)->SetNotifyKeepAlive(NotifyKeepAlive);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyKeepAlive(Vieworks::vivix::DETECTOR_ID id, double temperature, Vieworks::vivix::CONNECTION_INTERFACE interfaceType, Vieworks::vivix::WIRELESS_SIGNAL_QUALITY wirelessQuality, unsigned int linkQuality, Vieworks::vivix::BATTERY_REMAIN_LEVEL batteryRemain, unsigned int batteryGauge)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SetDelegateKeepAlive(OnDelegateKeepAlive);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateKeepAlive(int id, double temperature, Vieworks.vivix.net.CONNECTION_INTERFACE interfaceType, Vieworks.vivix.net.WIRELESS_SIGNAL_QUALITY wirelessQuality, uint linkQuality, Vieworks.vivix.net.BATTERY_REMAIN_LEVEL batteryRemain, uint batteryGauge)
{
}

9.2.5 SetNotifyLogDownloadState / SetDelegateLogDownloadState
Sets NotifyLogDownloadState / DelegateLogDownloadState notification	
Syntax (C++)
void SetNotifyLogDownloadState(
	_In_	NotifyLogDownloadState	pNotify
);
Syntax (C#)
void SetDelegateLogDownloadState(
	DelegateLogDownloadState		val
);
Parameters
pNotify [in]
NotifyLogDownloadState
val [in]
DelegateLogDownloadState	
Remarks
Refer to ‘detector::NotifyLogDownloadState’.
Refer to ‘detector.DelegateLogDownloadState’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)->SetNotifyLogDownloadState(NotifyLogDownloadState);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyLogDownloadState(Vieworks::vivix::DETECTOR_ID id, int currentStep, int totalStep, bool success)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SetDelegateLogDownloadState
(OnDelegateLogDownloadState);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateLogDownloadState(int id, int currentStep, int totalStep, bool success)
{
}

9.2.6 SetNotifyLogDownloadResult / SetDelegateLogDownloadResult
Sets NotifyLogDownloadResult / DelegateLogDownloadResult notification	
Syntax (C++)
void SetNotifyLogDownloadResult(
	_In_	NotifyLogDownloadResult	pNotify
);
Syntax (C#)
void SetDelegateLogDownloadResult(
	DelegateLogDownloadResult	val
);
Parameters
pNotify [in]
NotifyLogDownloadResult
val [in]
DelegateLogDownloadResult	
Remarks
Refer to ‘detector::NotifyLogDownloadResult’.
Refer to ‘detector.DelegateLogDownloadResult’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)->SetNotifyLogDownloadResult(NotifyLogDownloadResult);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyLogDownloadResult(Vieworks::vivix::DETECTOR_ID id, bool success)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SetDelegateLogDownloadResult
(OnDelegateLogDownloadResult);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateLogDownloadResult(int id, bool success)
{
}

9.2.7 SetNotifyReboot / SetDelegateReboot
Sets NotifyReboot / DelegateReboot notification	
Syntax (C++)
void SetNotifyReboot(
	_In_	NotifyReboot	pNotify
);
Syntax (C#)
void SetDelegateReboot(
	DelegateReboot	val
);
Parameters
pNotify [in]
NotifyReboot
val [in]
DelegateReboot	
Remarks
Refer to ‘detector::NotifyReboot’.
Refer to ‘detector.DelegateReboot’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)->SetNotifyReboot(NotifyReboot);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyReboot(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::REBOOT_STATUS rebootStatus)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SetDelegateReboot(OnDelegateReboot);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateReboot(int id, Vieworks.vivix.net.REBOOT_STATUS rebootStatus)
{
}

9.2.8 SetNotifySelfDiagnosisTimeout / SetDelegateSelfDiagnosisTimeout
Sets NotifySelfDiagnosisTimeout / DelegateSelfDiagnosisTimeout notification	
Syntax (C++)
void SetNotifySelfDiagnosisTiemout(
	_In_	NotifySelfDiagnosisTimeout		pNotify
);
Syntax (C#)
void SetDelegateSelfDiagnosisTiemout(
	DelegateSelfDiagnosisTimeout		val
);
Parameters
pNotify [in]
NotifySelfDiagnosisTimeout
val [in]
DelegateSelfDiagnosisTimeout	
Remarks
Refer to ‘detector::NotifySelfDiagnosisTimeout’.
Refer to ‘detector.DelegateSelfDiagnosisTimeout’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)->SetNotifySelfDiagnosisTimeout(NotifySelfDiagnosisTimeout);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifySelfDiagnosisTimeout(Vieworks::vivix::DETECTOR_ID id)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SetDelegateSelfDiagnosisTimeout
(OnDelegateSelfDiagnosisTimeout);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateSelfDiagnosisTimeout(int id)
{
}

9.2.9 SetNotifySelfDiagnosisItemResult / SetDelegateSelfDiagnosisItemResult
Sets NotifySelfDiagnosisItemResult / DelegateSelfDiagnosisItemResult notification	
Syntax (C++)
void SetNotifySelfDiagnosisItemResult (
	_In_	NotifySelfDiagnosisItemResult	pNotify
);
Syntax (C#)
void SetDelegateSelfDiagnosisItemResult (
	DelegateSelfDiagnosisItemResult	val
);
Parameters
pNotify [in]
NotifySelfDiagnosisItemResult
val [in]
DelegateSelfDiagnosisItemResult	
Remarks
Refer to ‘detector::NotifySelfDiagnosisItemResult’.
Refer to ‘detector.DelegateSelfDiagnosisItemResult’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)->SetNotifySelfDiagnosisResult(NotifySelfDiagnosisResult);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifySelfDiagnosisResult(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::SELF_DIAGNOSIS_RESULT* result)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SetDelegateSelfDiagnosisResult
(OnDelegateSelfDiagnosisResult);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateSelfDiagnosisResult(int id, Vieworks.vivix.net.SELF_DIAGNOSIS_RESULT* result)
{
}

9.2.10 SetNotifySelfDiagnosisItemDone / SetDelegateSelfDiagnosisItemDone
Sets NotifySelfDiagnosisItemDone / DelegateSelfDiagnosisItemDone notification	
Syntax (C++)
void SetNotifySelfDiagnosisDone (
	_In_	NotifySelfDiagnosisDone	pNotify
);
Syntax (C#)
void SetDelegateSelfDiagnosisDone (
	DelegateSelfDiagnosisDone	val
);
Parameters
pNotify [in]
NotifySelfDiagnosisItemDone
val [in]
DelegateSelfDiagnosisItemDone	
Remarks
Refer to ‘detector::NotifySelfDiagnosisDone’.
Refer to ‘detector.DelegateSelfDiagnosisDone’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)->SetNotifySelfDiagnosisDone(NotifySelfDiagnosisDone);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifySelfDiagnosisDone(Vieworks::vivix::DETECTOR_ID id, Vieworks::vivix::SELF_DIAGNOSIS_DONE_TYPE type, Vieworks::vivix::SELF_DIAGNOSIS_REPORT* report)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		Case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		Case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SetDelegateSelfDiagnosisDone
(OnDelegateSelfDiagnosisDone);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateSelfDiagnosisDone(int id, Vieworks.vivix.net.SELF_DIAGNOSIS_DONE_TYPE type, Vieworks.vivix.net.SELF_DIAGNOSIS_REPORT* report)
{
}

9.2.11 SetNotifyShockReportDownloadState / SetDelegateShockReportDownloadState
Sets NotifyShockReportDownloadState / DelegateShockReportDownloadState notification	
Syntax (C++)
void SetNotifyShockReportDownloadState(
	_In_	NotifyShockReportDownloadState	pNotify
);
Syntax (C#)
void SetDelegateShockReportDownloadState(
	DelegateShockReportDownloadState		val
);
Parameters
pNotify [in]
NotifyShockReportDownloadState
val [in]
DelegateShockReportDownloadState	
Remarks
Refer to ‘detector::NotifyShockReportDownloadState’.
Refer to ‘detector.DelegateShockReportDownloadState’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)->SetNotifyShockReportDownloadState(NotifyShockReportDownloadState);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyShockReportDownloadState(Vieworks::vivix::DETECTOR_ID id, int currentStep, int totalStep, bool success)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SetDelegateShockReportDownloadState
(OnDelegateShockReportDownloadState);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateShockReportDownloadState(int id, int currentStep, int totalStep, bool success)
{
}

9.2.12 SetNotifyShockReportDownloadResult / SetDelegateShockReportDownloadResult
Sets NotifyShockReportDownloadResult / DelegateShockReportDownloadResult notification	
Syntax (C++)
void SetNotifyShockReportDownloadResult(
	_In_	NotifyShockReportDownloadResult	pNotify
);
Syntax (C#)
void SetDelegateShockReportDownloadResult(
	DelegateShockReportDownloadResult	val
);
Parameters
pNotify [in]
NotifyShockReportDownloadResult
val [in]
DelegateShockReportDownloadResult	
Remarks
Refer to ‘detector::NotifyShockReportDownloadResult’.
Refer to ‘detector.DelegateShockReportDownloadResult’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)->SetNotifyShockReportDownloadResult(NotifyShockReportDownloadResult);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyShockReportDownloadResult(Vieworks::vivix::DETECTOR_ID id, bool success)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != null)
{	
		switch(pDetector.DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN;

				nResult = pFXRDN.SetDelegateShockReportDownloadResult
(OnDelegateShockReportDownloadResult);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateShockReportDownloadResult(int id, bool success)
{
}

9.2.13 SetNotifyImageTransmissionDelayed / SetDelegateImageTransmissionDelayed
Sets NotifyImageTransmissionDelayed / DelegateImageTransmissionDelayed notification	
Syntax (C++)
void SetNotifyImageTransmissionDelayed (
	_In_	NotifyImageTransmissionDelayed	pNotify
);
Syntax (C#)
void SetDelegateImageTransmissionDelayed (
	DelegateImageTransmissionDelayed	val
);
Parameters
pNotify [in]
NotifyImageTransmissionDelayed
val [in]
DelegatemageTransmissionDelayed	
Remarks
  • Refer to ‘detector::NotifyImageTransmissionDelayed'.	
  • Refer to ‘detector.DelegateImageTransmissionDelayed'.	
  • The "ImageTransmissionDelayed" feature of the N-type model is not yet implemented.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1012_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1417_N:
		case Vieworks::vivix::DETECTOR_TYPE::FXRD1717_N:
		case Vieworks::vivix::DETECTOR_TYPE::VXTD2532_E:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)-> SetNotifyImageTransmissionDelayed(NotifyImageTransmissionDelayed);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyImageTransmissionDelayed(Vieworks::vivix::DETECTOR_ID id)
{
		// Image Transmission Delayed
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorTypeGet())
		{
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1012_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1417_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.FXRD1717_N:
		case Vieworks.vivix.net.DETECTOR_TYPE.VXTD2532_E:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 
				pFXRDN.SetDelegateImageTransmissionDelayed
(OnDelegateImageTransmissionDelayed);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegateImageTransmissionDelayed(int id)
{
		// Image Transmission Delayed
}

9.2.14 SetNotifyPackageUpdateProgress / SetDelegatePackageUpdateProgress
Sets NotifyPackageUpdateProgress/DelegatePackageUpdateProgress notification	
Syntax (C++)
void SetNotifyPackageUpdateProgress (
	_In_	NotifyPackageUpdateProgress	pNotify
);
Syntax (C#)
void SetDelegatePackageUpdateProgress (
	DelegatePackageUpdateProgress	val
);
Parameters
pNotify [in]
NotifyPackageUpdateProgress
val [in]
DelegatePackageUpdateProgress	
Remarks
  • Refer to ‘detector::NotifyPackageUpdateProgress.	
  • Refer to ‘detector.DelegatePackageUpdateProgress.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::CDetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

if(pDetector != NULL)
{	
		switch(pDetector->DetectorClassGet())
		{
		case Vieworks::vivix::DETECTOR_CLASS::DETECTOR_CLASS_FXRDN:
			{
				((Vieworks::vivix::detector::FXRDN*)pDetector)-> SetNotifyPackageUpdateProgress(NotifyPackageUpdateProgress);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void NotifyPackageUpdateProgress(Vieworks::vivix::DETECTOR_ID id, int nProgress)
{
		// Package Update Progress
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

If(pDetector != NULL)
{	
		Switch(pDetector->DetectorClassGet())
		{
		case Vieworks.vivix.net.DETECTOR_CLASS.DETECTOR_CLASS_FXRDN:
			{
				Vieworks.vivix.net.detector.FXRDN pFXRDN = null;
				pFXRDN = pDetector as Vieworks.vivix.net.detector.FXRDN; 
				pFXRDN.SetDelegatePackageUpdateProgress
(OnDelegatePackageUpdateProgress);
			}
			break;

		default:
			// Not supported model
			break;
		}
}

void OnDelegatePackageUpdateProgress (int id, int nProgress)
{
		// Package Update Progress
}

9.2.15 SetNotifyDriveModeChanged / Set DelegateDriveModeChanged
Sets NotifyDriveModeChanged notification
Syntax (C++)
void SetNotifyDriveModeChanged (
	_In_	NotifyDriveModeChanged	pNotify
);
Syntax (C#)
void SetDelegateDriveModeChanged (
DelegateDriveModeChanged	val
);
Parameters
pNotify [in]
NotifyDriveModeChanged
val [in]
DelegateDriveModeChanged

Remarks
Refer to ‘detector::NotifyDriveModeChanged’.
Refer to ‘detector.DelegateDriveModeChanged’.

Examples(C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::detector::Cdetector* pDetector = NULL;

// SDK Initialize finished.
// DetectorGet finished.

pDetector->SetNotifyDriveModeChanged(NotifyDriveModeChanged);

void NotifyDriveModeChanged(Vieworks::vivix::DETECTOR_ID id, int nDriveModeIndex)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.detector.Detector pDetector = null;

// SDK Initialize finished.
// DetectorGet finished.

pDetector.SetDelegateDriveModeChanged(OnDelegateDriveModeChanged);

void OnDelegateDriveModeChanged(int id, int DriveModeIndex)
{
}	

9.3 Callback Notification Function


9.3.1 detector::NotifyPowerWarning / detector.DelegatePowerWarning
Notifies the warning of wireless detector power	
Syntax (C++)
void detector::NotifyPowerWarning (
	_In_	DETECTOR_ID		id,
	_In_	VOLTAGE_STATUS		status
);
Syntax (C#)
void detector.DelegatePowerWarning (
	int			id,
	VOLTAGE_STATUS		status
);
Parameters
id [in]
Detector ID
status [in]
Detector voltage status	

9.3.2 detector::NotifySleep / detector.DelegateSleep
Notifies the wireless detector entering sleep mode	
Syntax (C++)
void NotifySleep (
	_In_	DETECTOR_ID	id
);
Syntax (C#)
void DelegateSleep (
	int	id
);
Parameters
id [in]
Detector ID	

9.3.3 detector::NotifyWakeUp / detector.DelegateWakeUp
Notifies the wireless detector waking up	
Syntax (C++)
void detector::NotifyWakeUp (
	_In_	DETECTOR_ID	id
);
Syntax (C#)
void detector.DelegateWakeUp (
	int	id
);
Parameters
id [in]
Detector ID	
Remarks
This notification is called when the detector wakes up from the sleep state completely.	

9.3.4 detector::NotifyKeepAlive / detector.DelegateKeepAlive
Notifies the wireless detector keeping alive	
Syntax (C++)
void detector::NotifyKeepAlive (
	_In_	DETECTOR_ID			id,
	_In_	double				temperature, 
	_In_	CONNECTION_INTERFACE		interfaceType,
	_In_	WIRELESS_SIGNAL_QUALITY	wirelessQuality,
	_In_	uint				linkQuality
	_In_	BATTERY_REMAIN_LEVEL		batteryRemain,
	_In_	uint				batteryGauge
);
Syntax (C#)
void detector.DelegateKeepAlive (
	int				id,
	double				temperature, 
	CONNECTION_INTERFACE		interfaceType,
	WIRELESS_SIGNAL_QUALITY	wirelessQuality,
	uint				linkQuality
	BATTERY_REMAIN_LEVEL		batteryRemain,
	uint				batteryGauge
);
Parameters
id [in]
Detector ID
temperature [in]
Temperature of detector
interfaceType [in]
Detector interface type
wirelessQuality [in]
Wireless signal quality.
batteryRemain [in]
Battery remain level
batteryGauge [in]
Battery remain gauge	
Remarks
This notification is delivered every 2 seconds.	

9.3.5 detector::NotifyLogDownloadState/ detector.DelegateLogDownloadState
Notifies the download state	
Syntax (C++)
void detector:: NotifyLogDownloadState (
	_In_	DETECTOR_ID	id,
	_In_	int		currentStep,
	_In_	int		totalStep,
	_In_	bool		success
);
Syntax (C#)
void detector. DelegateLogDownloadState (
	int		id,
	int		currentStep,
	int		totalStep,
	bool		success
);
Parameters
id [in]
Detector ID
currentStep [in]
Current step
totalStep [in]
Total step
success [in]
Download state	

9.3.6 detector::NotifyLogDownloadResult / detector.DelegateLogDownloadResult
Notifies the download result	
Syntax (C++)
void detector::NotifyLogDownloadResult (
	_In_	DETECTOR_ID	id,
	_In_	bool		success
);
Syntax (C#)
void detector.DelegateLogDownloadResult (
	int		id,
	bool		success
);
Parameters
id [in]
Detector ID
success [in]
Download result	

9.3.7 detector::NotifyReboot / detector.DelegateReboot
Notifies the process of detector rebooting	
Syntax (C++)
void detector::NotifyReboot (
	_In_	DETECTOR_ID		id,
	_In_	REBOOT_STATUS		rebootStatus
);
Syntax (C#)
void detector.DelegateReboot (
	int			id,
	REBOOT_STATUS		rebootStatus
);
Parameters
id [in]
Detector ID
rebootStatus [in]
Reboot status	

9.3.8 detector::NotifySelfDiagnosisTimeout / detector.DelegateSelfDiagnosisTimeout
Notifies Self-diagnostic timeout	
Syntax (C++)
void detector::NotifySelfDiagnosisTimeout (
	_In_	DETECTOR_ID	id,
);
Syntax (C#)
void detector.DelegateSelfDiagnosisTimeout (
	int	id,
);
Parameters
id [in]
Detector ID	

9.3.9 detector::NotifySelfDiagnosisItemResult / detector.DelegateSelfDiagnosisItemResult
Notifies the information on self-diagnostic progress	
Syntax (C++)
void detector::NotifySelfDiagnosisItemResult (
	_In_	DETECTOR_ID		id,
	_In_	SELF_DIAGNOSIS_RESULT*	result
);
Syntax (C#)
void detector.DelegateSelfDiagnosisItemResult (
	int			id,
	SELF_DIAGNOSIS_RESULT	result
);
Parameters
id [in]
Detector ID
result [in]
Self-diagnosis result	
Remarks
When each self-diagnosis item is finished, the result transmitted using this function.	

9.3.10 detector::NotifySelfDiagnosisDone / detector.DelegateSelfDiagnosisDone
Notifies the result of Self-diagnosis	
Syntax (C++)
void detector::NotifySelfDiagnosisDone (
	_In_	DETECTOR_ID			id,
	_In_	SELF_DIAGNOSIS_DONE_TYPE	type,
	_In_	SELF_DIAGNOSIS_REPORT*		report
);
Syntax (C#)
void detector.DelegateSelfDiagnosisDone (
	int				id,
	SELF_DIAGNOSIS_DONE_TYPE	type,
	SELF_DIAGNOSIS_REPORT		report
);
Parameters
id [in]
Detector ID
type [in]
Self-diagnosis done type
report [in]
Self-diagnosis report array	
Remarks
When all item is finished, the total result transmitted using this function.	

9.3.11 detector::NotifyShockReportDownloadState / detector.DelegateShockReportDownloadState
Notifies the downloading state of shock report	
Syntax (C++)
void detector::NotifyShockReportDownloadState (
	_In_	DETECTOR_ID	id,
	_In_	int		currentStep,
	_In_	int		totalStep,
	_In_	bool		success
);
Syntax (C#)
void detector.DelegateShockReportDownloadState (
	int		id,
	int		currentStep,
	int		totalStep,
	bool		success
);
Parameters
id [in]
Detector ID
currentStep [in]
Number of current downloaded shock report
totalStep [in]
Total number of shock report
success [in]
Download result	

9.3.12 detector::NotifyShockReportDownloadResult / detector.DelegateShockReportDownloadResult
Notifies the download result	
Syntax (C++)
void detector::NotifyShockReportDownloadResult (
	_In_	DETECTOR_ID	id,
	_In_	bool	success
);
Syntax (C#)
void detector.DelegateShockReportDownloadResult (
	int	id,
	bool	success
);
Parameters
id [in]
Detector ID
success [in]
Download result	

9.3.13 detector::NotifyImageTransmissionDelayed / detector.DelegateImageTransmissionDelayed
Notifies the delay of image transmission	
Syntax (C++)
void detector::NotifyImageTransmissionDelayed(
	_In_	DETECTOR_ID		id
);
Syntax (C#)
void detector.DelegateImageTransmissionDelayed(
	int			id
);
Parameters
id [in]
Detector ID	
Remarks
If image transmission is delayed while the SDK is getting images, the relevant notification is called.	

9.3.14 detector::NotifyDriveModeChanged / detector.DelegateDriveModeChanged
Notifies that the drive mode has changed.
Syntax (C++)
void detector:: NotifyDriveModeChanged (
	_In_	DETECTOR_ID	id,
	_In_	int		nDriveModeIndex
);
Syntax (C#)
void detector.DelegateFrameGrabberImageInStart (
	int	id,
	int	driveModeIndex
);
Parameters
id[in]
Detector ID
nDriveModeIndex [in]
Index of the drive mode which is currently selected.
Remarks
FXRD-3643FW, FXRD-4343FW: When the detector reboots, the drive mode changes automatically to 0, which will be notified after reconnection. When DriveModeSet is called, it is notified after change is finished.	



10 CSCU


10.1 Member Functions


10.1.1 SCUTypeGet
Returns the SCU type of current instance	
Syntax
SCU_TYPE SCUTypeGet (void);
Returns	
Description	
SCU_TYPE	
SCU type	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.

	if(pSCU != NULL)
	{
		switch (pSCU->SCUTypeGet())
		{
		case Vieworks::vivix::SCU_TYPE::FXRS02A:
			{
				// FXRS02A.
			}
			break;

		case Vieworks::vivix::SCU_TYPE::FXRS03A:
			{
				// FXRS03A.
			}
			break;

		case Vieworks::vivix::SCU_TYPE::FXRS04A:
			{
				// FXRS04A.
			}
			break;

		case Vieworks::vivix::SCU_TYPE::FXRS04B:
			{
				// FXRS04B.
			}
			break;

		case Vieworks::vivix::SCU_TYPE::NO_SCU:
		default:
			// Invalid SCU type.
			break;
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.

	if(pSCU != null)
	{
		switch (pSCU.SCUTypeGet())
		{
		case Vieworks.vivix.net.SCU_TYPE.FXRS02A:
			{
				// FXRS02A.
			}
			break;

		case Vieworks.vivix.net.SCU_TYPE.FXRS03A:
			{
				// FXRS03A.
			}
			break;

		case Vieworks.vivix.net.SCU_TYPE.FXRS04A:
			{
				// FXRS04A.
			}
			break;

		case Vieworks.vivix.net.SCU_TYPE.FXRS04B:
			{
				// FXRS04B.
			}
			break;

		case Vieworks.vivix.net.SCU_TYPE.NO_SCU:
		default:
			// Invalid SCU type.
			break;
		}
	}

10.1.2 IsWirelessSupport
Checks if the SCU model of the relevant instance supports wireless function	
Syntax
bool IsWirelessSupport (void);
Returns	
Description	
bool	
Whether to support wireless function or not.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		bool bWirelessSupport = pSCU->IsWirelessSupport();
		if(bWirelessSupport == true)
		{
			// Wireless support model
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// DetectorGet finished.
	// Open finished.

	if(pSCU != null)
	{
		bool bWirelessSupport = pSCU.IsWirelessSupport();
		if(bWirelessSupport == true)
		{
			// Wireless support model
		}
	}

10.1.3 Open
Connects SCU	
Syntax
RESULT Open (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded in connecting SCU.	
RESULT_SCU_ALREADY_CONNECTED	
The SCU object that connected already.	
RESULT_ERROR	
Failed to set trigger debounce time.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		nResult = pSCU->Open();

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to open SCU.
		}
		else
		{
			// Failed to open SCU.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		nResult = pSCU.Open();

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to open SCU.
		}
		else
		{
			// Failed to open SCU.
		}
	}

10.1.4 Close
Disconnects the SCU	
Syntax
RESULT Close (void);
Returns	
Description	
RESULT_SUCCESS	
Closes the connection of SCU.	
RESULT_SCU_NOT_CONNECTED	
SCU is not connected.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		nResult = pSCU->Close();

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to close SCU.
		}
		else
		{
			// Failed to close SCU.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		nResult = pSCU.Close();

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to close SCU.
		}
		else
		{
			// Failed to close SCU.
		}
	}

10.1.5 SelectDetector
Selects the detector to send the generator trigger signal	
Syntax (C++)
RESULT SelectDetector (
	_In_	DETECTOR_ID	detectorID
);
Syntax (C#)
RESULT SelectDetector (
	int	detectorID
);
Parameters
detectorID [in]
Detector ID to get the trigger signal.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded in selecting the detector.	
RESULT_SCU_NO_INFORMATION	
No SCU information.
Abnormal SCU object	
RESULT_SCU_NOT_CONNECTED	
SCU is not connected.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector ID is not connected.	
RESULT_DETECTOR_NO_INFORMATION	
No detector information. Unregistered detector ID.	
RESULT_ERROR	
Failed to call SelectDetector. 	
Remarks
This function can be used after opening SCU connection. If SCU is reconnected to SDK, this function should be executed again (disconnect SCU physically and reboot up).	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		nResult = pSCU->SelectDetector(0);

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to select 0 detector.
		}
		else
		{
			// Failed to select 0 detector.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		nResult = pSCU.SelectDetector(0);

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to select 0 detector.
		}
		else
		{
			// Failed to select 0 detector.
		}
	}

10.1.6 APEnableGet
Configures to activate/deactivate the SCU AP function	
Syntax (C++)
RESULT APEnableGet (
	_Out_	bool	enable
);
Syntax (C#)
RESULT APEnableGet (
	out 	bool	enable
);
Parameters
enable [out]
Whether the AP function is activated or not.	
Returns	
Description	
RESULT_SUCCESS	
Completed to set the AP activation.	
RESULT_SCU_NO_INFORMATION	
No SCU information. Abnormal SCU subject.	
RESULT_SCU_NOT_CONNECTED	
SCU is not connected.	
RESULT_INVALID_MODEL	
Unsupported SCU model	
RESULT_ERROR	
Failed to activate SCU AP. 	
Remarks
This function can check whether the SCU AP is activated or not. It can be used after opening SCU connection. It can also check the temporary AP setting value configured from APEnableSet only, not from VIVIX Setup or the WirelessAPConfigurationSet function.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		bool bSCUApEnable = false;
		nResult = pSCU->APEnableGet(&bSCUApEnable);

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get SCU AP state.
		}
		else
		{
			// Failed to get SCU AP state.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		bool bSCUApEnable = false;
		nResult = pSCU.APEnableGet(out bSCUApEnable);

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get SCU AP state.
		}
		else
		{
			// Failed to get SCU AP state.
		}
	}

10.1.7 APEnableSet
Configures to activate/deactivate the SCU AP function	
Syntax (C++)
RESULT APEnableSet (
	_In_	bool	enable
);
Syntax (C#)
RESULT APEnableSet (
	bool	enable
);
Parameters
enable [in]
Whether the AP function is activated or not.	
Returns	
Description	
RESULT_SUCCESS	
Completed to set the AP activation.	
RESULT_SCU_NO_INFORMATION	
No SCU information. Abnormal SCU subject.	
RESULT_SCU_NOT_CONNECTED	
SCU is not connected.	
RESULT_INVALID_MODEL	
Unsupported SCU model	
RESULT_ERROR	
Failed to activate / deactivate SCU AP	
Remarks
This function can be used after opening SCU connection. This function can turn off the AP temporarily if the AP function is turned on by the WirelessAPConfigurationSet function or by VIVIX Setup. However, the AP function cannot be activated if it is turned off by the WirelessAPConfigurationSet function or by VIVIX Setup. In the previous version V1.0.3.67, the signature of this function was ‘APEnable’.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		nResult = pSCU->APEnableSet(true);

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to enable SCU AP.
		}
		else
		{
			// Failed to enable SCU AP.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		nResult = pSCU.APEnableSet(true);

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to enable SCU AP.
		}
		else
		{
			// Failed to enable SCU AP.
		}
}

10.1.8 NetworkConfigurationGet
Gets network configuration	
Syntax (C++)
RESULT NetworkConfigurationGet (
	_Out_	NETWORK_CONFIGURATION*	config
);
Syntax (C#)
RESULT NetworkConfigurationGet (
	out	NETWORK_CONFIGURATION	config
);
Parameters
config [out]
Network configuration	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get network configuration.	
RESULT_INVALID_PARAMETER	
[config] is NULL.	
RESULT_SCU _NOT_CONNECTED	
SCU is not connected.	
RESULT_SCU _IS_IN_SLEEP	
SCU is in sleep mode.	
RESULT_ERROR	
Failed to get network configuration.	
Remarks
This function can be used after opening SCU connection. It brings the settings related to the network information. Since the information is not in SCU but is recorded in the SDK memory, you should call the ConfigurationRead function first, and then call NetworkConfigurationGet function to acquire the setting value in the real detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		Vieworks::vivix::NETWORK_CONFIGURATION NetworkConfiguration;

		nResult = pSCU->NetworkConfigurationGet(&NetworkConfiguration);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get network configuration.
		}
		else
		{
			// Failed to get network configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		Vieworks.vivix.net.NETWORK_CONFIGURATION NetworkConfiguration;

		nResult = pSCU.NetworkConfigurationGet(out NetworkConfiguration);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get network configuration.
		}
		else
		{
			// Failed to get network configuration.
		}
	}

10.1.9 NetworkConfigurationSet
Sets network configuration	
Syntax (C++)
RESULT NetworkConfigurationSet (
	_In_	NETWORK_CONFIGURATION*	config
);
Syntax (C#)
RESULT NetworkConfigurationSet (
	NETWORK_CONFIGURATION	config
);
Parameters
config [in]
Network configuration	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set network configuration.	
RESULT_INVALID_PARAMETER	
Invalid item exists among the [config] items.	
RESULT_SCU_NOT_CONNECTED	
SCU was not connected.	
RESULT_SCU_IS_IN_SLEEP	
SCU is in sleep mode.	
RESULT_ERROR	
Failed to set networks configuration.	
Remarks
This function can be used after opening SCU connection. It configures items related to the network information. The information is not set in SCU, but recorded in the SDK memory. You should call the ConfigurationSave function to send and save the information in the SDK memory to the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		Vieworks::vivix::NETWORK_CONFIGURATION NetworkConfiguration;
		nResult = pSCU->NetworkConfigurationSet(&NetworkConfiguration);

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set network configuration.
		}
		else
		{
			// Failed to set network configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		Vieworks.vivix.net.NETWORK_CONFIGURATION NetworkConfiguration;
		nResult = pSCU.NetworkConfigurationSet(NetworkConfiguration);

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set network configuration.
		}
		else
		{
			// Failed to set network configuration.
		}
	}

10.1.10 WirelessAPConfigurationGet
Gets wireless AP configuration	
Syntax (C++)
RESULT WirelessAPConfigurationGet (
	_Out_	WIRELESS_AP_CONFIGURATION*	config
);
Syntax (C#)
RESULT WirelessAPConfigurationGet (
	out	WIRELESS_AP_CONFIGURATION	config
);
Parameters
config [out]
Wireless AP configurations.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get wireless AP configuration.	
RESULT_INVALID_PARAMETER	
[config] is NULL.	
RESULT_DETECTOR_NO_INFORMATION	
There is no detector information.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to get wireless AP configuration.	
Remarks
This function can be used after opening SCU connection. It brings the settings related to the wireless AP function. The information is not set in SCU, but recorded in the SDK memory. You should call the ConfigurationRead function first, and then call the WirelessAPConfigurationGet function to acquire the setting value in the real detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		Vieworks::vivix::WIRELESS_AP_CONFIGURATION WirelessAPConfiguration;

		nResult = pSCU->WirelessAPConfigurationGet(&WirelessAPConfiguration);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get wireless AP configuration.
		}
		else
		{
			// Failed to get wireless AP configuration
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		Vieworks.vivix.net.WIRELESS_AP_CONFIGURATION WirelessAPConfiguration;

		nResult = pSCU.WirelessAPConfigurationGet(out WirelessAPConfiguration);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get wireless AP configuration.
		}
		else
		{
			// Failed to get wireless AP configuration
		}
	}

10.1.11 WirelessAPConfigurationSet
Sets wireless AP configuration	
Syntax (C++)
RESULT WirelessAPConfigurationSet (
	_In_	WIRELESS_AP_CONFIGURATION*	config
);
Syntax (C#)
RESULT WirelessAPConfigurationSet (
	WIRELESS_AP_CONFIGURATION	config
);
Parameters
config [in]
Wireless AP configurations.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set wireless AP configuration.	
RESULT_INVALID_PARAMETER	
Invalid item exists among the [config] items.	
RESULT_SCU_NOT_CONNECTED	
SCU was not connected.	
RESULT_SCU_IS_IN_SLEEP	
SCU is in sleep mode.	
RESULT_ERROR	
Failed to set wireless AP configuration.	
Remarks
This function can be used after opening SCU connection. It configures items related to the wireless AP information. The information is not set in SCU, but recorded in the SDK memory. You should call the ConfigurationSave function to send and save the information in the SDK memory to the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		Vieworks::vivix::WIRELESS_AP_CONFIGURATION WirelessAPConfiguration;

		nResult = pSCU->WirelessAPConfigurationSet(&WirelessAPConfiguration);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set wireless AP configuration.
		}
		else
		{
			// Failed to set wireless AP configuration
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		Vieworks.vivix.net.WIRELESS_AP_CONFIGURATION WirelessAPConfiguration;

		nResult = pSCU.WirelessAPConfigurationSet(WirelessAPConfiguration);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set wireless AP configuration.
		}
		else
		{
			// Failed to set wireless AP configuration
		}
	}

10.1.12 TriggerConfigurationGet
Gets trigger configuration	
Syntax (C++)
RESULT TriggerConfigurationGet (
	_In_	SCU_TRIGGER_CONFIGURATION*	config
);
Syntax (C#)
RESULT TriggerConfigurationGet (
	out	SCU_TRIGGER_CONFIGURATION	config
);
Parameters
config [in]
Trigger configurations.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get trigger configuration.	
RESULT_INVALID_PARAMETER	
[config] is NULL.	
RESULT_SCU_NOT_CONNECTED	
SCU was not connected	
RESULT_ERROR	
Succeeded to get trigger configuration.	
Remarks
This function can be used after opening SCU connection. It brings the settings related to trigger. The information is not set in SCU, but recorded in the SDK memory. You should call the ConfigurationRead function first, and then call the TriggerConfigurationGet function to acquire the value in the real detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		Vieworks::vivix::SCU_TRIGGER_CONFIGURATION SCUTriggerConfiguration;

		nResult = pSCU->TriggerConfigurationGet(&SCUTriggerConfiguration);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get trigger configuration.
		}
		else
		{
			// Failed to get trigger configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		Vieworks.vivix.net.SCU_TRIGGER_CONFIGURATION SCUTriggerConfiguration;

		nResult = pSCU.TriggerConfigurationGet(out SCUTriggerConfiguration);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get trigger configuration.
		}
		else
		{
			// Failed to get trigger configuration.
		}
	}

10.1.13 TriggerConfigurationSet
Sets trigger configuration	
Syntax (C++)
RESULT TriggerConfigurationSet (
	_In_	SCU_TRIGGER_CONFIGURATION*	config
);
Syntax (C#)
RESULT TriggerConfigurationSet (
	SCU_TRIGGER_CONFIGURATION	config
);
Parameters
config [in]
Trigger configurations.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to set trigger configuration.	
RESULT_INVALID_PARAMETER	
One or more parameters are not valid.	
RESULT_SCU_NOT_CONNECTED	
SCU was not connected.	
RESULT_ERROR	
Failed to set trigger configuration.	
Remarks
This function can be used after opening SCU connection. It configures items related to trigger. The information is not set in SCU, but recorded in the SDK memory. You should call the ConfigurationSave function to send and save the information in the SDK memory to the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		Vieworks::vivix::SCU_TRIGGER_CONFIGURATION SCUTriggerConfiguration;

		nResult = pSCU->TriggerConfigurationSet(&SCUTriggerConfiguration);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to set trigger configuration.
		}
		else
		{
			// Failed to set trigger configuration.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		Vieworks.vivix.net.SCU_TRIGGER_CONFIGURATION SCUTriggerConfiguration;

		nResult = pSCU.TriggerConfigurationSet(SCUTriggerConfiguration);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to set trigger configuration.
		}
		else
		{
			// Failed to set trigger configuration.
		}
	}

10.1.14 ConfigurationRead
Renews the setting information	
Syntax
RESULT ConfigurationRead (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to renew the setting information.	
RESULT_SCU_NOT_CONNECTED	
SCU was not connected.	
RESULT_ERROR	
Failed to renew the setting information.	
Remarks
This function can be used after opening SCU connection. The information of Wireless AP Configuration, Network Configuration, and Trigger Configuration are read from the real detector to SDK memory.
The acquired information in the SDK memory can be brought by using the NetworkConfigurationGet, WirelessAPConfigurationGet, TriggerConfigurationGet functions.
Note that the information of Wireless AP Configuration, Network Configuration, and Trigger Configuration which have not been stored by the CalibrationSave function can be renewed to the information stored in the detector.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		nResult = pSCU->ConfigurationRead();
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to read configuration from SCU.
		}
		else
		{
			// Failed to read configuration from SCU.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		nResult = pSCU.ConfigurationRead();
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to read configuration from SCU.
		}
		else
		{
			// Failed to read configuration from SCU.
		}
	}

10.1.15 ConfigurationSave
Saves the changed setting information	
Syntax
RESULT ConfigurationSave (void);
Returns	
Description	
RESULT_SUCCESS	
Succeeded to save the setting information.	
RESULT_SCU_NOT_CONNECTED	
SCU was not connected.	
RESULT_ERROR	
Failed to save the setting information.	
Remarks
This function can be used after opening SCU connection. It sends and saves the information of Network Configuration, Wireless AP Configuration, and Trigger Configuration in the SDK memory to SCU. The FXRS-02A and 03A models are rebooted automatically after the ConfigurationSave function is succeeded. The FXRS-04A model is disconnected and reconnected when the wireless AP and network settings are changed.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		nResult = pSCU->ConfigurationSave();
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to save configuration to SCU.
		}
		else
		{
			// Failed to save configuration to SCU.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		nResult = pSCU.ConfigurationSave();
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to save configuration to SCU.
		}
		else
		{
			// Failed to save configuration to SCU.
		}
	}

10.1.16 VersionInfoGet
Gets the version information	
Syntax (C++)
RESULT VersionInfoGet (
	_Out_	SCU_VERSION_INFO*	info
);
Syntax (C#)
RESULT VersionInfoGet (
	out	SCU_VERSION_INFO	info
);
Parameters
info [out]
Version information	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the version information.	
RESULT_INVALID_PARAMETER	
Incorrect parameter.	
RESULT_SCU_NOT_CONNECTED	
SCU was not connected.	
RESULT_ERROR	
Failed to get the version information.	
Remarks
This function can be used after opening SCU connection. It provides the information of firmware, Bootloader, Kernel, Package, Ramdisk, and MAC address for the factory setting.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		Vieworks::vivix::SCU_VERSION_INFO SCUVersionInfo;
		nResult = pSCU->VersionInfoGet(&SCUVersionInfo);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get version information.
		}
		else
		{
			// Failed to get version information.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		Vieworks.vivix.net.SCU_VERSION_INFO SCUVersionInfo;
		nResult = pSCU.VersionInfoGet(out SCUVersionInfo);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get version information.
		}
		else
		{
			// Failed to get version information.
		}
	}

10.1.17 LogDataListGet
Gets the list of log information	
Syntax (C++)
RESULT LogDataListGet (
	_In_	LOG_LIST*	logList
);
Syntax (C#)
RESULT LogDataListGet (
	out	LOG_LIST		logList
);
Parameters
logList [in]
The list of SCU log information.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get the list of log information.	
RESULT_INVALID_PARAMETER	
Incorrect parameter	
RESULT_SCU_NO_INFORMATION	
No SCU information. Abnormal SCU object.	
RESULT_SCU_NOT_CONNECTED	
SCU was not connected.	
RESULT_ERROR	
Failed to get the list of log information.	
Remarks
This function can be used after opening SCU connection. Input Timestamp to startDate and endDate of LOG_LIST as a parameter to search the log in the certain period. Input 0 to startDate and endDate and send it as a parameter if you need the log data list of the whole period.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		Vieworks::vivix::LOG_LIST LogList;

		CTime t1(2015, 3, 10, 0, 0, 0);
		CTime t2(2015, 3, 12, 0, 0, 0);

		LogList.startDate = t1.GetTime();
		LogList.endDate = t2.GetTime();

		nResult = pSCU->LogDataListGet(&LogList);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get log list.
		}
		else
		{
			// Failed to get log list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		Vieworks.vivix.net.LOG_LIST LogList;

		CTime t1(2015, 3, 10, 0, 0, 0);
		CTime t2(2015, 3, 12, 0, 0, 0);

		LogList.startDate = t1.GetTime();
		LogList.endDate = t2.GetTime();

		nResult = pSCU.LogDataListGet(out LogList);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get log list.
		}
		else
		{
			// Failed to get log list.
		}
	}

10.1.18 LogDataGet
Imports the log information	
Syntax (C++)
RESULT LogDataGet (
_In_	LOG_DATA*	logData
);
Syntax (C#)
RESULT LogDataGet (
out	LOG_DATA*	logData
);
Parameters
logData [in]
The log information to be imported.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to import the log information.	
RESULT_INVALID_PARAMETER	
Incorrect parameter	
RESULT_SCU_NO_INFORMATION	
No SCU information. Abnormal SCU object.	
RESULT_SCU_NOT_CONNECTED	
SCU is not connected.	
RESULT_ERROR	
Failed to import the log information.	
Remarks
This function can be used after opening SCU connection. Assign the log data to be brought by using LOG_DATA in the LOG_LIST structure, which was acquired by LogDataListGet.
The log data is saved to “SCU\[Serial number” at the bottom of the storage route of SDK log.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		Vieworks::vivix::LOG_LIST LogList;

		CTime t1(2015, 3, 10, 0, 0, 0);
		CTime t2(2015, 3, 12, 0, 0, 0);

		LogList.startDate = t1.GetTime();
		LogList.endDate = t2.GetTime();

		nResult = pSCU->LogDataListGet(&LogList);
		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get log list.

			if(LogList.LogCount > 0)
			{
				nResult = pSCU->LogDataGet(&LogList.LogList[0]);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to get log in log path.
				}
				else
				{
					// Failed to get log.
				}
			}
		}
		else
		{
			// Failed to get log list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		Vieworks.vivix.net.LOG_LIST LogList;

		CTime t1(2015, 3, 10, 0, 0, 0);
		CTime t2(2015, 3, 12, 0, 0, 0);

		LogList.startDate = t1.GetTime();
		LogList.endDate = t2.GetTime();

		nResult = pSCU.LogDataListGet(out LogList);
		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get log list.

			if(LogList.LogCount > 0)
			{
				nResult = pSCU.LogDataGet(LogList.LogList[0]);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to get log in log path.
				}
				else
				{
					// Failed to get log.
				}
			}
		}
		else
		{
			// Failed to get log list.
		}
	}

10.1.19 SelfDiagnosis
Executes the self-diagnosis.	
Syntax
RESULT SelfDiagnosis (void);
Returns	
Description	
RESULT_ERROR	
Failed to import the log information.	
Remarks
Scheduled to be implemented later.	

10.1.20 DiagnosableItemsGet
Gets the list of diagnosable items	
Syntax (C++)
RESULT DiagnosableItemsGet (
	_Out_	DIAGNOSABLE_ITEM_INFO_LIST*	list
);
Syntax (C#)
RESULT DiagnosableItemsGet (
	ref	DIAGNOSABLE_ITEM_INFO_LIST	list
);
Parameters
list [out]
Diagnosable item information list.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to get diagnosable item list.	
RESULT_INVALID_PARAMETER	
Detector ID is out of range or [type] value is invalid or out of range.	
RESULT_SCU_NOT_CONNECTED	
SCU was not connected.	
RESULT_ERROR	
Failed to get diagnosable item list.	
Remarks
This function can be used after opening SCU connection. It receives the list of diagnosable items from SCU firmware. Execute the self-diagnosis to all diagnosable items or partial items by using the DiagnoseItem function. The self-diagnosis items can be different depending on the firmware version of SCU. The callback functions related to the self-diagnosis are NotifySelfDiagnosisTimeout, NotifySelfDiagnosisItemResult, and NotifySelfDiagnosisDone.
This function works only in FXRS-04A.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		Vieworks::vivix::DIAGNOSABLE_ITEM_INFO_LIST DiagnosableItemInfoList;
		nResult = pSCU-> DiagnosableItemsGet(&DiagnosableItemInfoList);

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.
		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		Vieworks.vivix.net.DIAGNOSABLE_ITEM_INFO_LIST DiagnosableItemInfoList = new Vieworks.vivix.net.DIAGNOSABLE_ITEM_INFO_LIST();
		nResult = pSCU. DiagnosableItemsGet(ref DiagnosableItemInfoList);

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.
		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}

10.1.21 DiagnoseItem
Diagnoses item	
Syntax (C++)
RESULT DiagnoseItem (
	_In_	int	category,
	_In_	int	item
);
Syntax (C#)
RESULT DiagnoseItem (
	_In_	int	category,
	_In_	int	item
);
Parameters
category [in]
Category number of the item to be self-diagnosed.
item [in]
Item number of the item to be self-diagnosed.	
Returns	
Description	
RESULT_SUCCESS	
Succeeded to start diagnosis.	
RESULT_DETECTOR_NOT_CONNECTED	
Detector is not connected.	
RESULT_DETECTOR_IS_IN_SLEEP	
Detector is in sleep mode.	
RESULT_ERROR	
Failed to start diagnosis.	
Remarks
This function can be used after opening SCU connection. Use the DiagnoseItem function to execute self-diagnosis to all diagnosable items or partial items, which were sent by the DiagnosableImtesGet function. The callback functions related to the DiagnoseItem function are NotifySelfDiagnosisTimeout and NotifySelfDiagnosisItemResult.	
Examples (C++)
 Vieworks::vivix::CVivixSDK SDK;
	Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_SUCCESS;
	Vieworks::vivix::scu::CSCU* pSCU = NULL;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != NULL)
	{
		Vieworks::vivix::DIAGNOSABLE_ITEM_INFO_LIST DiagnosableItemInfoList;
		nResult = pSCU-> DiagnosableItemsGet(&DiagnosableItemInfoList);

		if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.
		
			if(DiagnosableItemInfoList.numOfitems > 0)
			{
				nResult = pSCU->DiagnoseItem(DiagnosableItemInfoList.items[0].categoryId, DiagnosableItemInfoList.items[0].itemId);

				if(nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
				{
					// Succeeded to diagnose item.
				}
				else
				{
					// Failed to diagnose item.
				}
			}

		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
	Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_SUCCESS;
	Vieworks.vivix.net.scu.SCU pSCU = null;

	// SDK Initialize finished.
	// SCUGet finished.
	// Open finished.

	if(pSCU != null)
	{
		Vieworks.vivix.net.DIAGNOSABLE_ITEM_INFO_LIST DiagnosableItemInfoList = new Vieworks.vivix.net.DIAGNOSABLE_ITEM_INFO_LIST();
		nResult = pSCU.DiagnosableItemsGet(ref DiagnosableItemInfoList);

		if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
		{
			// Succeeded to get diagnosable item list.

			if(DiagnosableItemInfoList.numOfitems > 0)
			{
				nResult = pSCU.DiagnoseItem(DiagnosableItemInfoList.items[0].categoryId, DiagnosableItemInfoList.items[0].itemId);

				if(nResult == Vieworks.vivix.net.RESULT.RESULT_SUCCESS)
				{
					// Succeeded to diagnose item.
				}
				else
				{
					// Failed to diagnose item.
				}
			}

		}
		else
		{
			// Failed to get diagnosable item list.
		}
	}

10.2 Callback Notification Setting Function


10.2.1 SetNotifyReboot / SetDelegateReboot
Sets NotifyReboot / DelegateReboot notification	
Syntax (C++)
void SetNotifyReboot (
	_In_	NotifyReboot	pNotify
);
Syntax (C#)
void SetDelegateReboot (
	DelegateReboot	val
);
Parameters
pNotify [in]
NotifyReboot
val [in]
DelegateReboot	
Remarks
Refer to ‘scu::NotifyReboot’.
Refer to ‘scu.DelegateReboot’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::scu::CSCU* pSCU = NULL;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != NULL)
{	
		pSCU->SetNotifyReboot(NotifyReboot);
}

void NotifyReboot(Vieworks::vivix::REBOOT_STATUS rebootStatus)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.scu.SCU pSCU = null;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != null)
{	
		pSCU.SetDelegateReboot(OnDelegateReboot);
}

void OnDelegateReboot(Vieworks.vivix.net.REBOOT_STATUS rebootStatus)
{
}

10.2.2 SetNotifyDisconnected / SetDelegateDisconnected
Sets NotifyDisconnected / DelegateDisconnected notification	
Syntax (C++)
void SetNotifyDisconnected (
	_In_	NotifyDisconnected	pNotify
);
Syntax (C#)
void SetDelegateDisconnected (
	DelegateDisconnected	val
);
Parameters
pNotify [in]
NotifyDisconnected
val [in]
DelegateDisconnected	
Remarks
Refer to ‘scu::NotifyDisconnected’.
Refer to ‘scu.DelegateDisconnected’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::scu::CSCU* pSCU = NULL;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != NULL)
{	
		pSCU->SetNotifyDisconnected(NotifyDisconnected);
}

void NotifyDisconnected()
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.scu.SCU pSCU = null;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != null)
{	
		pSCU.SetDelegateDisconnected(OnDelegateDisconnected);
}

void OnDelegateDisconnected()
{
}

10.2.3 SetNotifyReconnected / SetDelegateReconnected
Sets NotifyReconnected / DelegateReconnected notification	
Syntax (C++)
void SetNotifyReconnected (
	_In_	NotifyReconnected	pNotify
);
Syntax (C#)
void SetDelegateReconnected (
	DelegateReconnected	val
);
Parameters
pNotify [in]
NotifyReconnected
val [in]
DelegateReconnected	
Remarks
Refer to ‘scu::NotifyReconnected’.
Refer to ‘scu.DelegateReconnected’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::scu::CSCU* pSCU = NULL;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != NULL)
{	
		pSCU->SetNotifyReconnected(NotifyReconnected);
}

void NotifyReconnected()
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.scu.SCU pSCU = null;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != null)
{	
		pSCU.SetDelegateReconnected(OnDelegateReconnected);
}

void OnDelegateReconnected()
{
}

10.2.4 SetNotifyApEnable / SetDelegateApEnable
Sets NotifyApEnable / DelegateApEnable notification	
Syntax (C++)
void SetNotifyReconnected (
	_In_	NotifyApEnable	pNotify
);
Syntax (C#)
void SetDelegateReconnected (
	DelegateApEnable	val
);
Parameters
pNotify [in]
NotifyApEnable
val [in]
DelegateApEnable	
Remarks
Refer to ‘scu::NotifyApEnable’.
Refer to ‘scu.DelegateApEnable’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::scu::CSCU* pSCU = NULL;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != NULL)
{	
		pSCU->SetNotifyApEnable(NotifyApEnable);
}

void NotifyApEnable(bool APEnable)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.scu.SCU pSCU = null;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != null)
{	
		pSCU.SetDelegateApEnable(OnDelegateApEnable);
}

void OnDelegateApEnable(bool APEnable)
{
}

10.2.5 SetNotifyApInfo / SetDelegateApInfo
Sets NotifyApInfo / DelegateApInfo notification	
Syntax (C++)
void SetNotifyAPInfo(
	_In_	NotifyApInfo	pNotify
);
Syntax (C#)
void SetDelegateAPInfo(
	DelegateApInfo	val
);
Parameters
pNotify [in]
NotifyApInfo
val [in]
DelegateApInfo	
Remarks
Refer to ‘scu::NotifyAPInfo’.
Refer to ‘scu.DelegateAPInfo’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::scu::CSCU* pSCU = NULL;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != NULL)
{	
		pSCU->SetNotifyApInfo(NotifyApInfo);
}

void NotifyApInfo(Vieworks::vivix::SCU_APINFO_PARAM scuAPInfo)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.scu.SCU pSCU = null;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != null)
{	
		pSCU.SetDelegateApInfo(OnDelegateApInfo);
}

void OnDelegateApInfo(Vieworks.vivix.net.SCU_APINFO_PARAM scuAPInfo)
{
}

10.2.6 SetNotifySelfDiagnosisTimeout / SetDelegateSelfDiagnosisTimeout
Sets the notification of NotifySelfDiagnosisTimeout notification / DelegateSelfDiagnosisTimeout	
Syntax (C++)
void SetNotifySelfDiagnosisTimeout(
	_In_	NotifySelfDiagnosisTimeout		pNotify
);
Syntax (C#)
void SetDelegateSelfDiagnosisTiemout(
	DelegateSelfDiagnosisTimeout		val
);
Parameters
pNotify [in]
NotifySelfDiagnosisTimeout
val [in]
DelegateSelfDiagnosisTimeout	
Remarks
Refer to ‘scu::NotifySelfDiagnosisTimeout’.
Refer to ‘scu.DelegateSelfDiagnosisTimeout’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::scu::CSCU* pSCU = NULL;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != NULL)
{	
		pSCU->SetNotifySelfDiagnosisTimeout(NotifySelfDiagnosisTimeout);
}

void NotifySelfDiagnosisTimeout()
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.scu::CSCU* pSCU = NULL;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != null)
{	
		pSCU.SetDelegateSelfDiagnosisTimeout(OnDelegateSelfDiagnosisTimeout);
}

void OnDelegateSelfDiagnosisTimeout()
{
}

10.2.7 SetNotifySelfDiagnosisItemResult / SetDelegateSelfDiagnosisItemResult
Sets NotifySelfDiagnosisItemResult notification / DelegateSelfDiagnosisItemResult notification	
Syntax (C++)
void SetNotifySelfDiagnosisItemResult(
	_In_	NotifySelfDiagnosisItemResult	pNotify
);
Syntax (C#)
void SetDelegateSelfDiagnosisResult (
	DelegateSelfDiagnosisResult	val
);
Parameters
pNotify [in]
NotifySelfDiagnosisItemResult
val [in]
DelegateSelfDiagnosisItemResult	
Remarks
Refer to ‘scu::NotifySelfDiagnosisItemResult’.
Refer to ‘scu.DelegateSelfDiagnosisItemResult’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::scu::CSCU* pSCU = NULL;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != NULL)
{	
		pSCU->SetNotifySelfDiagnosisItemResult(NotifySelfDiagnosisItemResult);
}

void NotifySelfDiagnosisItemResult(Vieworks::vivix::SELF_DIAGNOSIS_RESULT* result)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.scu.SCU pSCU = null;

// SDK Initialize finished.
// DetectorGet finished.

if(pSCU != null)
{	
		pSCU.SetDelegateSelfDiagnosisResult(OnDelegateSelfDiagnosisResult);
}

void OnDelegateSelfDiagnosisResult(Vieworks.vivix.net.SELF_DIAGNOSIS_RESULT result)
{
}

10.2.8 SetNotifySelfDiagnosisDone / SetDelegateSelfDiagnosisItemDone
Sets NotifySelfDiagnosisDone notification / DelegateSelfDiagnosisItemDone notification	
Syntax (C++)
void SetNotifySelfDiagnosisDone(
	_In_	NotifySelfDiagnosisDone	pNotify
);
Syntax (C#)
void SetDelegateSelfDiagnosisDone (
	DelegateSelfDiagnosisDone	val
);
Parameters
pNotify [in]
NotifySelfDiagnosisDone
val [in]
DelegateSelfDiagnosisItemDone	
Remarks
Refer to ‘scu::NotifySelfDiagnosisDone’.
Refer to ‘scu.DelegateSelfDiagnosisDone’.	
Examples (C++)
Vieworks::vivix::CVivixSDK SDK;
Vieworks::vivix::RESULT nResult = Vieworks::vivix::RESULT::RESULT_ERROR;
Vieworks::vivix::scu::CSCU* pSCU = NULL;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != NULL)
{	
		pSCU->SetNotifySelfDiagnosisDone(NotifySelfDiagnosisDone);
}

void NotifySelfDiagnosisDone(Vieworks::vivix::SELF_DIAGNOSIS_DONE_TYPE type, Vieworks::vivix:SELF_DIAGNOSIS_REPORT* report)
{
}
Examples (C#)
Vieworks.vivix.net.VivixNet pSDK = new Vieworks.vivix.net.VivixNet();
Vieworks.vivix.net.RESULT nResult = Vieworks.vivix.net.RESULT.RESULT_ERROR;
Vieworks.vivix.net.scu.SCU pSCU = null;

// SDK Initialize finished.
// SCUGet finished.

if(pSCU != null)
{	
		pSCU.SetDelegateSelfDiagnosisDone(OnDelegateSelfDiagnosisDone);
}

void OnDelegateSelfDiagnosisDone(Vieworks.vivix.net.SELF_DIAGNOSIS_DONE_TYPE type, Vieworks.vivix.net.SELF_DIAGNOSIS_REPORT report)
{
}

10.3 Callback Notification Function


10.3.1 scu::NotifyReboot / scu.DelegateReboot
Notifies the SCU reboot	
Syntax (C++)
void scu::NotifyReboot (
	_In_	NOTIFY_REBOOT_STATUS		rebootStatus
);
Syntax (C#)
void scu.DelegateReboot (
	REBOOT_STATUS		rebootStatus
);
Parameters
rebootStatus [in]
SCU reboot status	

10.3.2 scu::NotifyDisconnected / scu.DelegateDisconnected
Notifies SCU disconnection	
Syntax (C++)
void scu::NotifyDisconnected (void);
Syntax (C#)
void scu.DelegateDisconnected (void);

10.3.3 scu::NotifyReconnected / scu.DelegateReconnected
Notifies SCU reconnection	
Syntax (C++)
void scu::NotifyReconnected (void);
Syntax (C#)
void scu.DelegateReconnected (void);

10.3.4 scu::NotifyApEnable / scu.DelegateApEnable
Notifies the AP state of SCU	
Syntax (C++)
void scu::ApEnable (
	_In_	bool 		APEnable
);
Syntax (C#)
void scu.ApEnable (
	bool 		APEnable
);
Parameters
APEnable [in]
SCU AP state	

10.3.5 scu::NotifyAPInfo / scu.DelegateAPInfo
Notifies the AP information of SCU	
Syntax (C++)
void scu::NotifyAPInfo (
	_In_	SCU_APINFO_PARAM	scuAPInfo
);
Syntax (C#)
void scu.DelegateAPInfo (
	SCU_APINFO_PARAM	scuAPInfo
);
Parameters
scuAPInfo [in]
SCU AP information	

10.3.6 scu::NotifySelfDiagnosisTimeout / scu.DelegateSelfDiagnosisTimeout
Notifies the self-diagnostic timeout	
Syntax (C++)
void scu::NotifySelfDiagnosisTimeout ( void );
Syntax (C++)
void scu.DelegateSelfDiagnosisTimeout ( void );

10.3.7 scu::NotifySelfDiagnosisItemResult / scu.DelegateSelfDiagnosisItemResult
Notifies the information on self-diagnostic progress	
Syntax (C++)
void scu::NotifySelfDiagnosisItemResult (
	_In_	SELF_DIAGNOSIS_RESULT*	result
);
Syntax (C#)
void scu.DelegateSelfDiagnosisItemResult (
	_In_	SELF_DIAGNOSIS_RESULT	result
);
Parameters
result [in]
Self-diagnosis result	
Remarks
When each self-diagnosis item is finished, the result transmitted using this function.	

10.3.8 scu::NotifySelfDiagnosisDone / scu.DelegateSelfDiagnosisDone
Notifies the self-diagnostic result	
Syntax (C++)
void scu::NotifySelfDiagnosisDone (
	_In_	SELF_DIAGNOSIS_DONE_TYPE	type,
	_In_	SELF_DIAGNOSIS_REPORT*		report
);
Syntax (C#)
void scu.DelegateSelfDiagnosisDone (
	_In_	SELF_DIAGNOSIS_DONE_TYPE	type,
	_In_	SELF_DIAGNOSIS_REPORT		report
);
Parameters
type [in]
Self-diagnosis done type
report [in]
Self-diagnosis report array	
Remarks
When all items are finished, the total result is transmitted by using this function.	



11 Appendix


11.1 Sequence Diagram


11.1.1 Initializing SDK and Registering Devices
	

11.1.2 Opening Devices
	

11.1.3 Image Acquisition
  • Using DR/Passive Trigger, SCU: line trigger (HW)	
	
  • Using DR/Passive Trigger, SCU: packet trigger (SW)	
	
  • Using AED Trigger	
	

11.2 Self Diagnosis


11.2.1 Concept
Self-diagnosis’s goal is that detector diagnoses status and transmits result of diagnosis.
Later on, the diagnosable item is added or removed. The criteria of diagnosis are stored in detector and detector diagnoses under criteria.
The program was created using VIVIX SDK inform user of self-diagnosis result.	

11.2.2 Required condition for self diagnosis
  • Replace a fully charged battery.	
  • If SCU is used, the detector and SCU should be connected with a tether cable.	
  • If SCU is used, the detector and SCU should be kept communicable distance.	
  • If SCU is used, SSID of the detector and SCU must be matched.	

11.2.3 Self diagnosis item
Category	
ID	
Item	
Type	
Problem	
Instruction	
Severity	
Voltage	
D101*	
DDC	
Judgement	
Tether interface cable failure	
Change tether interface cable.	
N/A	
Tether cable power failure	
Panel replacement	
N/A	
D102	
Main	
Judgement	
Processor I/O power failure	
Panel replacement	
Error	
D103	
Core	
Judgement	
Processor core power failure	
Panel replacement	
Error	
Battery	
D201	
Detection	
Judgement	
Battery connection or circuit failure	
Panel replacement	
Error	
D202	
Voltage	
Information	
N/A	
N/A	
-	
D203	
Remain	
Information	
N/A	
N/A	
-	
Wireless	
D301	
Detection	
Judgement	
Wireless module failure	
Panel replacement	
Error	
D302*	
Connection	
Judgement	
SSID or key is mismatched between SCU and panel.	
Check if the SSID and Key of SCU/panel are same.	
Warning	
Unsuitable wireless signal strength	
Check the distance between SCU and panel.	
-	
Wireless LAN module failure	
Panel replacement	
Error	
Sensor	
D401	
Impact Sensor	
Judgement	
Shock sensor failure	
Panel replacement	
Warning	
D402	
Temperature	
Judgement	
Temperature sensor failure	
Panel replacement	
Error	
D403	
AED	
Judgement	
AED sensor failure	
Panel replacement	
Error	
Memory	
D501	
Detection	
Judgement	
Offset correction cannot be applied.	
Panel replacement	
Error	
Backup image cannot be saved.	
Panel replacement	
-	
Portable mode cannot be used.	
Panel replacement	
-	
D502	
File system	
Judgement	
Offset correction cannot be applied.	
Panel replacement	
Error	
Backup image cannot be saved.	
Panel replacement	
-	
Portable mode cannot be used.	
Panel replacement	
-	
D503	
Status	
Information	
N/A	
-	
-	
IC	
D601	
FPGA	
Judgement	
Cannot perform the image acquisition.	
Panel replacement	
Error	
D602	
Fuel gauge	
Judgement	
Battery remain checking are not available.	
Panel replacement	
Error	
D603	
RTC	
Judgement	
Wrong time will be recorded on the exposure time in Portable mode.	
Panel replacement	
Warning	
Wrong time will be recorded on the panel log file.	
Panel replacement	
-	

11.3 Revision history

Version	
Date	
Descriptions	
SDK Version	
3.60	
2015-05-22	
Initial release	
1.0.3.60	
3.67	
2015-08-10	
C++ and C# documents combined
Updated	
1.0.3.67	
4.0	
2015-09-14	
VIVIX SDK update to 1.0.4.1	
1.0.4.1	
4.3	
2015-09-21	
VIVIX SDK update to 1.0.4.3	
1.0.4.3	
4.4	
2015-10-20	
VIVIX SDK update to 1.0.4.4	
1.0.4.4	
4.5	
2016-01-11	
VIVIX SDK update to 1.0.4.5	
1.0.4.5	
4.8	
2016-02-18	
VIVIX SDK update to 1.0.4.8	
1.0.4.8	
4.10	
2016-04-07	
VIVIX SDK update to 1.0.4.10	
1.0.4.10	
4.11	
2016-07-05	
VIVIX SDK update to 1.0.4.11	
1.0.4.11	
4.14	
2016-10-31	
VIVIX SDK update to 1.0.4.14	
1.0.4.14	
4.15	
2016-11-23	
VIVIX SDK update to 1.0.4.15	
1.0.4.15	
4.16	
2017-01-03	
VIVIX SDK update to 1.0.4.16	
1.0.4.16	
4.23	
2017-04-12	
VIVIX SDK update to 1.0.4.23	
1.0.4.23	
1.0.5	
2017-08-16	
VIVIX SDK update to 1.0.5	
1.0.5	
1.0.7	
2017-12-18	
VIVIX SDK update to 1.0.7	
1.0.7	
1.0.9	
2018-05-30	
VIVIX SDK update to 1.0.9
Changed the European agent address and contact information.	
1.0.9	
1.0.10	
2018-06-12	
VIVIX SDK update to 1.0.10	
1.0.10	
1.0.11	
2018-09-18	
VIVIX SDK update to 1.0.11	
1.0.11	
1.0.15	
2019-03-06	
VIVIX SDK update to 1.0.15	
1.0.15	
1.0.16	
2019-05-14	
VIVIX SDK update to 1.0.16	
1.0.16	
1.0.17	
2019-12-16	
VIVIX SDK update to 1.0.17	
1.0.17	
1.0.18	
2020-01-30	
VIVIX SDK update to 1.0.18	
1.0.18	
1.0.19	
2020-07-21	
VIVIX SDK update to 1.0.19	
1.0.19	
1.0.22	
2020-08-27	
VIVIX SDK update to 1.0.22	
1.0.22	
1.0.23	
2020-11-17	
VIVIX SDK update to 1.0.23	
1.0.23	
1.0.23	
2021-12-01	
Calibration API description updated.	
1.0.23	
1.0.25	
2021-02-15	
VIVIX-SDK update to 1.0.25	
1.0.25	
1.1.0	
2021-10-18	
VIVIX SDK update to 1.1.0	
1.1.0	
1.1.2	
2022-01-18	
VIVIX SDK update to 1.1.2	
1.1.2	
1.1.4	
2021-03-21	
VIVIX SDK update to 1.1.4 	
1.1.4	
1.1.5	
2022-06-10	
VIVIX SDK update to 1.1.5	
1.1.5	





















	
	
Vieworks Co., Ltd.
Headquarter
41-3, Burim-ro 170beon-gil, Dongan-gu, Anyang-si,
Gyeonggi-do, 14055 Republic of Korea
Telephone: +82-70-7011-6161
Fax: +82-31-386-8631
Homepage: http://www.vieworks.com

Hwaseong Site
25-7, Jeongnamsandan 2-gil, Jeongnam-myeon, Hwaseong-si, 
Gyeonggi-do, 18514 Republic of Korea
Telephone: +82-70-7011-6161
Homepage: http://www.vieworks.com
	
	
European Authorized Representative: Obelis s.a
Bd. Général Wahis 53
1030 Brussels, BELGIUM
Tel: +(32) 2.732.59.54
Fax: +(32) 2.732.60.03
E-mail: mail@obelis.net