]> git.tdb.fi Git - r2c2.git/blob - source/libmarklin/constants.h
Rewrite command/reply system
[r2c2.git] / source / libmarklin / constants.h
1 /* $Id$
2
3 This file is part of the MSP Märklin suite
4 Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa
5 Distributed under the GPL
6 */
7
8 #ifndef ERROR_H_
9 #define ERROR_H_
10
11 #include <ostream>
12
13 namespace Marklin {
14
15 enum Error
16 {
17         ERR_NO_ERROR=0,
18         ERR_SYS_ERROR,
19         ERR_BAD_PARAM,
20         ERR_POWER_OFF=0x6,
21         ERR_NO_LOK_SPACE=0x8,  // No space in lok command buffer
22         ERR_NO_TURNOUT_SPACE,  // No space in turnout command buffer
23         ERR_NO_DATA,           // "no Lok status available (Lok is not in a slot)"
24         ERR_NO_SLOT,           // "there is no slot available"
25         ERR_BAD_LOK_ADDR,
26         ERR_LOK_BUSY,
27         ERR_BAD_TURNOUT_ADDR,
28         ERR_BAD_SO_VALUE,
29         ERR_NO_I2C_SPACE,
30         ERR_LOW_TURNOUT_SPACE=0x40,
31         ERR_LOK_HALTED,
32         ERR_LOK_POWER_OFF,
33         ERR_UNKNOWN_ERROR=0xFF
34 };
35
36 std::ostream &operator<<(std::ostream &, const Error &);
37
38 enum Cmd
39 {
40         CMD_LOK=0x80,
41         CMD_LOK_STATUS=0x84,
42         CMD_LOK_CONFIG=0x85,
43         CMD_FUNC=0x88,
44         CMD_FUNC_STATUS=0x8C,
45         CMD_TURNOUT=0x90,
46         CMD_TURNOUT_FREE=0x93,
47         CMD_TURNOUT_STATUS=0x94,
48         CMD_TURNOUT_GROUP_STATUS=0x95,
49         CMD_SENSOR_STATUS=0x98,
50         CMD_SENSOR_REPORT=0x99,
51         CMD_SENSOR_PARAM_SET=0x9D,
52         CMD_STATUS=0xA2,
53         CMD_POWER_OFF=0xA6,
54         CMD_POWER_ON=0xA7,
55         CMD_NOP=0xC4,
56         CMD_EVENT=0xC8,
57         CMD_EVENT_LOK=0xC9,
58         CMD_EVENT_TURNOUT=0xCA,
59         CMD_EVENT_SENSOR=0xCB
60 };
61
62 std::ostream &operator<<(std::ostream &, const Cmd &);
63
64 } // namespace Marklin
65
66 #endif