View Javadoc
1   package org.metricshub.ipmi.core.coding.payload.sol;
2   
3   /*-
4    * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
5    * IPMI Java Client
6    * ჻჻჻჻჻჻
7    * Copyright 2023 Verax Systems, MetricsHub
8    * ჻჻჻჻჻჻
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU Lesser General Public License as
11   * published by the Free Software Foundation, either version 3 of the
12   * License, or (at your option) any later version.
13   *
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Lesser Public License for more details.
18   *
19   * You should have received a copy of the GNU General Lesser Public
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/lgpl-3.0.html>.
22   * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
23   */
24  
25  /**
26   * Enumeration of all possible states, that Remote Console can receive from BMC during SOL communication.
27   */
28  public enum SolStatus {
29  	/**
30  	 * Character transfer is unavailable because system is in a powered-down or sleep state.
31  	 */
32  	CharacterTransferUnavailable(5),
33  
34  	/**
35  	 * SOL is deactivated/deactivating.
36  	 * (Remote console can use this to tell if SOL was deactivated by some other party,
37  	 * or by local pushbutton reset or power on/off).
38  	 */
39  	SolDeactivated(4),
40  
41  	/**
42  	 * Characters were dropped between transmitting this packet and the previous packet,
43  	 * because the system did not pay attention to hardware flow control.
44  	 */
45  	TransmitOverrun(3),
46  
47  	/**
48  	 * A break condition from the system has been detected.
49  	 * The BMC will generate this only on one packet at the start of the break.
50  	 */
51  	Break(2),
52  
53  	/**
54  	 * When test mode active, signals that RTS is asserted on serial port.
55  	 * For test mode inactive, it is unused.
56  	 * A packet with this status will be automatically sent whenever RTS changes state.
57  	 * Note that this packet may not contain character data.
58  	 */
59  	RtsAsserted(1),
60  
61  	/**
62  	 * When test mode active, signals that DTR is asserted on serial port.
63  	 * For test mode inactive, it is unused.
64  	 * A packet with this status will be automatically sent whenever DTR changes state.
65  	 * Note that this packet may not contain character data.
66  	 */
67  	DtrAsserted(0);
68  
69  	/**
70  	 * ID of the status (number of bit in status field byte).
71  	 */
72  	private final int statusNumber;
73  
74  	SolStatus(int statusNumber) {
75  		this.statusNumber = statusNumber;
76  	}
77  
78  	/**
79  	 * Returns the bit of the status in the Operation/Status byte of a SOL packet from the BMC (IPMI 2.0 table 15-2).
80  	 *
81  	 * @return the bit number, 0 to 5
82  	 */
83  	public int getStatusNumber() {
84  		return statusNumber;
85  	}
86  }