MVMFirmwareCpp v0.1
fw_board_ni_v4.h
Go to the documentation of this file.
1 // fw_board_ni_v4.h
2 
3 #ifndef _FW_BOARD_NI_V4_h
4 #define _FW_BOARD_NI_V4_h
5 
6 #if defined(ARDUINO) && ARDUINO >= 100
7  #include "arduino.h"
8 #else
9  #include "WProgram.h"
10 #endif
11 
12 #include "hw.h"
13 
14 #define IIC_COUNT 8
15 
16 #define PLOOP_MODEL GS_05
17 #define PPATIENT_MODEL DS_01
18 #define PVENTURI DS_01
19 
23 class HW_V4 : public HW {
24 public:
25 
26 
27  bool Init();
28  bool I2CWrite(t_i2cdevices device, uint8_t* wbuffer, int wlength, bool stop);
29  bool I2CRead(t_i2cdevices device, uint8_t* wbuffer, int wlength, uint8_t* rbuffer, int rlength, bool stop);
30  bool I2CRead(t_i2cdevices device, uint8_t* rbuffer, int rlength, bool stop);
31  bool PWMSet(hw_pwm id, float value);
32  bool IOSet(hw_gpio id, bool value);
33  bool IOGet(hw_gpio id, bool* value);
34  void PrintDebugConsole(String s);
35  void PrintLineDebugConsole(String s);
36  void __delay_blocking_ms(uint32_t ms);
37  void Tick();
38  uint64_t GetMillis();
39  int64_t Get_dT_millis(uint64_t ms);
40  bool DataAvailableOnUART0();
41  String ReadUART0UntilEOL();
42  bool WriteUART0(String s);
43  void GetPowerStatus(bool* batteryPowered, float* charge);
44  float GetPIN();
45  float GetBoardTemperature();
46  uint16_t GetSupervisorAlarms();
47 
48 
49 
50 private:
52  void __service_i2c_detect();
53  void i2c_MuxSelect(uint8_t i);
55 
56  uint16_t ReadSupervisor( uint8_t i_address);
57  void WriteSupervisor(uint8_t i_address, uint16_t write_data);
58 
59 
61  uint8_t current_muxpos = 10;
62 
65  bool pWall;
66 
67  float pIN;
69  uint16_t HW_AlarmsFlags;
70 
71 };
72 
73 
74 #endif
75 
76 // # # ###
77 // ## # #
78 // # # # #
79 // # # # #
80 // # # # #
81 // # ## #
82 // # # ###
83 //
84 // Nuclear Instruments 2020 - All rights reserved
85 // Any commercial use of this code is forbidden
86 // Contact info@nuclearinstruments.eu
HW_V4::pIN
float pIN
Definition: fw_board_ni_v4.h:67
HW_V4::Init
bool Init()
Initialize hardware peripheral in the system.
Definition: fw_board_ni_v4.cpp:36
HW_V4::PrintLineDebugConsole
void PrintLineDebugConsole(String s)
Print a message on console used for Debug with a CR+LR at end.
Definition: fw_board_ni_v4.cpp:384
HW_V4::GetSupervisorAlarms
uint16_t GetSupervisorAlarms()
API return Supervisor managed alarms.
Definition: fw_board_ni_v4.cpp:652
HW_V4::iic_devs
t_i2cdev iic_devs[IIC_COUNT]
Definition: fw_board_ni_v4.h:60
HW_V4::I2CRead
bool I2CRead(t_i2cdevices device, uint8_t *wbuffer, int wlength, uint8_t *rbuffer, int rlength, bool stop)
Write buffer to I2C bus and read data.
Definition: fw_board_ni_v4.cpp:182
HW_V4::ReadUART0UntilEOL
String ReadUART0UntilEOL()
Return a terminated string from communication interface.
Definition: fw_board_ni_v4.cpp:474
arduino.h
IIC_COUNT
#define IIC_COUNT
Definition: fw_board_ni_v4.h:14
hw_gpio
hw_gpio
Definition: generic_definitions.h:33
HW_V4::__service_i2c_detect
void __service_i2c_detect()
Detect all I2C devices on bus.
Definition: fw_board_ni_v4.cpp:506
HW_V4::PrintDebugConsole
void PrintDebugConsole(String s)
Print a message on console used for Debug.
Definition: fw_board_ni_v4.cpp:368
HW_V4::I2CWrite
bool I2CWrite(t_i2cdevices device, uint8_t *wbuffer, int wlength, bool stop)
Write buffer to I2C bus.
Definition: fw_board_ni_v4.cpp:145
hw.h
HW_V4::pWall
bool pWall
Definition: fw_board_ni_v4.h:65
HW_V4::batteryStatus_reading_LT
uint64_t batteryStatus_reading_LT
Definition: fw_board_ni_v4.h:63
HW_V4::WriteUART0
bool WriteUART0(String s)
API to write a string to the communication interfaces.
Definition: fw_board_ni_v4.cpp:463
t_i2cdev
Definition: generic_definitions.h:51
HW_V4::Tick
void Tick()
Tick function must be called periodically.
Definition: fw_board_ni_v4.cpp:403
HW_V4::currentBatteryCharge
float currentBatteryCharge
Definition: fw_board_ni_v4.h:64
HW_V4::GetIICDevice
t_i2cdev GetIICDevice(t_i2cdevices device)
Search in the iic_devs list a particular device and return descriptor.
Definition: fw_board_ni_v4.cpp:570
HW_V4::GetPowerStatus
void GetPowerStatus(bool *batteryPowered, float *charge)
API to read battery charge and power supply status.
Definition: fw_board_ni_v4.cpp:438
HW_V4::GetPIN
float GetPIN()
API return pressure on input of MVM.
Definition: fw_board_ni_v4.cpp:623
HW_V4::BoardTemperature
float BoardTemperature
Definition: fw_board_ni_v4.h:68
HW_V4
Driver for the Nuclear Instruments V4 Hardware Board.
Definition: fw_board_ni_v4.h:23
HW_V4::GetBoardTemperature
float GetBoardTemperature()
API return temperature of the board.
Definition: fw_board_ni_v4.cpp:633
t_i2cdevices
t_i2cdevices
Definition: generic_definitions.h:36
HW_V4::HW_AlarmsFlags
uint16_t HW_AlarmsFlags
Definition: fw_board_ni_v4.h:69
HW_V4::DataAvailableOnUART0
bool DataAvailableOnUART0()
API to read if on the communication interfaces there are bytes to be read.
Definition: fw_board_ni_v4.cpp:452
HW_V4::PWMSet
bool PWMSet(hw_pwm id, float value)
Control PWM device (PV1)
Definition: fw_board_ni_v4.cpp:256
HW_V4::EnableWatchdogSupervisor
bool EnableWatchdogSupervisor
Definition: fw_board_ni_v4.h:51
HW_V4::WriteSupervisor
void WriteSupervisor(uint8_t i_address, uint16_t write_data)
Write a supervisor register.
Definition: fw_board_ni_v4.cpp:607
HW_V4::ReadSupervisor
uint16_t ReadSupervisor(uint8_t i_address)
Read a supervisor register.
Definition: fw_board_ni_v4.cpp:587
HW_V4::IOSet
bool IOSet(hw_gpio id, bool value)
Set a GPIO Status (IE Control PV6, Alarms, etc)
Definition: fw_board_ni_v4.cpp:288
HW_V4::current_muxpos
uint8_t current_muxpos
Definition: fw_board_ni_v4.h:61
HW_V4::IOGet
bool IOGet(hw_gpio id, bool *value)
Get GPIO Status.
Definition: fw_board_ni_v4.cpp:325
HW_V4::i2c_MuxSelect
void i2c_MuxSelect(uint8_t i)
Switch I2C multiplexer.
Definition: fw_board_ni_v4.cpp:546
hw_pwm
hw_pwm
Definition: generic_definitions.h:32