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

Committer:
DeMein
Date:
Sun Feb 27 18:54:40 2011 +0000
Revision:
0:67a55a82ce06
Version as submitted to the NXP Design Challenge

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DeMein 0:67a55a82ce06 1 /* MMEx for MBED - Parameter Command processing
DeMein 0:67a55a82ce06 2 * Copyright (c) 2011 MK
DeMein 0:67a55a82ce06 3 *
DeMein 0:67a55a82ce06 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
DeMein 0:67a55a82ce06 5 * of this software and associated documentation files (the "Software"), to deal
DeMein 0:67a55a82ce06 6 * in the Software without restriction, including without limitation the rights
DeMein 0:67a55a82ce06 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
DeMein 0:67a55a82ce06 8 * copies of the Software, and to permit persons to whom the Software is
DeMein 0:67a55a82ce06 9 * furnished to do so, subject to the following conditions:
DeMein 0:67a55a82ce06 10 *
DeMein 0:67a55a82ce06 11 * The above copyright notice and this permission notice shall be included in
DeMein 0:67a55a82ce06 12 * all copies or substantial portions of the Software.
DeMein 0:67a55a82ce06 13 *
DeMein 0:67a55a82ce06 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
DeMein 0:67a55a82ce06 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
DeMein 0:67a55a82ce06 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
DeMein 0:67a55a82ce06 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
DeMein 0:67a55a82ce06 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
DeMein 0:67a55a82ce06 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
DeMein 0:67a55a82ce06 20 * THE SOFTWARE.
DeMein 0:67a55a82ce06 21 */
DeMein 0:67a55a82ce06 22
DeMein 0:67a55a82ce06 23 /**
DeMein 0:67a55a82ce06 24 \file pfuncs.h
DeMein 0:67a55a82ce06 25 \brief Commands starting with P for processing Parameters
DeMein 0:67a55a82ce06 26 */
DeMein 0:67a55a82ce06 27
DeMein 0:67a55a82ce06 28 #ifndef PFUNCS_H
DeMein 0:67a55a82ce06 29 #define PFUNCS_H
DeMein 0:67a55a82ce06 30
DeMein 0:67a55a82ce06 31 #include "mmex.h"
DeMein 0:67a55a82ce06 32 #include <string> // allow use of string classes
DeMein 0:67a55a82ce06 33
DeMein 0:67a55a82ce06 34 // definition of the P-functions
DeMein 0:67a55a82ce06 35 #define pclear 'C' // Clear Parameter
DeMein 0:67a55a82ce06 36 #define pset 'S' // Set Parameter to value
DeMein 0:67a55a82ce06 37 #define pget 'G' // Get Parameter
DeMein 0:67a55a82ce06 38 #define plen 'L' // return the length of the parameter string
DeMein 0:67a55a82ce06 39 #define psave 'V' // Save all parameters to LocalDisk
DeMein 0:67a55a82ce06 40 #define pread 'R' // Read all parameters from LocalDisk
DeMein 0:67a55a82ce06 41 #define pxeq 'X' // Execute parameter string as command
DeMein 0:67a55a82ce06 42
DeMein 0:67a55a82ce06 43 // definitions for the user defined parameters
DeMein 0:67a55a82ce06 44 #define par_0 '0' // 0, user parameter
DeMein 0:67a55a82ce06 45 #define par_1 '1' // 1, user parameter
DeMein 0:67a55a82ce06 46 #define par_2 '2' // 2, user parameter
DeMein 0:67a55a82ce06 47 #define par_3 '3' // 3, user parameter
DeMein 0:67a55a82ce06 48 #define par_4 '4' // 4, user parameter
DeMein 0:67a55a82ce06 49 #define par_5 '5' // 5, user parameter
DeMein 0:67a55a82ce06 50 #define par_6 '6' // 6, user parameter
DeMein 0:67a55a82ce06 51 #define par_7 '7' // 7, user parameter
DeMein 0:67a55a82ce06 52 #define par_8 '8' // 8, user parameter
DeMein 0:67a55a82ce06 53 #define par_9 '9' // 9, user parameter
DeMein 0:67a55a82ce06 54
DeMein 0:67a55a82ce06 55 // other parameters predefined
DeMein 0:67a55a82ce06 56 #define par_E 'E' // (10) E: most recent Error message
DeMein 0:67a55a82ce06 57 #define par_R 'R' // (11) R: RPC Command string
DeMein 0:67a55a82ce06 58 #define par_S 'S' // (12) S: RPC Result string
DeMein 0:67a55a82ce06 59 #define par_C 'C' // (13) C: Most recent MMEx command
DeMein 0:67a55a82ce06 60 #define par_X 'X' // (14) X: Auto execute command string
DeMein 0:67a55a82ce06 61
DeMein 0:67a55a82ce06 62 // Networking parameters
DeMein 0:67a55a82ce06 63 #define par_I 'I' // (15) I: Network IP Address
DeMein 0:67a55a82ce06 64 #define par_J 'J' // (16) J: Network IP Address when no DHCP
DeMein 0:67a55a82ce06 65 #define par_H 'H' // (17) H: Network Host name
DeMein 0:67a55a82ce06 66 #define par_M 'M' // (18) M: Network MAC hardware address
DeMein 0:67a55a82ce06 67 #define par_U 'U' // (19) U: Network URL
DeMein 0:67a55a82ce06 68 #define par_N 'N' // (20) N: Networkl User name
DeMein 0:67a55a82ce06 69 #define par_P 'P' // (21) P: Network Password
DeMein 0:67a55a82ce06 70
DeMein 0:67a55a82ce06 71 #define par_E_ 10 // (10) E: most recent Error message
DeMein 0:67a55a82ce06 72 #define par_R_ 11 // (11) R: RPC Command string
DeMein 0:67a55a82ce06 73 #define par_S_ 12 // (12) S: RPC Result string
DeMein 0:67a55a82ce06 74 #define par_C_ 13 // (13) C: Most recent command string
DeMein 0:67a55a82ce06 75 #define par_X_ 14 // (14) X: Auto execute command string
DeMein 0:67a55a82ce06 76
DeMein 0:67a55a82ce06 77 #define par_I_ 15 // (15) I: Network IP Address
DeMein 0:67a55a82ce06 78 #define par_J_ 16 // (16) J: Network IP Address when no DHCP
DeMein 0:67a55a82ce06 79 #define par_H_ 17 // (17) H: Network Host name
DeMein 0:67a55a82ce06 80 #define par_M_ 18 // (18) M: Network MAC hardware address
DeMein 0:67a55a82ce06 81 #define par_U_ 19 // (19) U: Network URL
DeMein 0:67a55a82ce06 82 #define par_N_ 20 // (20) N: Networkl User name
DeMein 0:67a55a82ce06 83 #define par_P_ 21 // (21) P: Network Password
DeMein 0:67a55a82ce06 84
DeMein 0:67a55a82ce06 85
DeMein 0:67a55a82ce06 86 #define maxparams 21 // number of last parameter
DeMein 0:67a55a82ce06 87
DeMein 0:67a55a82ce06 88 extern string param[maxparams + 1]; // our array of parameter strings
DeMein 0:67a55a82ce06 89
DeMein 0:67a55a82ce06 90 int getpnum(char C);
DeMein 0:67a55a82ce06 91 void parse_P();
DeMein 0:67a55a82ce06 92 void do_pclear();
DeMein 0:67a55a82ce06 93 void do_pset();
DeMein 0:67a55a82ce06 94 void do_pget();
DeMein 0:67a55a82ce06 95 void do_plen();
DeMein 0:67a55a82ce06 96 void do_psave();
DeMein 0:67a55a82ce06 97 void do_pread();
DeMein 0:67a55a82ce06 98 void do_pxeq();
DeMein 0:67a55a82ce06 99 void init_loadp();
DeMein 0:67a55a82ce06 100 void init_xeq();
DeMein 0:67a55a82ce06 101 void do_pdefault();
DeMein 0:67a55a82ce06 102
DeMein 0:67a55a82ce06 103 #endif