TEMU  4.4
The Terma Emulator
Power.h
Go to the documentation of this file.
1 //===------------------------------------------------------------*- C++ -*-===//
2 //
3 // TEMU: The Terma Emulator
4 // (c) Terma 2017
5 // Authors: Mattias Holm <maho (at) terma.com>
6 //
7 //===----------------------------------------------------------------------===//
8 
9 /*
10  * EXPERIMENTAL INTERFACE: This interface is undergoing public review
11  */
12 #ifndef TEMU_MODELS_POWER_H
13 #define TEMU_MODELS_POWER_H
14 
15 #include "temu-c/Support/Objsys.h"
16 
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 //! Used to indicate whether a model is powered on
23 typedef enum {
24  tePS_Off, //!< System is powered off
25  tePS_On, //!< System is powered on
26 } temu_PowerState;
27 
28 //! Power interface
29 typedef struct {
30  //! Power on device
31  void (*powerOn)(void *Obj);
32  //! Power off device
33  void (*powerOff)(void *Obj);
34  //! Get current power state
35  temu_PowerState (*getPowerState)(void *Obj);
36 } temu_PowerIface;
37 
38 #define TEMU_POWER_IFACE_TYPE "PowerIface"
39 TEMU_IFACE_REFERENCE_TYPE(temu_Power);
40 
41 
42 // Power line interface is experimental
43 typedef struct {
44  void (*setCurrent)(void *Obj, double Current);
45  double (*getCurrent)(void *Obj);
46  void (*setVoltage)(void *Obj, double Voltage);
47  double (*getVoltage)(void *Obj);
48 } temu_PowerLineIface;
49 
50 #define TEMU_POWER_LINE_IFACE_TYPE "PowerLineIface"
51 TEMU_IFACE_REFERENCE_TYPE(temu_PowerLine);
52 
53 
54 #ifdef __cplusplus
55 }
56 #endif
57 
58 #endif /* !TEMU_MODELS_POWER_H */
tePS_Off
@ tePS_Off
System is powered off.
Definition: Power.h:24
temu_PowerIface::powerOff
void(* powerOff)(void *Obj)
Power off device.
Definition: Power.h:33
temu_PowerLineIface::setVoltage
void(* setVoltage)(void *Obj, double Voltage)
Definition: Power.h:46
temu_PowerLineIface::getVoltage
double(* getVoltage)(void *Obj)
Definition: Power.h:47
temu_PowerIface::powerOn
void(* powerOn)(void *Obj)
Power on device.
Definition: Power.h:31
temu_PowerLineIface::getCurrent
double(* getCurrent)(void *Obj)
Definition: Power.h:45
tePS_On
@ tePS_On
System is powered on.
Definition: Power.h:25
temu_PowerLineIface::setCurrent
void(* setCurrent)(void *Obj, double Current)
Definition: Power.h:44