MMEx with SPI Slave to allow legacy devices to communicate with modern media such as USB, SD cards, the internet and all of the mbed\'s other interfaces

Dependencies:   NetServices MSCUsbHost mbed TMP102 SDFileSystem

pfuncs.h

Committer:
DeMein
Date:
2011-02-27
Revision:
0:67a55a82ce06

File content as of revision 0:67a55a82ce06:

/* MMEx for MBED - Parameter Command processing
 * Copyright (c) 2011 MK
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

/**
  \file pfuncs.h
  \brief Commands starting with P for processing Parameters
*/

#ifndef PFUNCS_H
#define PFUNCS_H

#include "mmex.h"
#include <string>        // allow use of string classes

// definition of the P-functions
#define pclear   'C'         // Clear Parameter
#define pset     'S'         // Set Parameter to value
#define pget     'G'         // Get Parameter
#define plen     'L'         // return the length of the parameter string
#define psave    'V'         // Save all parameters to LocalDisk
#define pread    'R'         // Read all parameters from LocalDisk
#define pxeq     'X'         // Execute parameter string as command

// definitions for the user defined parameters
#define par_0    '0'         // 0, user parameter
#define par_1    '1'         // 1, user parameter
#define par_2    '2'         // 2, user parameter
#define par_3    '3'         // 3, user parameter
#define par_4    '4'         // 4, user parameter
#define par_5    '5'         // 5, user parameter
#define par_6    '6'         // 6, user parameter
#define par_7    '7'         // 7, user parameter
#define par_8    '8'         // 8, user parameter
#define par_9    '9'         // 9, user parameter

// other parameters predefined
#define par_E    'E'         // (10) E: most recent Error message
#define par_R    'R'         // (11) R: RPC Command string
#define par_S    'S'         // (12) S: RPC Result string
#define par_C    'C'         // (13) C: Most recent MMEx command
#define par_X    'X'         // (14) X: Auto execute command string

// Networking parameters
#define par_I    'I'         // (15) I: Network IP Address
#define par_J    'J'         // (16) J: Network IP Address when no DHCP
#define par_H    'H'         // (17) H: Network Host name
#define par_M    'M'         // (18) M: Network MAC hardware address
#define par_U    'U'         // (19) U: Network URL
#define par_N    'N'         // (20) N: Networkl User name
#define par_P    'P'         // (21) P: Network Password

#define par_E_   10          // (10) E: most recent Error message
#define par_R_   11          // (11) R: RPC Command string
#define par_S_   12          // (12) S: RPC Result string
#define par_C_   13          // (13) C: Most recent command string
#define par_X_   14          // (14) X: Auto execute command string

#define par_I_   15          // (15) I: Network IP Address
#define par_J_   16          // (16) J: Network IP Address when no DHCP
#define par_H_   17          // (17) H: Network Host name
#define par_M_   18          // (18) M: Network MAC hardware address
#define par_U_   19          // (19) U: Network URL
#define par_N_   20          // (20) N: Networkl User name
#define par_P_   21          // (21) P: Network Password


#define maxparams 21          // number of last parameter

extern string param[maxparams + 1];  // our array of parameter strings

int getpnum(char C);
void parse_P();
void do_pclear(); 
void do_pset();
void do_pget();
void do_plen();
void do_psave();
void do_pread();
void do_pxeq();
void init_loadp();  
void init_xeq();
void do_pdefault();

#endif