BQ28Z610 Driver
BQ28Z610 Battery fuel gauge device driver for Arduino
Loading...
Searching...
No Matches
utils.h
Go to the documentation of this file.
1
29#pragma once
30
31#include <Arduino.h>
32#include <Wire.h>
33
34#include "globals.h"
35
36#define KELVIN_TO_CELSIUS(k) (k - 273.15)
37
42#define PGM_PRINT(s) Serial.print(stringFromProgmem(PSTR(s)))
43
48#define PGM_PRINTLN(s) Serial.println(stringFromProgmem(PSTR(s)))
49
55bool isAllowedRequestPayloadSize(int len);
56
57int sendCommand(byte command);
58
68int sendCommand(byte reg, word command);
69
77int sendData(byte reg, byte *data, int len);
78
86int requestBlock(byte *buf);
87
88byte requestByte();
89
96int requestBytes(byte *buf, int len);
97
103word requestWord();
104
116byte checksum(byte *data, byte len);
117
125bool validate(byte *data);
126
139word composeWord(byte *buf, int lowerByteIndex = 0, bool littleEndian = true);
140
152u32 composeDoubleWord(byte *buf);
153
165u32 composeValue(byte *buf, int from, int till);
166
170String stringFromProgmem(PGM_P stringPtr);
171
175void printBin(u32 val, int n, bool newLine = false);
176
182void printLongSplitBin(u32 val);
183void printLongBin(u32 val, bool newLine = false);
184void printWordBin(word val, bool newLine = false);
185void printByteBin(byte val, bool newLine = false);
186
190void printLongHex(u32 val, bool newLine = false);
191void printWordHex(word val, bool newLine = false);
192void printWordHex(PGM_P caption, word val, bool newLine = true);
193void printByteHex(byte val, bool newLine = false);
194
199void printBytesHex(byte *buf, int len);
200
204void printInteger(PGM_P caption, int value, bool newLine = true);
205
209void printInteger(PGM_P caption, int value, PGM_P units, bool newLine = true);
210
214void printInteger(int value, PGM_P units, bool newLine = false);
215
216void printFloat(float value, int format, PGM_P units, bool newLine = false);
217void printFloat(PGM_P caption, float value, int format, PGM_P units);
218void printFloat(PGM_P caption, float value, int format, PGM_P (*unitsFn)());
219
224void printPremil(PGM_P caption, int value, PGM_P units);
225void printPremil(PGM_P caption, int value, PGM_P (*unitsFn)());
226
230void printFlag(PGM_P caption, u32 flags, int n);
231
236void printFlag(PGM_P caption, u32 flags, Flag (*flagFn)());
237
241void printFlag(PGM_P caption, u32 flags, Flag flag);
242
246void printFlag(u32 flags, Flag flag);
Global constants.
Structure that stores flag information.
Definition flags.h:36
int sendData(byte reg, byte *data, int len)
Definition utils.cpp:101
void printLongHex(u32 val, bool newLine=false)
Definition utils.cpp:275
u32 composeDoubleWord(byte *buf)
Definition utils.cpp:234
word composeWord(byte *buf, int lowerByteIndex=0, bool littleEndian=true)
Definition utils.cpp:214
String stringFromProgmem(PGM_P stringPtr)
Definition utils.cpp:266
u32 composeValue(byte *buf, int from, int till)
Definition utils.cpp:249
void printInteger(PGM_P caption, int value, bool newLine=true)
Definition utils.cpp:373
void printLongSplitBin(u32 val)
Definition utils.cpp:325
int requestBlock(byte *buf)
Definition utils.cpp:115
void printFlag(PGM_P caption, u32 flags, int n)
Definition utils.cpp:406
int requestBytes(byte *buf, int len)
Definition utils.cpp:140
word requestWord()
Definition utils.cpp:156
bool isAllowedRequestPayloadSize(int len)
Definition utils.cpp:59
void printBytesHex(byte *buf, int len)
Definition utils.cpp:301
void printBin(u32 val, int n, bool newLine=false)
Definition utils.cpp:315
void printPremil(PGM_P caption, int value, PGM_P units)
Definition utils.cpp:397
byte checksum(byte *data, byte len)
Definition utils.cpp:173
bool validate(byte *data)
Definition utils.cpp:184