библиотека для ИПС-6 -------------------- Описание функций бибилиотеки: typedef int crate; - идентификатор крейта(id) crate OpenCrate(unsigned int CardN, unsigned int CrateN); ----------------------------------------------------------------------------- Параметры: CardN - порядковый номер карточки, считая не от проца. CrateN - номер канала(крейта), отсчитывая от основания разъема. Возвращаемое значение: crate - идентификатор канала в слувае удачи. "-1" - при ошибке. Замечания: функция OpenCrate открывает необходимый канал. Идентификатор канала используется во всех остальных операциях с КАМАК'ом. int CloseCrate(crate CN); ----------------------------------------------------------------------------- Параметры: crate - идентификатор канала. Возвращаемое значение: "0" - ок, "-1" - ошибка. Замечания: закрывает канал, в дальнейшем использование идентификатора не допустимо. WORD cam16write(crate CN, int N, int A, WORD *data); WORD cam24write(crate CN, int N, int A, DWORD *data); WORD cam16read(crate CN, int N, int A, WORD *data); WORD cam24read(crate CN, int N, int A, DWORD *data); ----------------------------------------------------------------------------- Параметры: crate - идентификатор канала N - номер позиции в крейте A - субадрес data - указатель на данные. Возвращаемое значение: статусный регистр ИПС-6(на каждый канал), младших 2 байта: ----------------------------------------- | | | | | | | | |X|Q|To|Er|AX|AQ|ATo|AEr| ----------------------------------------- To - Time Out Er - Error(ошибка контрольной суммы) A - накопленный. Замечания: функции производят соответственно по порядку 1.запись 16 битов 2.запись 24 битов 3.чтение 16 битов 4.чтение 24 битов При записи/чтении данные счтитываются/записываются по указателю data. WORD cam16(crate CN, int N, int A, int F, WORD *data); WORD cam24(crate CN, int N, int A, int F, DWORD *data); ----------------------------------------------------------------------------- Параметры: crate - идентификатор канала N - номер позиции в крейте A - субадрес F - функция data - указатель на данные. Возвращаемое значение: статусный регистр ИПС-6(на каждый канал), младших 2 байта: ----------------------------------------- | | | | | | | | |X|Q|To|Er|AX|AQ|ATo|AEr| ----------------------------------------- To - Time Out Er - Error(ошибка контрольной суммы) A - накопленный. Замечания: выполняется запись функции в статусный регистр контроллера и запуск КАМАК-цикла. При записи/чтении данные счтитываются/записываются по указателю data. WORD cam16Block(crate CN, int N, int A, int F,unsigned long NWORD, WORD *data); WORD cam24Block(crate CN, int N, int A, int F, unsigned int NDWORD, DWORD *data); ----------------------------------------------------------------------------- Параметры: crate - идентификатор канала N - номер позиции в крейте A - субадрес F - функция NWORD(NDWORD) - число слов в массиве data - указатель на массив из NWORD(NDWORD) слов. Возвращаемое значение: статусный регистр ИПС-6(на каждый канал), младших 2 байта: ----------------------------------------- | | | | | | | | |X|Q|To|Er|AX|AQ|ATo|AEr| ----------------------------------------- To - Time Out Er - Error(ошибка контрольной суммы) A - накопленный. Замечания: выполняется запись функции в статусный регистр контроллера и запуск КАМАК-цикла NWORD(NDWORD) раз. При записи/чтении данные счтитываются/записываются по указателю data с инкрементом. WORD camZ(crate CN); WORD camC(crate CN); ----------------------------------------------------------------------------- Параметры: crate - идентификатор канала Возвращаемое значение: статусный регистр ИПС-6(на каждый канал), младших 2 байта: ----------------------------------------- | | | | | | | | |X|Q|To|Er|AX|AQ|ATo|AEr| ----------------------------------------- To - Time Out Er - Error(ошибка контрольной суммы) A - накопленный. Замечания: выполняется запись бита С или Z в статусный регистр контроллера и запуск КАМАК-цикла. При записи/чтении данные счтитываются/записываются по указателю data с инкрементом. int ClearStatus(crate CN); ----------------------------------------------------------------------------- Параметры: crate - идентификатор канала Возвращаемое значение: статусный регистр ИПС-6(на каждый канал), младших 2 байта: ----------------------------------------- | | | | | | | | |X|Q|To|Er|AX|AQ|ATo|AEr| ----------------------------------------- To - Time Out Er - Error(ошибка контрольной суммы) A - накопленный. Замечания: стирает накопленный статус int GetChannels(unsigned int CardN); ----------------------------------------------------------------------------- Параметры: CardN - Номер карточки Возвращаемое значение: количество запаянных каналов Замечания: возвращает количество каналов typedef void (*INTLAMFUNC)(crate CN, PVOID param); // определение функции обработчика int SetIntOnLAMfunc(crate CN, INTLAMFUNC _intf); ----------------------------------------------------------------------------- Параметры: crate CN - идентификатор канала Возвращаемое значение: "0" - ок, "-1" - ошибка. Замечания: Устанавливает функцию обработки прерываний. При срабатывании прерывания происходит автоматическая маскировка(запрещение) прерывания. int LAMIntEnable(crate CN, PVOID param); ----------------------------------------------------------------------------- Параметры: crate CN - идентификатор канала PVOID param - параметр, который передается в функцию обработчик. Возвращаемое значение: "0" - ок, "-1" - ошибка. Замечания: Включает прерывания для соответствующего канала. int LAMIntDisable(crate CN); ----------------------------------------------------------------------------- Параметры: crate CN - идентификатор канала Возвращаемое значение: "0" - ок, "-1" - ошибка. Замечания: Выключает прерывания для соответствующего канала. int LAMIntIsEnabled(crate CN); ----------------------------------------------------------------------------- Параметры: crate CN - идентификатор канала Возвращаемое значение: "0" - прерывание выключено, "1" - включено. Замечания: Проверка прерывания. void GetErrStr(char * str); ----------------------------------------------------------------------------- Параметры: char * str - указтель на строку из 1024 байт. Замечания: Копирует сообщение последней ошибки по str.На допустимость не проверяется -----------------------------------------------------------------------------