#ifndef __GPIB_IO_H__ #define __GPIB_IO_H__ #include "type.h" void gpib_io_init(); void gpib_io_set_timeout(); #define GPIB_WRITE_USE_EOI 0x01 u8 gpib_putchar(char c, u8 flags); u16 gpib_write(char *buf, u16 length, u8 flags); #define GPIB_GETCHAR_IS_ERROR(x) (x < 0) #define GPIB_GETCHAR_IS_EOI(x) (x >= 0x100) #define GPIB_GETCHAR_IS_CMD(x) (x >= 0x200) #define GPIB_GETCHAR_TO_DATA(x) ((u8)(x & 0xFF)) int gpib_getchar(); #define GPIB_READ_UNTIL_EOI 0x01 u16 gpib_read(void (*push)(char), u8 flags); enum uniline_message_t { GPIB_UNI_CMD_START, GPIB_UNI_CMD_END, GPIB_UNI_BUS_CLEAR_START, GPIB_UNI_BUS_CLEAR_END, GPIB_UNI_CHECK_SRQ_ASSERT, GPIB_UNI_SRQ_ASSERT, GPIB_UNI_SRQ_DEASSERT, }; u8 gpib_uniline(enum uniline_message_t msg); #endif /* __GPIB_IO_H__ */