|
mergCanBus
|
#include <MergMemoryManagement.h>
Public Member Functions | |
| MergMemoryManagement () | |
| Constructor: clear array and reads the EEPROM. | |
| MergMemoryManagement (byte num_node_vars, byte num_events, byte num_events_vars, byte max_device_numbers) | |
| bool | hasEvents () |
| Check if there is some learned event. | |
| bool | hasEventVars (unsigned int eventIdx) |
| byte * | getEvent (unsigned int index) |
| Return the event pointed by the index If index out of bounds return empty event '0000'. More... | |
| byte | getVar (unsigned int index) |
| Return the node variable pointed by the index. More... | |
| byte | getEventVar (unsigned int eventIdx, unsigned int index) |
| Return the event variable for a specific event. More... | |
| byte * | getEventVars (unsigned int eventIdx, unsigned int *len) |
| Get all variables of an specific event. More... | |
| byte | getNumVars () |
| Return the number of set node variables. | |
| byte | getNumEvents () |
| Return the number of learned events. | |
| byte | getNumEventVars () |
| Return the number of learned events variables. | |
| void | eraseAllEvents () |
| Erase all events and their variables. | |
| void | read () |
| Read all data from eprom memory and put in the internal arrays. More... | |
| unsigned int | eraseEvent (unsigned int eventIdx) |
| Erase a specific event by the event index. Has to reorganize the memory: events and events vars to avoid fragmentation. More... | |
| unsigned int | eraseEvent (unsigned int nn, unsigned int ev) |
| Erase a specific event. Has to reorganize the memory: events and events vars to avoid fragmentation. More... | |
| void | setVar (unsigned int index, byte val) |
| Set the value of a node variable. More... | |
| void | setCanId (byte canId) |
| Set the can id. More... | |
| void | setNodeNumber (unsigned int val) |
| Set the node number. More... | |
| void | setDeviceNumber (unsigned int val, byte port) |
| Set the device number. More... | |
| unsigned int | getDeviceNumber (byte port) |
| Get the device number. More... | |
| byte | getNumDeviceNumber () |
| byte | getCanId () |
| unsigned int | getNodeNumber () |
| Get the node number. More... | |
| unsigned int | setEvent (byte *event) |
| Put a new event in the memory and return the index. More... | |
| unsigned int | setEvent (byte *event, unsigned int eventIdx) |
| Put a new event in the memory and return its index. More... | |
| unsigned int | setEventVar (unsigned int eventIdx, unsigned int varIdx, byte val) |
| Update the variable of an event. More... | |
| unsigned int | getEventIndex (byte ev1, byte ev2, byte ev3, byte ev4) |
| Return the internal index of an event using 4 bytes as parameters. The first 2 bytes are supposed to be the node number and the last 2 the event number. More... | |
| unsigned int | getEventIndex (unsigned int nn, unsigned int ev) |
| Return the internal index of an event. More... | |
| bool | hasEvent (byte ev1, byte ev2, byte ev3, byte ev4) |
| Check if the given event is present in the memory. More... | |
| byte | getNodeFlag () |
| Get the node mode retrieved from the flags. More... | |
| void | setNodeFlag (byte val) |
| Set the node mode retrieved from the flags. More... | |
| void | setUpNewMemory () |
| Clear the EEPROM memory and the internal events. Should be called just in the first setup of the node and never inside a loop. May damage the EEPROM. | |
| void | dumpMemory () |
| Print all memory to serial. Used for debug. More... | |
Class that handles the EEPROM and maintains the data in a RAM memory.
| void MergMemoryManagement::dumpMemory | ( | ) |
Print all memory to serial. Used for debug.
Find the event variable position in memory
| unsigned int MergMemoryManagement::eraseEvent | ( | unsigned int | eventIdx | ) |
Erase a specific event by the event index. Has to reorganize the memory: events and events vars to avoid fragmentation.
| eventIdx | event index starting on 0. |
| unsigned int MergMemoryManagement::eraseEvent | ( | unsigned int | nn, |
| unsigned int | ev | ||
| ) |
Erase a specific event. Has to reorganize the memory: events and events vars to avoid fragmentation.
| nn | node number (16 bits integer) |
| ev | event number (16 bits integer) |
| unsigned int MergMemoryManagement::getDeviceNumber | ( | byte | port | ) |
Get the device number.
| byte * MergMemoryManagement::getEvent | ( | unsigned int | index | ) |
Return the event pointed by the index If index out of bounds return empty event '0000'.
| unsigned int MergMemoryManagement::getEventIndex | ( | byte | ev1, |
| byte | ev2, | ||
| byte | ev3, | ||
| byte | ev4 | ||
| ) |
Return the internal index of an event using 4 bytes as parameters. The first 2 bytes are supposed to be the node number and the last 2 the event number.
| unsigned int MergMemoryManagement::getEventIndex | ( | unsigned int | nn, |
| unsigned int | ev | ||
| ) |
Return the internal index of an event.
| nn | Node number (16 bit integer) |
| ev | Event number (16 bit integer) |
| byte MergMemoryManagement::getEventVar | ( | unsigned int | eventIdx, |
| unsigned int | index | ||
| ) |
Return the event variable for a specific event.
| byte * MergMemoryManagement::getEventVars | ( | unsigned int | eventIdx, |
| unsigned int * | len | ||
| ) |
Get all variables of an specific event.
| eventIdx | is the event index starting on 0. |
| len | indicates how many variables |
| byte MergMemoryManagement::getNodeFlag | ( | ) |
Get the node mode retrieved from the flags.
| unsigned int MergMemoryManagement::getNodeNumber | ( | ) |
Get the node number.
| byte MergMemoryManagement::getVar | ( | unsigned int | index | ) |
Return the node variable pointed by the index.
| bool MergMemoryManagement::hasEvent | ( | byte | ev1, |
| byte | ev2, | ||
| byte | ev3, | ||
| byte | ev4 | ||
| ) |
Check if the given event is present in the memory.
| void MergMemoryManagement::read | ( | ) |
Read all data from eprom memory and put in the internal arrays.
| void MergMemoryManagement::setCanId | ( | byte | canId | ) |
Set the can id.
| canId | The can id |
| void MergMemoryManagement::setDeviceNumber | ( | unsigned int | val, |
| byte | port | ||
| ) |
Set the device number.
| val | The node number (16 bit integer). |
| unsigned int MergMemoryManagement::setEvent | ( | byte * | event | ) |
Put a new event in the memory and return the index.
| unsigned int MergMemoryManagement::setEvent | ( | byte * | event, |
| unsigned int | index | ||
| ) |
Put a new event in the memory and return its index.
| event | 4 bytes event |
| index | event index starting in 0. |
| unsigned int MergMemoryManagement::setEventVar | ( | unsigned int | eventIdx, |
| unsigned int | varIdx, | ||
| byte | val | ||
| ) |
Update the variable of an event.
| eventIdx | Event index starting on 0. |
| varIdx | Variable index starting on 0. |
| val | Value of the variable. |
| void MergMemoryManagement::setNodeFlag | ( | byte | val | ) |
Set the node mode retrieved from the flags.
| mode | 0 if SLIM, 1 if FLIM |
| void MergMemoryManagement::setNodeNumber | ( | unsigned int | val | ) |
Set the node number.
| val | The node number (16 bit integer). |
| void MergMemoryManagement::setVar | ( | unsigned int | index, |
| byte | val | ||
| ) |
Set the value of a node variable.
| index | variable index |
| val | variable value |