#ifndef _TECS_LSC_H_
#define _TECS_LSC_H_

#include "tecs_serial.h"

char *LscCmd(SerChannel *ser, const char *cmds);
/*
  Send commands to LSC-340.
  There may be several commands separated by semicolon.
  A special syntax is used:
    - Commands containing a colon are commands with query,
      i.e. the sent parameters are checked. The sent parameters
      are those after the query, the command before the colon
      is used as query, after inserting a question mark.
    - Variable names in square brackets are substitute by their value
    - Return values may be assigned to variables, separated by
      a right angle bracket. There may be several variables
      separated by comma, corresponding to the returned parameters,
      beeing separated by commas also. If the variable is not terminated
      by a comma, the whole remaining result is assigned, even if it
      contains commas. Return values may only be used when a command
      with wuery was sent, or when the command was a query (containing
      a question mark).

    Example:

      LscCmd(ser, "RANGE:5>range;SETP 1:[tempH];CRVHDR?[num]>name,head;MODE 2");

      assume that tempH=295 and num=25 the command sent to LSC is:

      RANGE 5;RANGE?;SETP 1,295;SETP?1;CRVHDR?25;MODE 2

      and assume LSC sens back:

      3;295.000E+00;CTI5           ,R10410    ,3,+330.000E+0,2

      then the following variables will be assigned:

      range=3
      name="CTI5"
      head="R10410    ,3,+330.000E+0,2"

      All used variables have to be declared with CocDef... (see coc_server.h)
*/

int LscEqPar(char *par, char *res);
/*
  compare if parameters are equal (numbers as numbers, spaces ignored)
  if any parameter in par is omitted, it is not compared
*/

char *LscReadStat(int stat);

char *LscHtrStat(int stat);

#endif /* _TECS_LSC_H_ */
