You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
205 lines
13 KiB
C
205 lines
13 KiB
C
/***************************************************************************
|
|
Copyright (c) 1995-2004, ADLink Technology Inc. All rights reserved.
|
|
|
|
File Name : HSL.H
|
|
Purpose : Header file for HSL-init.C module
|
|
Date : 06/25/2004
|
|
Programmer : Gilbert Yen
|
|
***************************************************************************/
|
|
|
|
#ifndef HSL_H
|
|
#define HSL_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if defined ( HSL_WINDOWS )
|
|
#define FNTYPE PASCAL
|
|
#elif defined ( HSL_LINUX )
|
|
#ifndef FNTYPE
|
|
#define FNTYPE
|
|
#endif
|
|
#elif defined( HSL_RTX )
|
|
#define FNTYPE _stdcall
|
|
#else
|
|
#ifndef FNTYPE
|
|
#define FNTYPE PASCAL
|
|
#endif
|
|
#endif
|
|
|
|
#include "type_def.h"
|
|
/***************************************************************************
|
|
* Mode Code of Value-Keeping Mode
|
|
****************************************************************************/
|
|
#define KEEP_MODE_KEEP (0)
|
|
#define KEEP_MODE_CLEAR (1)
|
|
|
|
/****************************************************************************/
|
|
/* Function Declerations */
|
|
/****************************************************************************/
|
|
|
|
// Initialization and System Information Section
|
|
I16 FNTYPE HSL_initial(I16 card_ID);
|
|
I16 FNTYPE HSL_close(I16 card_ID);
|
|
I16 FNTYPE HSL_auto_start(I16 card_ID, I16 connect_index);
|
|
I16 FNTYPE HSL_start(I16 card_ID, I16 connect_index, I16 max_slave_No);
|
|
I16 FNTYPE HSL_stop(I16 card_ID, I16 connect_index);
|
|
I16 FNTYPE HSL_connect_status(I16 card_ID, I16 connect_index, I16 slave_No, I16 *sts_data);
|
|
I16 FNTYPE HSL_slave_live(I16 card_ID, I16 connect_index, I16 slave_No, I16 *live_data);
|
|
void FNTYPE HSL_get_irq_channel(I16 card_ID, I16 *irq_no);
|
|
I16 FNTYPE HSL_get_slave_type(I16 card_ID, I16 connect_index, I16 slave_No, U16 *type_data);
|
|
I16 FNTYPE HSL_get_slave_ID_types(I16 card_ID, I16 connect_index, I16 slave_No, I16 *type_data, I16 *count);
|
|
I16 FNTYPE HSL_get_start_axisno(I16 card_ID, I16 connect_index, I16 slave_No, I16 *start_axis); /* RTX don't support */
|
|
I16 FNTYPE HSL_set_scan_condition(I16 card_ID, I16 connect_index, I16 comm_type, I16 transfer_rate, I16 hub_number); /* ONLY FOR 7853/54) */
|
|
I16 FNTYPE HSL_get_scan_condition(I16 card_ID, I16 connect_index, I16 *comm_type, I16 *transfer_rate, I16 *hub_number); /* ONLY FOR 7853/54) */
|
|
|
|
/* Reserved function */
|
|
I16 FNTYPE HSL_initial_without_reset(I16 card_ID);
|
|
I16 FNTYPE HSL_auto_start_without_reset(I16 card_ID, I16 connect_index);
|
|
I16 FNTYPE HSL_start_without_reset(I16 card_ID, I16 connect_index, I16 max_slave_No);
|
|
I16 FNTYPE HSL_initial_sw(I32 *card_ID_inBit, I16 sw_enable );
|
|
I16 FNTYPE HSL_get_version(I16 card_ID, I32 *Firmware_Version, I32 *Driver_Version, I32 *Software_Version);
|
|
I16 FNTYPE HSL_set_handshake_method(I16 card_ID, I16 connect_index, I16 Handshake_Method); /* ONLY 7853/4 & RTX don't support */
|
|
I16 FNTYPE HSL_get_handshake_method(I16 card_ID, I16 connect_index, I16 *Handshake_Method); /* ONLY 7853/4 & RTX don't support */
|
|
|
|
// Timer Control Section
|
|
I16 FNTYPE HSL_set_timer(I16 card_ID, I16 c1, I16 c2); /* ONLY FOR 7851/2 & RTX don't support */
|
|
I16 FNTYPE HSL_enable_timer_interrupt(I16 card_ID, HANDLE *phEvent); /* ONLY FOR 7851/2 & RTX don't support */
|
|
I16 FNTYPE HSL_disable_timer_interrupt(I16 card_ID); /* ONLY FOR 7851/2 & RTX don't support */
|
|
|
|
I16 FNTYPE HSL_set_int_timer(I16 card_ID, U16 c1); /* ONLY FOR 7853/54 */
|
|
I16 FNTYPE HSL_set_int_timer_enable(I16 card_ID, I16 enable); /* ONLY FOR 7853/54 */
|
|
I16 FNTYPE HSL_wait_timer_interrupt(I16 card_ID, I32 time_out_ms); /* ONLY FOR 7853/54 */
|
|
|
|
// DIO
|
|
I16 FNTYPE HSL_D_write_output(I16 card_ID, I16 connect_index, I16 slave_No, U32 out_data);
|
|
I16 FNTYPE HSL_D_write_channel_output(I16 card_ID, I16 connect_index, I16 slave_No, I16 channel, U16 out_data);
|
|
I16 FNTYPE HSL_D_read_input(I16 card_ID, I16 connect_index, I16 slave_No, U32 *in_data);
|
|
I16 FNTYPE HSL_D_read_channel_input(I16 card_ID, I16 connect_index, I16 slave_No, I16 channel, U16 *in_data);
|
|
I16 FNTYPE HSL_D_read_output(I16 card_ID, I16 connect_index, I16 slave_No, U32 *out_data_in_ram);
|
|
I16 FNTYPE HSL_D_read_all_slave_input(I16 card_ID, I16 connect_index, U16 *in_data);
|
|
I16 FNTYPE HSL_D_write_all_slave_output(I16 card_ID, I16 connect_index, U16 *out_data);
|
|
I16 FNTYPE HSL_D_set_input_logic(I16 card_ID, I16 connect_index, I16 slave_No, I16 input_logic);
|
|
I16 FNTYPE HSL_D_set_output_logic(I16 card_ID, I16 connect_index, I16 slave_No, I16 output_logic);
|
|
I16 FNTYPE HSL_D_write_slave_output(I16 card_ID, I16 connect_index, I16 slave_No, U16 out_data);
|
|
I16 FNTYPE HSL_D_read_slave_output(U16 card_ID, U16 connect_index, I16 slave_No, U16 *data_out);
|
|
I16 FNTYPE HSL_D_read_slave_input(U16 card_ID, U16 connect_index, I16 slave_No, U16 *data_in);
|
|
|
|
|
|
//DI INTERRUPT (ONLY FOR 7853/54)
|
|
I16 FNTYPE HSL_D_set_int_renewal_type(I16 card_ID, I16 connect_index, I16 renewal_type); /* ONLY FOR 7853/54 */
|
|
I16 FNTYPE HSL_D_set_int_renewal_bit(I16 card_ID, I16 connect_index, I16 slave_No, U16 bitsOfCheck); /* ONLY FOR 7853/54 */
|
|
I16 FNTYPE HSL_D_set_int_control(I16 card_ID, I16 connect_index, I16 enable); /* ONLY FOR 7853/54 */
|
|
I16 FNTYPE HSL_D_wait_di_interrupt(I16 card_ID, I32 time_out_ms);
|
|
I16 FNTYPE HSL_D_reset_di_interrupt(I16 card_ID);
|
|
|
|
//DI Interrupt for call back function
|
|
I16 FNTYPE HSL_D_link_interrupt(I16 card_ID,void ( __stdcall *callbackAddr)(void)); /* ONLY FOR 7853/54 & RTX don't support */
|
|
I16 FNTYPE HSL_D_manual_reset_dievent(I16 card_ID); /* ONLY FOR 7853/54 */
|
|
|
|
// FOR DI16-UL
|
|
I16 FNTYPE HSL_D_set_di_latch_function(I16 card_ID, I16 connect_index, I16 slave_No, I16 channel, I16 active_mode, I16 duration);
|
|
I16 FNTYPE HSL_D_set_di_latch_functionA(I16 card_ID, I16 connect_index, I16 slave_No, I16 edge, I16 duration);
|
|
I16 FNTYPE HSL_D_get_di_latch_function(I16 card_ID, I16 connect_index, I16 slave_No, I16 channel, I16 *active_mode, I16 *duration);
|
|
|
|
// AIO
|
|
I16 FNTYPE HSL_A_start_read(I16 card_ID, I16 connect_index);
|
|
I16 FNTYPE HSL_A_stop_read(I16 card_ID, I16 connect_index);
|
|
I16 FNTYPE HSL_A_set_signal_range(I16 card_ID, I16 connect_index, I16 slave_No, I16 signal_range);
|
|
I16 FNTYPE HSL_A_get_signal_range(I16 card_ID, I16 connect_index, I16 slave_No, I16 *signal_range);
|
|
I16 FNTYPE HSL_A_get_input_mode(I16 card_ID, I16 connect_index, I16 slave_No, I16 *mode);
|
|
I16 FNTYPE HSL_A_set_last_channel(I16 card_ID, I16 connect_index, I16 slave_No, I16 last_channel);
|
|
I16 FNTYPE HSL_A_get_last_channel(I16 card_ID, I16 connect_index, I16 slave_No, I16 *last_channel);
|
|
I16 FNTYPE HSL_A_read_input(I16 card_ID, I16 connect_index, I16 slave_No, I16 ai_channel, F64 *ai_data);
|
|
I16 FNTYPE HSL_A_write_output(I16 card_ID, I16 connect_index, I16 slave_No, I16 ao_channel, F64 ao_data);
|
|
I16 FNTYPE HSL_A_read_output(I16 card_ID, I16 connect_index, I16 slave_No, I16 ao_channel, F64 *ao_data);
|
|
I16 FNTYPE HSL_A_sync_rw(I16 card_ID, I16 connect_index, I16 slave_No, I16 ai_channel, F64 *ai_data, I16 ao_channel, F64 ao_data);
|
|
I16 FNTYPE HSL_A_get_version(I16 card_ID, I16 connect_index, I16 slave_No, I16 *ver);
|
|
|
|
// AO4
|
|
I16 FNTYPE HSL_set_keep_mode(I16 card_ID, I16 connect_index, I16 slave_No, I16 Mode);
|
|
|
|
//ODM function
|
|
I16 FNTYPE HSL_D_write_channel_output_SP(I16 card_ID, I16 connect_index, I16 slave_No, I16 channel, U16 out_data);
|
|
|
|
I16 FNTYPE HSL_A_AIO_scan_mode(I16 card_ID, I16 connect_index, I16 slave_No, I16 Enable);
|
|
I16 FNTYPE HSL_A_AIO_scan(I16 card_ID, I16 connect_index, I16 slave_No);
|
|
I16 FNTYPE HSL_A_write_output_i(I16 card_ID, I16 connect_index, I16 slave_No, I16 ao_channel, F64 ao_data);
|
|
I16 FNTYPE HSL_A_read_output_i(I16 card_ID, I16 connect_index, I16 slave_No, I16 ao_channel, F64 *ao_data);
|
|
I16 FNTYPE HSL_A_read_input_i(I16 card_ID, I16 connect_index, I16 slave_No, I16 ai_channel, F64 *ai_data );
|
|
I16 FNTYPE HSL_A_sync_rw_i(I16 card_ID, I16 connect_index, I16 slave_No, I16 ai_channel, F64 *ai_data, I16 ao_channel, F64 ao_data);
|
|
U32* FNTYPE HSL_DIO_Memory_Ptr(U16 card_ID, U16 connect_index);
|
|
/****************************************************************************/
|
|
// The following function declarations are old */
|
|
/****************************************************************************/
|
|
U16 FNTYPE W_HSL_Initial(U16 card_ID);
|
|
U16 FNTYPE W_HSL_Close(U16 card_ID);
|
|
U16 FNTYPE W_HSL_Auto_Start(U16 card_ID, U16 connect_index);
|
|
U16 FNTYPE W_HSL_Start(U16 card_ID, U16 connect_index, U16 max_slave_No);
|
|
U16 FNTYPE W_HSL_Stop(U16 card_ID, U16 connect_index);
|
|
U16 FNTYPE W_HSL_Connect_Status(U16 card_ID, U16 connect_index, U16 slave_No, U8 *sts_data);
|
|
U16 FNTYPE W_HSL_Slave_Live(U16 card_ID, U16 connect_index, U16 slave_No, U8 *live_data);
|
|
|
|
void FNTYPE W_HSL_Software_Reset(U16 card_ID);
|
|
void FNTYPE W_HSL_Get_IRQ_Channel(U16 card_ID, U16 *irq_no);
|
|
|
|
U16 FNTYPE W_HSL_DIO_In(U16 card_ID, U16 connect_index, U16 slave_No, U32 *in_data);
|
|
U16 FNTYPE W_HSL_DIO_Channel_In(U16 card_ID, U16 connect_index, U16 slave_No, U16 channel, U16 *in_data);
|
|
U16 FNTYPE W_HSL_DIO_Out(U16 card_ID, U16 connect_index, U16 slave_No, U32 out_data);
|
|
U16 FNTYPE W_HSL_DIO_Channel_Out(U16 card_ID, U16 connect_index, U16 slave_No, U16 channel, U16 out_data);
|
|
U16 FNTYPE W_HSL_DI8DO8_DIO_In(U16 card_ID, U16 connect_index, U16 slave_No, U16 *in_data);
|
|
U16 FNTYPE W_HSL_DI8DO8_DIO_Channel_In(U16 card_ID, U16 connect_index, U16 slave_No, U16 channel, U16 *in_data);
|
|
U16 FNTYPE W_HSL_DI8DO8_DIO_Out(U16 card_ID, U16 connect_index, U16 slave_No, U16 out_data);
|
|
U16 FNTYPE W_HSL_DI8DO8_DIO_Channel_Out(U16 card_ID, U16 connect_index, U16 slave_No, U16 channel, U16 out_data);
|
|
U16 FNTYPE W_HSL_Read_DIO_Out(U16 card_ID, U16 connect_index, U16 slave_No, U32 *out_data_in_ram);
|
|
U16 FNTYPE W_HSL_Read_DIO_Channel_Out(U16 card_ID, U16 connect_index, U16 slave_No, U16 channel, U16 *out_channel_data_in_ram);
|
|
U16 FNTYPE W_HSL_Read_DI8DO8_Out(U16 card_ID, U16 connect_index, U16 slave_No, U16 *out_data_in_ram);
|
|
U16 FNTYPE W_HSL_Read_DI8DO8_Channel_Out(U16 card_ID, U16 connect_index, U16 slave_No, U16 channel, U16 *out_channel_data_in_ram);
|
|
U16 FNTYPE W_HSL_Set_In_Out_Logic(U16 card_ID, U16 connect_index, U16 slave_No, U16 Input_Logic, U16 Output_Logic);
|
|
|
|
U16 FNTYPE W_HSL_AI_Start_Read(U16 card_ID, U16 connect_index);
|
|
U16 FNTYPE W_HSL_AI_Stop_Read(U16 card_ID, U16 connect_index);
|
|
U16 FNTYPE W_HSL_AI_Channel_In(U16 card_ID, U16 connect_index, U16 slave_No, U16 channel, F64 *ai_data);
|
|
U16 FNTYPE W_HSL_AI_SetConfig(U16 card_ID, U16 connect_index, U16 slave_No, U16 signal_range, U16 signal_type, U16 cjc_status);
|
|
U16 FNTYPE W_HSL_AI_GetConfig(U16 card_ID, U16 connect_index, U16 slave_No, U16 *signal_range, U16 *signal_type, U16 *cjc_status);
|
|
U16 FNTYPE W_HSL_AI_OffsetCalib(U16 card_ID, U16 connect_index, U16 slave_No);
|
|
U16 FNTYPE W_HSL_AI_SpanCalib(U16 card_ID, U16 connect_index, U16 slave_No);
|
|
U16 FNTYPE W_HSL_AI_WriteDefault(U16 card_ID, U16 connect_index, U16 slave_No);
|
|
U16 FNTYPE W_HSL_AI_SetCJCOffset(U16 card_ID, U16 connect_index, U16 slave_No, F64 CJC_data2);
|
|
U16 FNTYPE W_HSL_AI_GetCJCOffset(U16 card_ID, U16 connect_index, U16 slave_No, F64 *CJC_data);
|
|
U16 FNTYPE W_HSL_AI_SetChannelStatus(U16 card_ID, U16 connect_index, U16 slave_No, U32 enable_chans);
|
|
U16 FNTYPE W_HSL_AI_GetChannelStatus(U16 card_ID, U16 connect_index, U16 slave_No, U32 *enable_chans);
|
|
|
|
U16 FNTYPE W_HSL_Timer_Set(U16 card_ID, U16 c1, U16 c2);
|
|
U16 FNTYPE W_HSL_TMRINT_Enable(U16 card_ID, HANDLE *phEvent);
|
|
U16 FNTYPE W_HSL_TMRINT_Disable(U16 card_ID);
|
|
|
|
U16 FNTYPE W_HSL_DIO_Memory_In(U16 card_ID, U16 connect_index, U16 *data_in);
|
|
U16 FNTYPE W_HSL_DIO_Memory_Out(U16 card_ID, U16 connect_index, U16 *data_out);
|
|
|
|
// AI16AO2 Module Use
|
|
U16 FNTYPE W_HSL_AI_Set_Last_Channel(U16 card_ID, U16 connect_index, U16 slave_No, U16 Last_Channel); // Used to set last channel
|
|
U16 FNTYPE W_HSL_AI_Get_Last_Channel(U16 card_ID, U16 connect_index, U16 slave_No, U16 *Last_Channel); // Used to set last channel
|
|
U16 FNTYPE W_HSL_AI_Get_Version(U16 card_ID, U16 connect_index, U16 slave_No, U8 *Ver);
|
|
U16 FNTYPE W_HSL_AIO_LoadConfig(U16 card_ID, U16 connect_index, U16 slave_No);
|
|
U16 FNTYPE W_HSL_AIO_SaveConfig(U16 card_ID, U16 connect_index, U16 slave_No);
|
|
U16 FNTYPE W_HSL_AO_Channel_Out(U16 card_ID, U16 connect_index, U16 slave_No, U16 AO_Ch_No, F64 AO_data);
|
|
U16 FNTYPE W_HSL_AIO_Channel_InOut(U16 card_ID, U16 connect_index, U16 slave_No, U16 AI_CH_No, F64 *AI_data, U16 AO_Ch_No, F64 AO_data);
|
|
U16 FNTYPE W_HSL_AO_Channel_In(U16 card_ID, U16 connect_index, U16 slave_No, U16 AO_Ch_No, U16 *AO_data);
|
|
U16 FNTYPE W_HSL_AO_OffsetCalib(U16 card_ID, U16 connect_index, U16 slave_No, U16 DA_CH);
|
|
U16 FNTYPE W_HSL_AO_GainCalib(U16 card_ID, U16 connect_index, U16 slave_No, U16 DA_CH);
|
|
|
|
// TC08 Use
|
|
U16 FNTYPE W_HSL_TC08_Offset_Calib(U16 card_ID, U16 connect_index, U16 slave_No, U16 channel);
|
|
U16 FNTYPE W_HSL_TC08_Span_Calib(U16 card_ID, U16 connect_index, U16 slave_No, U16 channel);
|
|
U16 FNTYPE W_HSL_TC08_Get_Temperature(U16 card_ID, U16 connect_index, U16 slave_No, U16 channel, U16 TC_type, F64 *Temperature);
|
|
|
|
U32* FNTYPE W_HSL_DIO_Memory_Ptr(U16 card_ID, U16 connect_index);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|