public boolean waitForSignal(int appID, long timeoutMillis) throws CapiException {
   return capi.waitForSignal(appID, timeoutMillis);
 }
 public byte[] getMessage(int appID) throws CapiException {
   return capi.getMessage(appID);
 }
 public void release(int appID) throws CapiException {
   capi.release(appID);
 }
 public boolean waitForSignal(int appID) throws CapiException {
   return capi.waitForSignal(appID);
 }
 public boolean isInstalled() throws CapiException {
   return capi.isInstalled();
 }
 public int register(
     int messageBufferSize, int maxLogicalConnection, int maxBDataBlocks, int maxBDataLen)
     throws CapiException {
   return capi.register(messageBufferSize, maxLogicalConnection, maxBDataBlocks, maxBDataLen);
 }
 public int getVersion(int controller) throws CapiException {
   return capi.getVersion(controller);
 }
 public String getSerialNumber(int controller) throws CapiException {
   return capi.getSerialNumber(controller);
 }
 public String getManufacturer(int controller) throws CapiException {
   return capi.getManufacturer(controller);
 }
 public void putMessage(int appID, byte[] message) throws CapiException {
   capi.putMessage(appID, message);
 }
 public byte[] getProfile(int controller) throws CapiException {
   return capi.getProfile(controller);
 }