VME Counter API Manual
Functions
int api_vmecounter_init(const int st,
const int bd);
int api_vmecounter_read_count(cont int st,
const int bd, const float time, long *count);
Defined constants
API_VMECOUNTER_STn    (n=1,2,...)
API_VMECOUNTER_BOARD_n    (n=0,1,...)
API_VMECOUNTER_INVALID_STATION
API_VMECOUNTER_INVALID_BOARD
Description
int api_vmecounter_init(const int st,
const int bd);
This function will initialize the VME based counter/timer specified
by st (the station number) and bd (the board number). For
each board this function should be called. The function returns API_VMECOUNTER_TRUE
if the board was initialized. Otherwise the error code API_VMECOUNTER_INVALID_STATION
or API_VMECOUNTER_INVALID_BOARD will be returned.
int api_vmecounter_read_count(cont int st,
const int bd, const float time, long *count);
This function will count the signal for time sec. The board
is specified by st (the station number) and bd (the board
number). The function returns API_VMECOUNTER_TRUE when the counting
was finished. The error code API_VMECOUNTER_INVALID_STATION or API_VMECOUNTER_INVALID_BOARD
will be returned immediately.
Example
#include "api_sock.h"
#include "api_vmecounter.h"
int main(void)
{
  int err;
  long c[8];
  float time;
  /* Open socket to BL WS */
  api_sock_open();
  /* Initialize VME based counter/timer board */
  err=api_vmecounter_init(API_VMECOUNTER_ST1, API_VMECOUNTER_BOARD_0);
  if(err < 0) printf("error code=%ld\n", err);
  time=1.0;
  /* Count for 1.0 sec */
  err=api_vmecounter_read_count(API_VMECOUNTER_ST1, API_VMECOUNTER_BOARD_0,
time, c);
  /* Display the result */
  printf("counter ch0=%ld cps\n", c[0]);
  /* close the socket */
  api_sock_close();
  return(0);
}