SXXXXXXX_PyBusMonitor1553/cpp/GrifoScope/GrifoSdkEif/pub/inc/b1553_driver.h
2025-12-17 07:59:30 +01:00

73 lines
2.4 KiB
C

/*
* b1553_driver.h
*
*/
#ifndef B1553_DRIVER_H_
#define B1553_DRIVER_H_
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
extern void b1553_drv_set_default_rt_address(unsigned int swrt); //0=use HW, to be call prior to b1553_drv_initialize()
extern int b1553_drv_initialize();
extern int b1553_drv_start();
extern int b1553_drv_stop();
extern int b1553_drv_ready();
extern void b1553_drv_ssflag_watchdog_enable(int enabled);
extern void b1553_drv_ssflag_sw_enable(int enabled);
extern void b1553_drv_enable_interrupts(int mode); //mode=0 - level, 1=edge
extern void b1553_drv_disable_interrupts();
extern int b1553_drv_remap(unsigned int ctrl_area, unsigned int cmd_area, unsigned int mem_area, unsigned int flags);
extern int b1553_drv_set_rt_sw_address(unsigned int rt);
extern int b1553_drv_enable_sw_rt_address(int enable);
extern int b1553_drv_get_rta(unsigned int *sw_adr, unsigned int* hw_adr);//return actual address
extern int b1553_drv_msg_configure(unsigned int sa, int rxtx, unsigned int wc_min, unsigned int wc_max, unsigned int flags);
extern int b1553_drv_msg_update(unsigned int sa, int rxtx, const void* data, unsigned int wc);
extern int b1553_drv_msg_get(unsigned int sa, int rxtx, void* data, unsigned int wc);
extern int b1553_drv_msg_get_noupdate(unsigned int sa, int rxtx, void* data, unsigned int wc);
typedef void (*b1153_drv_synch_handler_t)(int synch_word_valid, unsigned int synch_word);
extern int b1553_drv_set_synch_handler(b1153_drv_synch_handler_t handler);
enum b1553_drv_status_flags_t { b1553_drv_busy_flag, b1553_drv_subsystem_flag, b1553_drv_terminal_flag };
extern int b1553_drv_set_status_flag(unsigned int bit, int sts_flag);
extern int b1553_drv_set_busy(int busy);
extern int b1553_drv_set_terminal_flag(int ts);
extern int b1553_drv_set_subsystem_flag(int ss); //-1= HW controlled, 0: sw not set, 1= sw set
extern void b1553_drv_set_bite_word(unsigned int bw);
extern unsigned int b1553_drv_get_bite_word(void);
extern int b1553_drv_msg_dbg_all_valid(void); //only for debug, make all messages valid
extern int b1553_drv_simulate_msg(uint16_t cwraw, unsigned int sa, int rxtx, unsigned int wc, void* data);
//This routine decode the CW and, if valid:
// RX: copy from data to the device internal buffers
// TX: copy from device internal buffer to data
// Return !=0 if message is not valid
#ifdef __cplusplus
}
#endif
#endif /* B1553_DRIVER_H_ */