APCI1710_Chrono.h revision 34c43922e62708d45e9660eee4b4f1fb7b4bf2c7
1/*
2 * Copyright (C) 2004,2005  ADDI-DATA GmbH for the source code of this module.
3 *
4 *	ADDI-DATA GmbH
5 *	Dieselstrasse 3
6 *	D-77833 Ottersweier
7 *	Tel: +19(0)7223/9493-0
8 *	Fax: +49(0)7223/9493-92
9 *	http://www.addi-data-com
10 *	info@addi-data.com
11 *
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License as published by the Free
14 * Software Foundation; either version 2 of the License, or (at your option)
15 * any later version.
16 */
17
18#define APCI1710_30MHZ			30
19#define APCI1710_33MHZ			33
20#define APCI1710_40MHZ			40
21
22#define APCI1710_SINGLE			0
23#define APCI1710_CONTINUOUS		1
24
25#define APCI1710_CHRONO_PROGRESS_STATUS	0
26#define APCI1710_CHRONO_READVALUE	1
27#define APCI1710_CHRONO_CONVERTVALUE	2
28#define APCI1710_CHRONO_READINTERRUPT	3
29
30#define APCI1710_CHRONO_SET_CHANNELON	0
31#define APCI1710_CHRONO_SET_CHANNELOFF	1
32#define APCI1710_CHRONO_READ_CHANNEL	2
33#define APCI1710_CHRONO_READ_PORT	3
34
35/*
36 * CHRONOMETER INISIALISATION FUNCTION
37 */
38INT i_APCI1710_InsnConfigInitChrono(struct comedi_device *dev, struct comedi_subdevice *s,
39				    comedi_insn *insn, unsigned int *data);
40
41INT i_APCI1710_InsnWriteEnableDisableChrono(struct comedi_device *dev,
42					    struct comedi_subdevice *s,
43					    comedi_insn *insn,
44					    unsigned int *data);
45
46/*
47 * CHRONOMETER READ FUNCTION
48 */
49INT i_APCI1710_InsnReadChrono(struct comedi_device *dev, struct comedi_subdevice *s,
50			      comedi_insn *insn, unsigned int *data);
51
52INT i_APCI1710_GetChronoProgressStatus(struct comedi_device *dev,
53				       BYTE b_ModulNbr, PBYTE pb_ChronoStatus);
54
55INT i_APCI1710_ReadChronoValue(struct comedi_device *dev,
56			       BYTE b_ModulNbr,
57			       UINT ui_TimeOut, PBYTE pb_ChronoStatus,
58			       PULONG pul_ChronoValue);
59
60INT i_APCI1710_ConvertChronoValue(struct comedi_device *dev,
61				  BYTE b_ModulNbr,
62				  ULONG ul_ChronoValue,
63				  PULONG pul_Hour,
64				  PBYTE pb_Minute,
65				  PBYTE pb_Second,
66				  PUINT pui_MilliSecond, PUINT pui_MicroSecond,
67				  PUINT pui_NanoSecond);
68
69/*
70 * CHRONOMETER DIGITAL INPUT OUTPUT FUNCTION
71 */
72INT i_APCI1710_InsnBitsChronoDigitalIO(struct comedi_device *dev,
73				       struct comedi_subdevice *s, comedi_insn *insn,
74				       unsigned int *data);
75