Files
sicspsi/hardsup/dillutil.h
2009-02-13 09:01:24 +00:00

107 lines
3.9 KiB
C

/*---------------------------------------------------------------------------
D I L U U T I L
A few utility functions for talking to Dillution temperature controller
CCO-510/ AVSI via the SINQ setup: TCP/IP--MAC--RS-232--DILLU.
This controller is weird in that way, that is accepts temperatures as
resistance values in Ohms. Therefore a translation table is required
in order to convert from Kelvin to Ohms.
Mark Koennecke, October 1997
----------------------------------------------------------------------------*/
#ifndef SINQDILLU
#define SINQDILLU
#include <stdio.h>
#include "table.h"
/*----------------------- ERRORCODES--------------------------------------
Most functions return a negative error code on failure. Error codes
defined are those defined for serialsinq plus a few additional ones:
*/
#define DILLU__FILENOTFOUND -710
#define DILLU__NODILLFILE -711
#define DILLU__ERRORTABLE -712
#define DILLU__BADREAD -713
#define DILLU__SILLYANSWER -714
#define DILLU__READONLY -715
#define DILLU__OUTOFRANGE -716
#define DILLU__BADMALLOC -717
#define DILLU__NODILLUFOUND -711
/*------------------------------------------------------------------------*/
typedef struct __DILLU {
void *pData;
pSTable pTranstable;
int iReadOnly;
} DILLU;
typedef struct __DILLU *pDILLU;
/*-----------------------------------------------------------------------*/
int DILLU_Open(pDILLU * pData, char *pHost, int iPort, int iChannel,
int iMode, char *pTransFile);
/***** creates an DILLU datastructure and opens a connection to the ITCL4
controller. Input Parameters are:
the hostname
the port number
the RS-232 channel number on the Mac.
iMode: 1 for ReadOnly, 0 for normal mode
pTransFile: name and path of the temperature ohms
trnslation file.
Return values are 1 for success, a negative error code on
failure.
*/
void DILLU_Close(pDILLU * pData);
/****** close a connection to an DILLU controller and frees its
data structure. The only parameter is a pointer to the data
structure for this controller. This pointer will be invalid after
this call.
*/
int DILLU_Config(pDILLU * pData, int iTmo);
/***** configure some aspects of a DILLU temperature controller.
The parameter are:
- a pointer to the data structure for the controller as
returned by Open_DILLU
- a value for the connection timeout
The function returns 1 on success, a negative error code on
failure.
*/
int DILLU_Send(pDILLU * pData, char *pCommand, char *pReply, int iLen);
/******* send a the command in pCommand to the DILLU controller.
A possible reply is returned in the buffer pReply.
Maximum iLen characters are copied to pReply.
The first parameter is a pointer to a DILLU data structure
as returned by Open_DILLU.
Return values are 1 for success, a negative error code on
failure.
*/
int DILLU_Read(pDILLU * pData, float *fVal);
/******
Reads the current temperature at the controller
Return values are 1 for success, a negative error code on
failure.
*/
int DILLU_Set(pDILLU * pData, float fVal);
/****** sets a new preset temperature in the DILL temperature
controller. Parameters are:
- a pointer to a DILLU data structure as returned by Open_DILLU.
- the new preset value.
Return values are 1 for success, a negative error code on
failure.
*/
void DILLU_Error2Text(pDILLU * pData, int iCode, char *pError, int iLen);
#endif