MAX32620HSP (MAXREFDES100) RPC Example for Graphical User Interface

Dependencies:   USBDevice

Fork of HSP_Release by Jerry Bradshaw

This is an example program for the MAX32620HSP (MAXREFDES100 Health Sensor Platform). It demonstrates all the features of the platform and works with a companion graphical user interface (GUI) to help evaluate/configure/monitor the board. Go to the MAXREFDES100 product page and click on "design resources" to download the companion software. The GUI connects to the board through an RPC interface on a virtual serial port over the USB interface.

The RPC interface provides access to all the features of the board and is available to interface with other development environments such Matlab. This firmware provides realtime data streaming through the RPC interface over USB, and also provides the ability to log the data to flash for untethered battery operation. The data logging settings are configured through the GUI, and the GUI also provides the interface to download logged data.

Details on the RPC interface can be found here: HSP RPC Interface Documentation

Windows

With this program loaded, the MAX32620HSP will appear on your computer as a serial port. On Mac and Linux, this will happen by default. For Windows, you need to install a driver: HSP serial port windows driver

For more details about this platform and how to use it, see the MAXREFDES100 product page.

Committer:
jbradshaw
Date:
Tue Apr 25 10:47:10 2017 -0500
Revision:
3:8e9b9f5818aa
Parent:
0:e4a10ed6eb92
Removed Bulk Erasing, instead a small number of bytes are sampled from each and every page to determine if sector is "dirty", if so sector is erased
Prevents device from sleeping when the firmware detects a series of binary flash page RPC transfers, this increases flash page transfers by %450
when 200mS elapse with the last flash page transfer, normal sleep behaviour is resumed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jbradshaw 0:e4a10ed6eb92 1 /*******************************************************************************
jbradshaw 0:e4a10ed6eb92 2 * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.
jbradshaw 0:e4a10ed6eb92 3 *
jbradshaw 0:e4a10ed6eb92 4 * Permission is hereby granted, free of charge, to any person obtaining a
jbradshaw 0:e4a10ed6eb92 5 * copy of this software and associated documentation files (the "Software"),
jbradshaw 0:e4a10ed6eb92 6 * to deal in the Software without restriction, including without limitation
jbradshaw 0:e4a10ed6eb92 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
jbradshaw 0:e4a10ed6eb92 8 * and/or sell copies of the Software, and to permit persons to whom the
jbradshaw 0:e4a10ed6eb92 9 * Software is furnished to do so, subject to the following conditions:
jbradshaw 0:e4a10ed6eb92 10 *
jbradshaw 0:e4a10ed6eb92 11 * The above copyright notice and this permission notice shall be included
jbradshaw 0:e4a10ed6eb92 12 * in all copies or substantial portions of the Software.
jbradshaw 0:e4a10ed6eb92 13 *
jbradshaw 0:e4a10ed6eb92 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
jbradshaw 0:e4a10ed6eb92 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
jbradshaw 0:e4a10ed6eb92 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
jbradshaw 0:e4a10ed6eb92 17 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
jbradshaw 0:e4a10ed6eb92 18 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
jbradshaw 0:e4a10ed6eb92 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
jbradshaw 0:e4a10ed6eb92 20 * OTHER DEALINGS IN THE SOFTWARE.
jbradshaw 0:e4a10ed6eb92 21 *
jbradshaw 0:e4a10ed6eb92 22 * Except as contained in this notice, the name of Maxim Integrated
jbradshaw 0:e4a10ed6eb92 23 * Products, Inc. shall not be used except as stated in the Maxim Integrated
jbradshaw 0:e4a10ed6eb92 24 * Products, Inc. Branding Policy.
jbradshaw 0:e4a10ed6eb92 25 *
jbradshaw 0:e4a10ed6eb92 26 * The mere transfer of this software does not imply any licenses
jbradshaw 0:e4a10ed6eb92 27 * of trade secrets, proprietary technology, copyrights, patents,
jbradshaw 0:e4a10ed6eb92 28 * trademarks, maskwork rights, or any other form of intellectual
jbradshaw 0:e4a10ed6eb92 29 * property whatsoever. Maxim Integrated Products, Inc. retains all
jbradshaw 0:e4a10ed6eb92 30 * ownership rights.
jbradshaw 0:e4a10ed6eb92 31 *******************************************************************************
jbradshaw 0:e4a10ed6eb92 32 */
jbradshaw 0:e4a10ed6eb92 33 #ifndef _RPCDECLARATIONS_H_
jbradshaw 0:e4a10ed6eb92 34 #define _RPCDECLARATIONS_H_
jbradshaw 0:e4a10ed6eb92 35
jbradshaw 0:e4a10ed6eb92 36 /// define the parts of a RPC. ObjectName, MethodName and function
jbradshaw 0:e4a10ed6eb92 37 struct RPC_registeredProcedure {
jbradshaw 0:e4a10ed6eb92 38 const char *objectName;
jbradshaw 0:e4a10ed6eb92 39 const char *methodName;
jbradshaw 0:e4a10ed6eb92 40 //enum eArgType argTypes[4];
jbradshaw 0:e4a10ed6eb92 41 int (*func)(char args[32][32], char results[32][32]);
jbradshaw 0:e4a10ed6eb92 42 struct RPC_registeredProcedure *next;
jbradshaw 0:e4a10ed6eb92 43 };
jbradshaw 0:e4a10ed6eb92 44
jbradshaw 0:e4a10ed6eb92 45 /// used to keep track of the head of the list and the end of a list
jbradshaw 0:e4a10ed6eb92 46 struct RPC_Object {
jbradshaw 0:e4a10ed6eb92 47 struct RPC_registeredProcedure *head;
jbradshaw 0:e4a10ed6eb92 48 struct RPC_registeredProcedure *last;
jbradshaw 0:e4a10ed6eb92 49 };
jbradshaw 0:e4a10ed6eb92 50
jbradshaw 0:e4a10ed6eb92 51
jbradshaw 0:e4a10ed6eb92 52 #define I2C_NAME "I2c"
jbradshaw 0:e4a10ed6eb92 53 /**
jbradshaw 0:e4a10ed6eb92 54 * @brief /I2c/WriteRead instance slaveAddress writeNumber dataToWrite readNumber
jbradshaw 0:e4a10ed6eb92 55 * @details Command allows you to write and read generic I2c commands using a given I2c instance master
jbradshaw 0:e4a10ed6eb92 56 * @param instance The I2c master on the Nimitz to use
jbradshaw 0:e4a10ed6eb92 57 * @param slaveAddress Slave address to use when communicating
jbradshaw 0:e4a10ed6eb92 58 * @param writeNumber The number of bytes to write
jbradshaw 0:e4a10ed6eb92 59 * @param dataToWrite A series of space separated hex values that are to be written
jbradshaw 0:e4a10ed6eb92 60 * @param readNumber The number of bytes to read may be 0 if reading is not needed
jbradshaw 0:e4a10ed6eb92 61 * @details Example: /I2c/WriteRead 1 A0 3 11 22 33 2
jbradshaw 0:e4a10ed6eb92 62 * @details This performs an I2c write and read using instance 1, slave address A0, and writes 3 bytes,
jbradshaw 0:e4a10ed6eb92 63 * @details the 3 bytes that are written are 11 22 33, 2 bytes are meant to be read after the write
jbradshaw 0:e4a10ed6eb92 64 */
jbradshaw 0:e4a10ed6eb92 65 struct RPC_registeredProcedure Define_I2c_WriteRead = { I2C_NAME, "WriteRead", I2C_WriteRead };
jbradshaw 0:e4a10ed6eb92 66
jbradshaw 0:e4a10ed6eb92 67 //example /I2c/WriteRead 1 A0 3 11 22 33 2
jbradshaw 0:e4a10ed6eb92 68 #define System_NAME "System"
jbradshaw 0:e4a10ed6eb92 69
jbradshaw 0:e4a10ed6eb92 70 /**
jbradshaw 0:e4a10ed6eb92 71 * @brief /System/ReadVer
jbradshaw 0:e4a10ed6eb92 72 * @details Returns the version string of the FW that is currently running
jbradshaw 0:e4a10ed6eb92 73 * @details Example: /System/ReadVer
jbradshaw 0:e4a10ed6eb92 74 * @details The command returns a version string similar to this: "HSP FW Version 2.0.1f 8/23/16"
jbradshaw 0:e4a10ed6eb92 75 */
jbradshaw 0:e4a10ed6eb92 76 struct RPC_registeredProcedure Define_System_ReadVer = { System_NAME, "ReadVer", System_ReadVer };
jbradshaw 0:e4a10ed6eb92 77 /**
jbradshaw 0:e4a10ed6eb92 78 * @brief /System/ReadBuildTime
jbradshaw 0:e4a10ed6eb92 79 * @details Returns the build string of the FW that is currently running, this is the time and date that the firmware was built
jbradshaw 0:e4a10ed6eb92 80 * @details Example: /System/ReadBuildTime
jbradshaw 0:e4a10ed6eb92 81 * @details The command returns a build string similar to this: "Build Time: Fri Jul 1 15:48:31 2016"
jbradshaw 0:e4a10ed6eb92 82 */
jbradshaw 0:e4a10ed6eb92 83 struct RPC_registeredProcedure Define_System_ReadBuildTime = { System_NAME, "ReadBuildTime", System_ReadBuildTime };
jbradshaw 0:e4a10ed6eb92 84
jbradshaw 0:e4a10ed6eb92 85 #define MAX30101_NAME "MAX30101" //"MAX30101"
jbradshaw 0:e4a10ed6eb92 86 /**
jbradshaw 0:e4a10ed6eb92 87 * @brief /MAX30101/WriteReg address data
jbradshaw 0:e4a10ed6eb92 88 * @details Returns the version string of the FW that is currently running
jbradshaw 0:e4a10ed6eb92 89 * @param address Register address to write to within the MAX30101
jbradshaw 0:e4a10ed6eb92 90 * @param data The data to write to the MAX30101
jbradshaw 0:e4a10ed6eb92 91 * @details Example: /MAX30101/WriteReg 01 123456
jbradshaw 0:e4a10ed6eb92 92 */
jbradshaw 0:e4a10ed6eb92 93 struct RPC_registeredProcedure Define_MAX30101_WriteReg = { MAX30101_NAME, "WriteReg", MAX30101_WriteReg };
jbradshaw 0:e4a10ed6eb92 94 /**
jbradshaw 0:e4a10ed6eb92 95 * @brief /MAX30101/ReadReg address data
jbradshaw 0:e4a10ed6eb92 96 * @details Returns the version string of the FW that is currently running
jbradshaw 0:e4a10ed6eb92 97 * @param address Register address to write to within the MAX30101
jbradshaw 0:e4a10ed6eb92 98 * @param data The data to write to the MAX30101
jbradshaw 0:e4a10ed6eb92 99 * @details Example: /MAX30101/WriteReg 01 123456
jbradshaw 0:e4a10ed6eb92 100 */
jbradshaw 0:e4a10ed6eb92 101 struct RPC_registeredProcedure Define_MAX30101_ReadReg = { MAX30101_NAME, "ReadReg", MAX30101_ReadReg };
jbradshaw 0:e4a10ed6eb92 102 /**
jbradshaw 0:e4a10ed6eb92 103 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 104 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 105 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 106 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 107 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 108 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 109 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 110 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 111 */
jbradshaw 0:e4a10ed6eb92 112 struct RPC_registeredProcedure Define_MAX30101_SpO2mode_Init = { MAX30101_NAME, "SpO2mode_init", MAX30101_SpO2mode_init };
jbradshaw 0:e4a10ed6eb92 113 /**
jbradshaw 0:e4a10ed6eb92 114 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 115 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 116 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 117 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 118 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 119 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 120 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 121 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 122 */
jbradshaw 0:e4a10ed6eb92 123 struct RPC_registeredProcedure Define_MAX30101_SpO2mode_InitStart = { MAX30101_NAME, "SpO2mode_InitStart", MAX30101_SpO2mode_InitStart };
jbradshaw 0:e4a10ed6eb92 124 /**
jbradshaw 0:e4a10ed6eb92 125 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 126 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 127 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 128 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 129 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 130 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 131 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 132 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 133 */
jbradshaw 0:e4a10ed6eb92 134 struct RPC_registeredProcedure Define_MAX30101_HRmode_Init = { MAX30101_NAME, "HRmode_init", MAX30101_HRmode_init };
jbradshaw 0:e4a10ed6eb92 135 /**
jbradshaw 0:e4a10ed6eb92 136 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 137 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 138 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 139 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 140 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 141 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 142 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 143 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 144 */
jbradshaw 0:e4a10ed6eb92 145 struct RPC_registeredProcedure Define_MAX30101_HRmode_InitStart = { MAX30101_NAME, "HRmode_InitStart", MAX30101_HRmode_InitStart };
jbradshaw 0:e4a10ed6eb92 146 /**
jbradshaw 0:e4a10ed6eb92 147 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 148 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 149 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 150 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 151 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 152 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 153 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 154 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 155 */
jbradshaw 0:e4a10ed6eb92 156 struct RPC_registeredProcedure Define_MAX30101_Multimode_init = { MAX30101_NAME, "Multimode_init", MAX30101_Multimode_init };
jbradshaw 0:e4a10ed6eb92 157 /**
jbradshaw 0:e4a10ed6eb92 158 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 159 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 160 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 161 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 162 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 163 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 164 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 165 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 166 */
jbradshaw 0:e4a10ed6eb92 167 struct RPC_registeredProcedure Define_MAX30101_Multimode_InitStart = { MAX30101_NAME, "Multimode_InitStart", MAX30101_Multimode_InitStart };
jbradshaw 0:e4a10ed6eb92 168 /**
jbradshaw 0:e4a10ed6eb92 169 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 170 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 171 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 172 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 173 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 174 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 175 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 176 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 177 */
jbradshaw 0:e4a10ed6eb92 178 struct RPC_registeredProcedure Define_MAX30101_SpO2mode_stop = { MAX30101_NAME, "SpO2mode_stop", MAX30101_SpO2mode_stop };
jbradshaw 0:e4a10ed6eb92 179 /**
jbradshaw 0:e4a10ed6eb92 180 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 181 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 182 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 183 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 184 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 185 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 186 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 187 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 188 */
jbradshaw 0:e4a10ed6eb92 189 struct RPC_registeredProcedure Define_MAX30101_HRmode_stop = { MAX30101_NAME, "HRmode_stop", MAX30101_HRmode_stop };
jbradshaw 0:e4a10ed6eb92 190 /**
jbradshaw 0:e4a10ed6eb92 191 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 192 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 193 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 194 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 195 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 196 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 197 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 198 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 199 */
jbradshaw 0:e4a10ed6eb92 200 struct RPC_registeredProcedure Define_MAX30101_Multimode_stop = { MAX30101_NAME, "Multimode_stop", MAX30101_Multimode_stop };
jbradshaw 0:e4a10ed6eb92 201
jbradshaw 0:e4a10ed6eb92 202 #define MAX30001_NAME "MAX30001"
jbradshaw 0:e4a10ed6eb92 203 #define MAX30003_NAME "MAX30003"
jbradshaw 0:e4a10ed6eb92 204
jbradshaw 0:e4a10ed6eb92 205 #define MAX31725_NAME "MAX31725"
jbradshaw 0:e4a10ed6eb92 206 #define MAX30205_NAME "MAX30205"
jbradshaw 0:e4a10ed6eb92 207
jbradshaw 0:e4a10ed6eb92 208 /**
jbradshaw 0:e4a10ed6eb92 209 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 210 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 211 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 212 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 213 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 214 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 215 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 216 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 217 */
jbradshaw 0:e4a10ed6eb92 218 struct RPC_registeredProcedure Define_MAX30001_WriteReg = { MAX30001_NAME, "WriteReg", MAX30001_WriteReg };
jbradshaw 0:e4a10ed6eb92 219 /**
jbradshaw 0:e4a10ed6eb92 220 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 221 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 222 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 223 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 224 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 225 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 226 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 227 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 228 */
jbradshaw 0:e4a10ed6eb92 229 struct RPC_registeredProcedure Define_MAX30001_ReadReg = { MAX30001_NAME, "ReadReg", MAX30001_ReadReg };
jbradshaw 0:e4a10ed6eb92 230 /**
jbradshaw 0:e4a10ed6eb92 231 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 232 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 233 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 234 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 235 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 236 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 237 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 238 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 239 */
jbradshaw 0:e4a10ed6eb92 240 struct RPC_registeredProcedure Define_MAX30001_Start = { MAX30001_NAME, "Start", MAX30001_Start };
jbradshaw 0:e4a10ed6eb92 241 /**
jbradshaw 0:e4a10ed6eb92 242 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 243 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 244 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 245 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 246 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 247 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 248 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 249 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 250 */
jbradshaw 0:e4a10ed6eb92 251 struct RPC_registeredProcedure Define_MAX30001_Stop = { MAX30001_NAME, "Stop", MAX30001_Stop };
jbradshaw 0:e4a10ed6eb92 252 /**
jbradshaw 0:e4a10ed6eb92 253 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 254 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 255 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 256 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 257 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 258 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 259 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 260 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 261 */
jbradshaw 0:e4a10ed6eb92 262 struct RPC_registeredProcedure Define_MAX30001_Rbias_FMSTR_Init = { MAX30001_NAME, "Rbias_FMSTR_Init", MAX30001_Rbias_FMSTR_Init };
jbradshaw 0:e4a10ed6eb92 263 /**
jbradshaw 0:e4a10ed6eb92 264 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 265 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 266 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 267 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 268 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 269 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 270 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 271 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 272 */
jbradshaw 0:e4a10ed6eb92 273 struct RPC_registeredProcedure Define_MAX30001_CAL_InitStart = { MAX30001_NAME, "CAL_InitStart", MAX30001_CAL_InitStart };
jbradshaw 0:e4a10ed6eb92 274 /**
jbradshaw 0:e4a10ed6eb92 275 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 276 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 277 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 278 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 279 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 280 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 281 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 282 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 283 */
jbradshaw 0:e4a10ed6eb92 284 struct RPC_registeredProcedure Define_MAX30001_ECG_InitStart = { MAX30001_NAME, "ECG_InitStart", MAX30001_ECG_InitStart };
jbradshaw 0:e4a10ed6eb92 285 /**
jbradshaw 0:e4a10ed6eb92 286 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 287 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 288 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 289 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 290 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 291 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 292 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 293 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 294 */
jbradshaw 0:e4a10ed6eb92 295 struct RPC_registeredProcedure Define_MAX30001_ECGFast_Init = { MAX30001_NAME, "ECGFast_Init", MAX30001_ECGFast_Init };
jbradshaw 0:e4a10ed6eb92 296 /**
jbradshaw 0:e4a10ed6eb92 297 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 298 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 299 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 300 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 301 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 302 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 303 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 304 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 305 */
jbradshaw 0:e4a10ed6eb92 306 struct RPC_registeredProcedure Define_MAX30001_PACE_InitStart = { MAX30001_NAME, "PACE_InitStart", MAX30001_PACE_InitStart };
jbradshaw 0:e4a10ed6eb92 307 /**
jbradshaw 0:e4a10ed6eb92 308 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 309 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 310 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 311 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 312 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 313 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 314 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 315 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 316 */
jbradshaw 0:e4a10ed6eb92 317 struct RPC_registeredProcedure Define_MAX30001_BIOZ_InitStart = { MAX30001_NAME, "BIOZ_InitStart", MAX30001_BIOZ_InitStart };
jbradshaw 0:e4a10ed6eb92 318 /**
jbradshaw 0:e4a10ed6eb92 319 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 320 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 321 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 322 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 323 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 324 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 325 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 326 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 327 */
jbradshaw 0:e4a10ed6eb92 328 struct RPC_registeredProcedure Define_MAX30001_RtoR_InitStart = { MAX30001_NAME, "RtoR_InitStart", MAX30001_RtoR_InitStart };
jbradshaw 0:e4a10ed6eb92 329 /**
jbradshaw 0:e4a10ed6eb92 330 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 331 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 332 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 333 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 334 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 335 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 336 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 337 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 338 */
jbradshaw 0:e4a10ed6eb92 339 struct RPC_registeredProcedure Define_MAX30001_Stop_ECG = { MAX30001_NAME, "Stop_ECG", MAX30001_Stop_ECG };
jbradshaw 0:e4a10ed6eb92 340 /**
jbradshaw 0:e4a10ed6eb92 341 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 342 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 343 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 344 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 345 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 346 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 347 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 348 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 349 */
jbradshaw 0:e4a10ed6eb92 350 struct RPC_registeredProcedure Define_MAX30001_Stop_PACE = { MAX30001_NAME, "Stop_PACE", MAX30001_Stop_PACE };
jbradshaw 0:e4a10ed6eb92 351 /**
jbradshaw 0:e4a10ed6eb92 352 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 353 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 354 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 355 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 356 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 357 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 358 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 359 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 360 */
jbradshaw 0:e4a10ed6eb92 361 struct RPC_registeredProcedure Define_MAX30001_Stop_BIOZ = { MAX30001_NAME, "Stop_BIOZ", MAX30001_Stop_BIOZ };
jbradshaw 0:e4a10ed6eb92 362 /**
jbradshaw 0:e4a10ed6eb92 363 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 364 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 365 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 366 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 367 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 368 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 369 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 370 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 371 */
jbradshaw 0:e4a10ed6eb92 372 struct RPC_registeredProcedure Define_MAX30001_Stop_RtoR = { MAX30001_NAME, "Stop_RtoR", MAX30001_Stop_RtoR };
jbradshaw 0:e4a10ed6eb92 373 /**
jbradshaw 0:e4a10ed6eb92 374 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 375 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 376 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 377 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 378 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 379 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 380 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 381 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 382 */
jbradshaw 0:e4a10ed6eb92 383 struct RPC_registeredProcedure Define_MAX30001_Stop_Cal = { MAX30001_NAME, "Stop_Cal", MAX30001_Stop_Cal };
jbradshaw 0:e4a10ed6eb92 384 /**
jbradshaw 0:e4a10ed6eb92 385 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 386 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 387 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 388 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 389 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 390 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 391 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 392 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 393 */
jbradshaw 0:e4a10ed6eb92 394 struct RPC_registeredProcedure Define_MAX30001_Enable_ECG_LeadON = { MAX30001_NAME, "Enable_ECG_LeadON", MAX30001_Enable_ECG_LeadON };
jbradshaw 0:e4a10ed6eb92 395 /**
jbradshaw 0:e4a10ed6eb92 396 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 397 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 398 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 399 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 400 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 401 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 402 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 403 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 404 */
jbradshaw 0:e4a10ed6eb92 405 struct RPC_registeredProcedure Define_MAX30001_Enable_BIOZ_LeadON = { MAX30001_NAME, "Enable_BIOZ_LeadON", MAX30001_Enable_BIOZ_LeadON };
jbradshaw 0:e4a10ed6eb92 406 /**
jbradshaw 0:e4a10ed6eb92 407 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 408 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 409 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 410 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 411 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 412 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 413 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 414 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 415 */
jbradshaw 0:e4a10ed6eb92 416 struct RPC_registeredProcedure Define_MAX30001_Read_LeadON = { MAX30001_NAME, "Read_LeadON", MAX30001_Read_LeadON };
jbradshaw 0:e4a10ed6eb92 417 /**
jbradshaw 0:e4a10ed6eb92 418 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 419 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 420 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 421 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 422 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 423 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 424 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 425 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 426 */
jbradshaw 0:e4a10ed6eb92 427 struct RPC_registeredProcedure Define_MAX30001_StartTest = { MAX30001_NAME, "StartTest", MAX30001_StartTest };
jbradshaw 0:e4a10ed6eb92 428 /**
jbradshaw 0:e4a10ed6eb92 429 * @brief /MAX30101/SpO2mode_init fifo_waterlevel_mark sample_avg sample_rate pulse_width red_led_current ir_led_current
jbradshaw 0:e4a10ed6eb92 430 * @details This function sets up for the SpO2 mode.
jbradshaw 0:e4a10ed6eb92 431 * @param fifo_waterlevel_mark
jbradshaw 0:e4a10ed6eb92 432 * @param sample_avg
jbradshaw 0:e4a10ed6eb92 433 * @param sample_rate
jbradshaw 0:e4a10ed6eb92 434 * @param pulse_width
jbradshaw 0:e4a10ed6eb92 435 * @param red_led_current
jbradshaw 0:e4a10ed6eb92 436 * @param ir_led_current
jbradshaw 0:e4a10ed6eb92 437 */
jbradshaw 0:e4a10ed6eb92 438 struct RPC_registeredProcedure Define_MAX30001_INT_assignment = { MAX30001_NAME, "INT_assignment", MAX30001_INT_assignment };
jbradshaw 0:e4a10ed6eb92 439
jbradshaw 0:e4a10ed6eb92 440 #define LOGGING_NAME "Logging"
jbradshaw 0:e4a10ed6eb92 441 /**
jbradshaw 0:e4a10ed6eb92 442 * @brief /Logging/StartMissionDefine
jbradshaw 0:e4a10ed6eb92 443 * @details A command to send when you are starting to define a mission
jbradshaw 0:e4a10ed6eb92 444 */
jbradshaw 0:e4a10ed6eb92 445 struct RPC_registeredProcedure Define_Logging_StartMissionDefine = { LOGGING_NAME, "StartMissionDefine", Logging_RPC_StartMissionDefine };
jbradshaw 0:e4a10ed6eb92 446 /**
jbradshaw 0:e4a10ed6eb92 447 * @brief /Logging/AppendMissionCmd missionString
jbradshaw 0:e4a10ed6eb92 448 * @details Specify a RPC command that is part of a mission
jbradshaw 0:e4a10ed6eb92 449 */
jbradshaw 0:e4a10ed6eb92 450 struct RPC_registeredProcedure Define_Logging_AppendMissionCmd = { LOGGING_NAME, "AppendMissionCmd", Logging_RPC_AppendMissionCmd };
jbradshaw 0:e4a10ed6eb92 451 /**
jbradshaw 0:e4a10ed6eb92 452 * @brief /Logging/EndMissionDefine
jbradshaw 0:e4a10ed6eb92 453 * @details RPC command that indicated the end of defining a mission
jbradshaw 0:e4a10ed6eb92 454 */
jbradshaw 0:e4a10ed6eb92 455 struct RPC_registeredProcedure Define_Logging_EndMissionDefine = { LOGGING_NAME, "EndMissionDefine", Logging_RPC_EndMissionDefine };
jbradshaw 0:e4a10ed6eb92 456 /**
jbradshaw 0:e4a10ed6eb92 457 * @brief /Logging/WriteMission
jbradshaw 0:e4a10ed6eb92 458 * @details Write the described mission to flash
jbradshaw 0:e4a10ed6eb92 459 */
jbradshaw 0:e4a10ed6eb92 460 struct RPC_registeredProcedure Define_Logging_WriteMission = { LOGGING_NAME, "WriteMission", Logging_RPC_WriteMission };
jbradshaw 0:e4a10ed6eb92 461 /**
jbradshaw 0:e4a10ed6eb92 462 * @brief /Logging/ReadMission
jbradshaw 0:e4a10ed6eb92 463 * @details Read the mission from flash
jbradshaw 0:e4a10ed6eb92 464 */
jbradshaw 0:e4a10ed6eb92 465 struct RPC_registeredProcedure Define_Logging_ReadMission = { LOGGING_NAME, "ReadMission", Logging_RPC_ReadMission };
jbradshaw 0:e4a10ed6eb92 466 /**
jbradshaw 0:e4a10ed6eb92 467 * @brief /Logging/EraseMission
jbradshaw 0:e4a10ed6eb92 468 * @details Erase the mission in flash
jbradshaw 0:e4a10ed6eb92 469 */
jbradshaw 0:e4a10ed6eb92 470 struct RPC_registeredProcedure Define_Logging_EraseMission = { LOGGING_NAME, "EraseMission", Logging_RPC_EraseMission };
jbradshaw 0:e4a10ed6eb92 471 /**
jbradshaw 0:e4a10ed6eb92 472 * @brief /Logging/EraseWrittenSectors
jbradshaw 0:e4a10ed6eb92 473 * @details Erase the datalog in flash, this erases all of the datalog that has been written to the flash
jbradshaw 0:e4a10ed6eb92 474 */
jbradshaw 0:e4a10ed6eb92 475 struct RPC_registeredProcedure Define_Logging_EraseWrittenSectors = { LOGGING_NAME, "EraseWrittenSectors", Logging_EraseWrittenSectors };
jbradshaw 0:e4a10ed6eb92 476 /**
jbradshaw 0:e4a10ed6eb92 477 * @brief /Logging/StartLoggingUsb
jbradshaw 0:e4a10ed6eb92 478 * @details Start streaming data through USB
jbradshaw 0:e4a10ed6eb92 479 */
jbradshaw 0:e4a10ed6eb92 480 struct RPC_registeredProcedure Define_Logging_StartLoggingUsb = { LOGGING_NAME, "StartLoggingUsb", Logging_StartLoggingUsb };
jbradshaw 0:e4a10ed6eb92 481 /**
jbradshaw 0:e4a10ed6eb92 482 * @brief /Logging/StartLoggingFlash
jbradshaw 0:e4a10ed6eb92 483 * @details Start logging data to flash
jbradshaw 0:e4a10ed6eb92 484 */
jbradshaw 0:e4a10ed6eb92 485 struct RPC_registeredProcedure Define_Logging_StartLoggingFlash = { LOGGING_NAME, "StartLoggingFlash", Logging_StartLoggingFlash };
jbradshaw 0:e4a10ed6eb92 486 /**
jbradshaw 0:e4a10ed6eb92 487 * @brief /Logging/GetLastWrittenPage
jbradshaw 0:e4a10ed6eb92 488 * @details Returns the last page that has been written to flash, this call searchs until it finds an empty flash page
jbradshaw 0:e4a10ed6eb92 489 */
jbradshaw 0:e4a10ed6eb92 490 struct RPC_registeredProcedure Define_Logging_GetLastWrittenPage = { LOGGING_NAME, "GetLastWrittenPage", Logging_GetLastWrittenPage };
jbradshaw 0:e4a10ed6eb92 491 /**
jbradshaw 0:e4a10ed6eb92 492 * @brief /Logging/Start
jbradshaw 0:e4a10ed6eb92 493 * @details Starts a datalogging session into flash, allows the ability to start datalogging via RPC call
jbradshaw 0:e4a10ed6eb92 494 */
jbradshaw 0:e4a10ed6eb92 495 struct RPC_registeredProcedure Define_Logging_Start = { LOGGING_NAME, "Start", Logging_Start };
jbradshaw 0:e4a10ed6eb92 496
jbradshaw 0:e4a10ed6eb92 497 #define LIS2DH_NAME "LIS2DH"
jbradshaw 0:e4a10ed6eb92 498 /**
jbradshaw 0:e4a10ed6eb92 499 * @brief /LIS2DH/InitStart
jbradshaw 0:e4a10ed6eb92 500 * @details Starts streaming interrupts from the LIS2DH device
jbradshaw 0:e4a10ed6eb92 501 */
jbradshaw 0:e4a10ed6eb92 502 struct RPC_registeredProcedure Define_LIS2DH_InitStart = { LIS2DH_NAME, "InitStart", LIS2DH_InitStart };
jbradshaw 0:e4a10ed6eb92 503 /**
jbradshaw 0:e4a10ed6eb92 504 * @brief /LIS2DH/ReadReg address
jbradshaw 0:e4a10ed6eb92 505 * @details Reads a register
jbradshaw 0:e4a10ed6eb92 506 * @param address Register address to read from
jbradshaw 0:e4a10ed6eb92 507 */
jbradshaw 0:e4a10ed6eb92 508 struct RPC_registeredProcedure Define_LIS2DH_ReadReg = { LIS2DH_NAME, "ReadReg", LIS2DH_ReadReg };
jbradshaw 0:e4a10ed6eb92 509 /**
jbradshaw 0:e4a10ed6eb92 510 * @brief /LIS2DH/WriteReg address data
jbradshaw 0:e4a10ed6eb92 511 * @details Write a register
jbradshaw 0:e4a10ed6eb92 512 * @param address Register address to read from
jbradshaw 0:e4a10ed6eb92 513 * @param data Data to write
jbradshaw 0:e4a10ed6eb92 514 */
jbradshaw 0:e4a10ed6eb92 515 struct RPC_registeredProcedure Define_LIS2DH_WriteReg = { LIS2DH_NAME, "WriteReg", LIS2DH_WriteReg };
jbradshaw 0:e4a10ed6eb92 516 /**
jbradshaw 0:e4a10ed6eb92 517 * @brief /LIS2DH/Stop
jbradshaw 0:e4a10ed6eb92 518 * @details Stop the interrupts within the LIS2DH
jbradshaw 0:e4a10ed6eb92 519 */
jbradshaw 0:e4a10ed6eb92 520 struct RPC_registeredProcedure Define_LIS2DH_Stop = { LIS2DH_NAME, "Stop", LIS2DH_Stop };
jbradshaw 0:e4a10ed6eb92 521
jbradshaw 0:e4a10ed6eb92 522 #define BMP280_NAME "BMP280"
jbradshaw 0:e4a10ed6eb92 523 /**
jbradshaw 0:e4a10ed6eb92 524 * @brief /BMP280/InitStart
jbradshaw 0:e4a10ed6eb92 525 * @details Start the polling process for the BMP280
jbradshaw 0:e4a10ed6eb92 526 */
jbradshaw 0:e4a10ed6eb92 527 struct RPC_registeredProcedure Define_BMP280_InitStart = { BMP280_NAME, "InitStart", BMP280_InitStart };
jbradshaw 0:e4a10ed6eb92 528
jbradshaw 0:e4a10ed6eb92 529 #define MAX30205_1_NAME "MAX30205_1"
jbradshaw 0:e4a10ed6eb92 530 #define MAX31725_1_NAME "MAX31725_1"
jbradshaw 0:e4a10ed6eb92 531 /**
jbradshaw 0:e4a10ed6eb92 532 * @brief /MAX30205_1/InitStart
jbradshaw 0:e4a10ed6eb92 533 * @details Start the polling process for the MAX30205 instance 1
jbradshaw 0:e4a10ed6eb92 534 */
jbradshaw 0:e4a10ed6eb92 535 struct RPC_registeredProcedure Define_MAX30205_1_InitStart = { MAX30205_1_NAME, "InitStart", MAX30205_1_InitStart };
jbradshaw 0:e4a10ed6eb92 536 struct RPC_registeredProcedure Define_MAX31725_1_InitStart = { MAX31725_1_NAME, "InitStart", MAX30205_1_InitStart };
jbradshaw 0:e4a10ed6eb92 537
jbradshaw 0:e4a10ed6eb92 538 #define MAX30205_2_NAME "MAX30205_2"
jbradshaw 0:e4a10ed6eb92 539 #define MAX31725_2_NAME "MAX31725_2"
jbradshaw 0:e4a10ed6eb92 540 /**
jbradshaw 0:e4a10ed6eb92 541 * @brief /MAX30205_2/InitStart
jbradshaw 0:e4a10ed6eb92 542 * @details Start the polling process for the MAX30205 instance 2
jbradshaw 0:e4a10ed6eb92 543 */
jbradshaw 0:e4a10ed6eb92 544 struct RPC_registeredProcedure Define_MAX30205_2_InitStart = { MAX30205_2_NAME, "InitStart", MAX30205_2_InitStart };
jbradshaw 0:e4a10ed6eb92 545 struct RPC_registeredProcedure Define_MAX31725_2_InitStart = { MAX31725_2_NAME, "InitStart", MAX30205_2_InitStart };
jbradshaw 0:e4a10ed6eb92 546
jbradshaw 0:e4a10ed6eb92 547 #define LED_NAME "Led"
jbradshaw 0:e4a10ed6eb92 548 /**
jbradshaw 0:e4a10ed6eb92 549 * @brief /Led/On
jbradshaw 0:e4a10ed6eb92 550 * @details Turn on the HSP onboard LED
jbradshaw 0:e4a10ed6eb92 551 */
jbradshaw 0:e4a10ed6eb92 552 struct RPC_registeredProcedure Define_Led_On = { LED_NAME, "On", Led_On };
jbradshaw 0:e4a10ed6eb92 553 /**
jbradshaw 0:e4a10ed6eb92 554 * @brief /Led/Off
jbradshaw 0:e4a10ed6eb92 555 * @details Turn off the HSP onboard LED
jbradshaw 0:e4a10ed6eb92 556 */
jbradshaw 0:e4a10ed6eb92 557 struct RPC_registeredProcedure Define_Led_Off = { LED_NAME, "Off", Led_Off };
jbradshaw 0:e4a10ed6eb92 558 /**
jbradshaw 0:e4a10ed6eb92 559 * @brief /Led/Blink mS
jbradshaw 0:e4a10ed6eb92 560 * @details Start blinking the HSP onboard LED
jbradshaw 0:e4a10ed6eb92 561 * @param mS Blink using a mS period
jbradshaw 0:e4a10ed6eb92 562 */
jbradshaw 0:e4a10ed6eb92 563 struct RPC_registeredProcedure Define_Led_BlinkHz = { LED_NAME, "Blink", Led_BlinkHz };
jbradshaw 0:e4a10ed6eb92 564 /**
jbradshaw 0:e4a10ed6eb92 565 * @brief /Led/Pattern pattern
jbradshaw 0:e4a10ed6eb92 566 * @details Rotate a 32-bit pattern through the LED so that specific blink patterns can be obtained
jbradshaw 0:e4a10ed6eb92 567 * @param pattern A 32-bit pattern to rotate through
jbradshaw 0:e4a10ed6eb92 568 */
jbradshaw 0:e4a10ed6eb92 569 struct RPC_registeredProcedure Define_Led_BlinkPattern = { LED_NAME, "Pattern", Led_BlinkPattern };
jbradshaw 0:e4a10ed6eb92 570
jbradshaw 0:e4a10ed6eb92 571 #define S25FS512_NAME "S25FS512"
jbradshaw 0:e4a10ed6eb92 572 /**
jbradshaw 0:e4a10ed6eb92 573 * @brief /S25FS512/ReadId
jbradshaw 0:e4a10ed6eb92 574 * @details Rotate a 32-bit pattern through the LED so that specific blink patterns can be obtained
jbradshaw 0:e4a10ed6eb92 575 * @param pattern A 32-bit pattern to rotate through
jbradshaw 0:e4a10ed6eb92 576 */
jbradshaw 0:e4a10ed6eb92 577 struct RPC_registeredProcedure Define_S25FS512_ReadId = { S25FS512_NAME, "ReadId", S25FS512_ReadId };
jbradshaw 0:e4a10ed6eb92 578 /**
jbradshaw 0:e4a10ed6eb92 579 * @brief /S25FS512/ReadPagesBinary startPage endPage
jbradshaw 0:e4a10ed6eb92 580 * @details Read a page from flash, return the data in binary (non-ascii)
jbradshaw 0:e4a10ed6eb92 581 * @param startPage The Starting page to read from
jbradshaw 0:e4a10ed6eb92 582 * @param endPage The last page to read from
jbradshaw 0:e4a10ed6eb92 583 */
jbradshaw 0:e4a10ed6eb92 584 struct RPC_registeredProcedure Define_S25FS512_ReadPagesBinary = { S25FS512_NAME, "ReadPagesBinary", S25FS512_ReadPagesBinary };
jbradshaw 0:e4a10ed6eb92 585 /**
jbradshaw 0:e4a10ed6eb92 586 * @brief /S25FS512/Reset
jbradshaw 0:e4a10ed6eb92 587 * @details Issue a soft reset to the flash device
jbradshaw 0:e4a10ed6eb92 588 */
jbradshaw 0:e4a10ed6eb92 589 struct RPC_registeredProcedure Define_S25FS512_Reset = { S25FS512_NAME, "Reset", S25FS512_Reset };
jbradshaw 0:e4a10ed6eb92 590 /**
jbradshaw 0:e4a10ed6eb92 591 * @brief /S25FS512/EnableHWReset
jbradshaw 0:e4a10ed6eb92 592 * @details Enable HW resets to the device
jbradshaw 0:e4a10ed6eb92 593 */
jbradshaw 0:e4a10ed6eb92 594 struct RPC_registeredProcedure Define_S25FS512_EnableHWReset = { S25FS512_NAME, "EnableHWReset", S25FS512_EnableHWReset };
jbradshaw 0:e4a10ed6eb92 595 /**
jbradshaw 0:e4a10ed6eb92 596 * @brief /S25FS512/SpiWriteRead
jbradshaw 0:e4a10ed6eb92 597 * @details Write and read SPI to the flash device using Quad SPI
jbradshaw 0:e4a10ed6eb92 598 */
jbradshaw 0:e4a10ed6eb92 599 struct RPC_registeredProcedure Define_S25FS512_SpiWriteRead = { S25FS512_NAME, "SpiWriteRead", S25FS512_SpiWriteRead };
jbradshaw 0:e4a10ed6eb92 600 /**
jbradshaw 0:e4a10ed6eb92 601 * @brief /S25FS512/SpiWriteRead4Wire
jbradshaw 0:e4a10ed6eb92 602 * @details Write and read SPI to the flash device using 4 wire
jbradshaw 0:e4a10ed6eb92 603 */
jbradshaw 0:e4a10ed6eb92 604 struct RPC_registeredProcedure Define_S25FS512_SpiWriteRead4Wire = { S25FS512_NAME, "SpiWriteRead4Wire", S25FS512_SpiWriteRead4Wire };
jbradshaw 0:e4a10ed6eb92 605
jbradshaw 0:e4a10ed6eb92 606 #define TESTING_NAME "Testing"
jbradshaw 0:e4a10ed6eb92 607 /**
jbradshaw 0:e4a10ed6eb92 608 * @brief /Testing/Test_S25FS512
jbradshaw 0:e4a10ed6eb92 609 * @details Start a testing sequence for this device, returns PASS and FAIL strings and detailed results of the test
jbradshaw 0:e4a10ed6eb92 610 */
jbradshaw 0:e4a10ed6eb92 611 struct RPC_registeredProcedure Define_Testing_Test_S25FS512 = { TESTING_NAME, "Test_S25FS512", Test_S25FS512};
jbradshaw 0:e4a10ed6eb92 612 /**
jbradshaw 0:e4a10ed6eb92 613 * @brief /Testing/Test_BMP280
jbradshaw 0:e4a10ed6eb92 614 * @details Start a testing sequence for this device, returns PASS and FAIL strings and detailed results of the test
jbradshaw 0:e4a10ed6eb92 615 */
jbradshaw 0:e4a10ed6eb92 616 struct RPC_registeredProcedure Define_Testing_Test_BMP280 = { TESTING_NAME, "Test_BMP280", Test_BMP280};
jbradshaw 0:e4a10ed6eb92 617 /**
jbradshaw 0:e4a10ed6eb92 618 * @brief /Testing/Test_LIS2DH
jbradshaw 0:e4a10ed6eb92 619 * @details Start a testing sequence for this device, returns PASS and FAIL strings and detailed results of the test
jbradshaw 0:e4a10ed6eb92 620 */
jbradshaw 0:e4a10ed6eb92 621 struct RPC_registeredProcedure Define_Testing_Test_LIS2DH = { TESTING_NAME, "Test_LIS2DH", Test_LIS2DH };
jbradshaw 0:e4a10ed6eb92 622 /**
jbradshaw 0:e4a10ed6eb92 623 * @brief /Testing/Test_LSM6DS3
jbradshaw 0:e4a10ed6eb92 624 * @details Start a testing sequence for this device, returns PASS and FAIL strings and detailed results of the test
jbradshaw 0:e4a10ed6eb92 625 */
jbradshaw 0:e4a10ed6eb92 626 struct RPC_registeredProcedure Define_Testing_Test_LSM6DS3 = { TESTING_NAME, "Test_LSM6DS3", Test_LSM6DS3 };
jbradshaw 0:e4a10ed6eb92 627 /**
jbradshaw 0:e4a10ed6eb92 628 * @brief /Testing/Test_MAX30205_1
jbradshaw 0:e4a10ed6eb92 629 * @details Start a testing sequence for this device, returns PASS and FAIL strings and detailed results of the test
jbradshaw 0:e4a10ed6eb92 630 */
jbradshaw 0:e4a10ed6eb92 631 struct RPC_registeredProcedure Define_Testing_Test_MAX30205_1 = { TESTING_NAME, "Test_MAX30205_1", Test_MAX30205_1 };
jbradshaw 0:e4a10ed6eb92 632 /**
jbradshaw 0:e4a10ed6eb92 633 * @brief /Testing/Test_MAX30205_2
jbradshaw 0:e4a10ed6eb92 634 * @details Start a testing sequence for this device, returns PASS and FAIL strings and detailed results of the test
jbradshaw 0:e4a10ed6eb92 635 */
jbradshaw 0:e4a10ed6eb92 636 struct RPC_registeredProcedure Define_Testing_Test_MAX30205_2 = { TESTING_NAME, "Test_MAX30205_2", Test_MAX30205_2 };
jbradshaw 0:e4a10ed6eb92 637 /**
jbradshaw 0:e4a10ed6eb92 638 * @brief /Testing/Test_MAX30101
jbradshaw 0:e4a10ed6eb92 639 * @details Start a testing sequence for this device, returns PASS and FAIL strings and detailed results of the test
jbradshaw 0:e4a10ed6eb92 640 */
jbradshaw 0:e4a10ed6eb92 641 struct RPC_registeredProcedure Define_Testing_Test_MAX30101 = { TESTING_NAME, "Test_MAX30101", Test_MAX30101 };
jbradshaw 0:e4a10ed6eb92 642 /**
jbradshaw 0:e4a10ed6eb92 643 * @brief /Testing/Test_MAX30001
jbradshaw 0:e4a10ed6eb92 644 * @details Start a testing sequence for this device, returns PASS and FAIL strings and detailed results of the test
jbradshaw 0:e4a10ed6eb92 645 */
jbradshaw 0:e4a10ed6eb92 646 struct RPC_registeredProcedure Define_Testing_Test_MAX30001 = { TESTING_NAME, "Test_MAX30001", Test_MAX30001 };
jbradshaw 0:e4a10ed6eb92 647 /**
jbradshaw 0:e4a10ed6eb92 648 * @brief /Testing/Test_EM9301
jbradshaw 0:e4a10ed6eb92 649 * @details Start a testing sequence for this device, returns PASS and FAIL strings and detailed results of the test
jbradshaw 0:e4a10ed6eb92 650 */
jbradshaw 0:e4a10ed6eb92 651 struct RPC_registeredProcedure Define_Testing_Test_EM9301 = { TESTING_NAME, "Test_EM9301", Test_EM9301 };
jbradshaw 0:e4a10ed6eb92 652 /**
jbradshaw 0:e4a10ed6eb92 653 * @brief /Testing/Test_EM9301
jbradshaw 0:e4a10ed6eb92 654 * @details Start a testing sequence for this device, returns PASS and FAIL strings and detailed results of the test
jbradshaw 0:e4a10ed6eb92 655 */
jbradshaw 0:e4a10ed6eb92 656 //struct RPC_registeredProcedure Define_Testing_Test_SensorReadings = { TESTING_NAME, "Test_SensorReadings", Test_EM9301 };
jbradshaw 0:e4a10ed6eb92 657
jbradshaw 0:e4a10ed6eb92 658 #define MAX14720_NAME "MAX14720"
jbradshaw 0:e4a10ed6eb92 659 /**
jbradshaw 0:e4a10ed6eb92 660 * @brief /MAX14720/ReadBoostVSet
jbradshaw 0:e4a10ed6eb92 661 * @details Read the BoostVSet value
jbradshaw 0:e4a10ed6eb92 662 * @return Returns the value from the BoostVSet register of the device
jbradshaw 0:e4a10ed6eb92 663 */
jbradshaw 0:e4a10ed6eb92 664 struct RPC_registeredProcedure Define_MAX14720_ReadBoostVSet = { MAX14720_NAME, "ReadBoostVSet", MAX14720_ReadBoostVSet };
jbradshaw 0:e4a10ed6eb92 665 /**
jbradshaw 0:e4a10ed6eb92 666 * @brief /MAX14720/WriteBoostVSet
jbradshaw 0:e4a10ed6eb92 667 * @details Write the BoostVSet value
jbradshaw 0:e4a10ed6eb92 668 * @param value The binary value to set the BoostVSet register to
jbradshaw 0:e4a10ed6eb92 669 * @return Returns 0x80 on success of the command
jbradshaw 0:e4a10ed6eb92 670 */
jbradshaw 0:e4a10ed6eb92 671 struct RPC_registeredProcedure Define_MAX14720_WriteBoostVSet = { MAX14720_NAME, "WriteBoostVSet", MAX14720_WriteBoostVSet };
jbradshaw 0:e4a10ed6eb92 672 /**
jbradshaw 0:e4a10ed6eb92 673 * @brief /MAX14720/ReadReg
jbradshaw 0:e4a10ed6eb92 674 * @details Read one of the MAX14720 registers
jbradshaw 0:e4a10ed6eb92 675 * @param address Address of the register to read
jbradshaw 0:e4a10ed6eb92 676 * @return Returns the value from the addressed register from the device
jbradshaw 0:e4a10ed6eb92 677 */
jbradshaw 0:e4a10ed6eb92 678 struct RPC_registeredProcedure Define_MAX14720_ReadReg = { MAX14720_NAME, "ReadReg", MAX14720_ReadReg };
jbradshaw 0:e4a10ed6eb92 679 /**
jbradshaw 0:e4a10ed6eb92 680 * @brief /MAX14720/WriteReg
jbradshaw 0:e4a10ed6eb92 681 * @details Write one of the MAX14720 registers
jbradshaw 0:e4a10ed6eb92 682 * @param address Address of the register to write
jbradshaw 0:e4a10ed6eb92 683 * @param data Value of the data to write
jbradshaw 0:e4a10ed6eb92 684 * @return Returns 0x80 on success of the command
jbradshaw 0:e4a10ed6eb92 685 */
jbradshaw 0:e4a10ed6eb92 686 struct RPC_registeredProcedure Define_MAX14720_WriteReg = { MAX14720_NAME, "WriteReg", MAX14720_WriteReg };
jbradshaw 0:e4a10ed6eb92 687
jbradshaw 0:e4a10ed6eb92 688 #endif /* _RPCDECLARATIONS_H_ */