Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 39 additions & 2 deletions EXAMPLES.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,43 @@ LED Matrix
[...]
```

## Check input deck status

### On Framework 12

```
> framework_tool --inputdeck
Input Deck
Chassis Closed: true
Power Button Board: Present
Audio Daughterboard: Present
Touchpad: Present
```

### On Framework 13

```
> framework_tool --inputdeck
Input Deck
Chassis Closed: true
Audio Daughterboard: Present
Touchpad: Present
```

### On Framework 16

```
> framework_tool --inputdeck
Chassis Closed: true
Input Deck State: On
Touchpad present: true
Positions:
Pos 0: GenericC
Pos 1: KeyboardA
Pos 2: Disconnected
Pos 3: Disconnected
Pos 4: GenericC
```

## Check temperatures and fan speed

Expand Down Expand Up @@ -145,8 +182,8 @@ ALS: 76 Lux
> sudo framework_tool --expansion-bay
Expansion Bay
Enabled: true
Has fault: false
Hatch closed: true
No fault: true
Door closed: true
Board: DualInterposer
Serial Number: FRAXXXXXXXXXXXXXXX
```
15 changes: 9 additions & 6 deletions framework_lib/src/chromium_ec/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -483,7 +483,7 @@ impl CrosEc {
let is_present = |p| if p { "Present" } else { "Missing" };

println!("Input Deck");
println!(" Chassis Open: {}", intrusion.currently_open);
println!(" Chassis Closed: {}", intrusion.currently_open);
println!(" Power Button Board: {}", is_present(pwrbtn.is_some()));
println!(" Audio Daughterboard: {}", is_present(audio.is_some()));
println!(" Touchpad: {}", is_present(tp.is_some()));
Expand Down Expand Up @@ -511,7 +511,7 @@ impl CrosEc {
let is_present = |p| if p { "Present" } else { "Missing" };

println!("Input Deck");
println!(" Chassis Open: {}", intrusion.currently_open);
println!(" Chassis Closed: {}", intrusion.currently_open);
println!(" Audio Daughterboard: {}", is_present(audio.is_some()));
println!(" Touchpad: {}", is_present(tp.is_some()));

Expand All @@ -521,7 +521,7 @@ impl CrosEc {
pub fn print_fw16_inputdeck_status(&self) -> EcResult<()> {
let intrusion = self.get_intrusion_status()?;
let status = self.get_input_deck_status()?;
println!("Chassis Open: {}", intrusion.currently_open);
println!("Chassis Closed: {}", intrusion.currently_open);
println!("Input Deck State: {:?}", status.state);
println!("Touchpad present: {}", status.touchpad_present);
println!("Positions:");
Expand Down Expand Up @@ -961,8 +961,8 @@ impl CrosEc {

let info = EcRequestExpansionBayStatus {}.send_command(self)?;
println!(" Enabled: {}", info.module_enabled());
println!(" Has fault: {}", info.module_fault());
println!(" Hatch closed: {}", info.hatch_switch_closed());
println!(" No fault: {}", !info.module_fault());
println!(" Door closed: {}", info.hatch_switch_closed());
match info.expansion_bay_board() {
Ok(board) => println!(" Board: {:?}", board),
Err(err) => println!(" Board: {:?}", err),
Expand Down Expand Up @@ -1086,14 +1086,17 @@ impl CrosEc {
/// Check features supported by the firmware
pub fn get_features(&self) -> EcResult<()> {
let data = EcRequestGetFeatures {}.send_command(self)?;
println!(" ID | Name | Enabled?");
println!(" -- | --------------------------- | --------");
for i in 0..64 {
let byte = i / 32;
let bit = i % 32;
let val = (data.flags[byte] & (1 << bit)) > 0;
let feat: Option<EcFeatureCode> = FromPrimitive::from_usize(i);

if let Some(feat) = feat {
println!("{:>2}: {:>5} {:?}", i, val, feat);
let name = format!("{:?}", feat);
println!(" {:>2} | {:<27} | {:>5}", i, name, val);
}
}

Expand Down