APCI1710_Chrono.h revision 117102b0f6e0a9ab3ea4fa9fd89b7eb4a8888fb9
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				    struct comedi_insn *insn, unsigned int *data);
40
41int i_APCI1710_InsnWriteEnableDisableChrono(struct comedi_device *dev,
42					    struct comedi_subdevice *s,
43					    struct 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			      struct comedi_insn *insn, unsigned int *data);
51
52int i_APCI1710_GetChronoProgressStatus(struct comedi_device *dev,
53				       unsigned char b_ModulNbr, unsigned char * pb_ChronoStatus);
54
55int i_APCI1710_ReadChronoValue(struct comedi_device *dev,
56			       unsigned char b_ModulNbr,
57			       unsigned int ui_TimeOut, unsigned char * pb_ChronoStatus,
58			       PULONG pul_ChronoValue);
59
60int i_APCI1710_ConvertChronoValue(struct comedi_device *dev,
61				  unsigned char b_ModulNbr,
62				  ULONG ul_ChronoValue,
63				  PULONG pul_Hour,
64				  unsigned char * pb_Minute,
65				  unsigned char * pb_Second,
66				  unsigned int * pui_MilliSecond, unsigned int * pui_MicroSecond,
67				  unsigned int * pui_NanoSecond);
68
69/*
70 * CHRONOMETER DIGITAL INPUT OUTPUT FUNCTION
71 */
72int i_APCI1710_InsnBitsChronoDigitalIO(struct comedi_device *dev,
73				       struct comedi_subdevice *s, struct comedi_insn *insn,
74				       unsigned int *data);
75