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
Diff: mmex.h
- Revision:
- 0:67a55a82ce06
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmex.h Sun Feb 27 18:54:40 2011 +0000 @@ -0,0 +1,178 @@ +/* MMEx for MBED - MMEx specific functions + * 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 mmex.h + \brief MMEx specific functions with all global includes +*/ + +#ifndef MMEX_H +#define MMEX_H + +#include "spissp.h" +#include "mbed.h" + +#include "mbeddefs.h" + +#include "rpc.h" +#include "RPCFunction.h" +#include "RPCVariable.h" + +#include "helper.h" +#include "debug.h" + +#include "cfuncs.h" +#include "ffuncs.h" +#include "mfuncs.h" +#include "nfuncs.h" +#include "pfuncs.h" +#include "rfuncs.h" +#include "ufuncs.h" + +#include "MSCFileSystem.h" +#include "SDFileSystem.h" + +#include <string> // allow use of string classes + +#include "EthernetNetIf.h" +#include "HTTPClient.h" +#include "NTPClient.h" +#include "HTTPServer.h" +#include "HTTPStream.h" +#include "RPCFunction.h" + +#define bufsize 255 + +extern char inbuf[bufsize]; +extern char outbuf[bufsize]; + +extern int rx_max; +extern int tx_max; + +// startup values +#define start_baud 9600 // baudrate after startup + +#define c_error 'E' +#define c_busy 'B' + +#define c_rpc '/' +#define c_rpcapp '+' +#define c_rpcexe '*' + +// control strings +#define cc_arrow ">>" +#define cc_prompt ">!" +#define cc_null ">N" +#define cc_eof ">F" +#define cc_error ">E" +#define cc_busy ">B" + +// main command grouping +#define cmd_m 'M' +#define cmd_c 'C' +#define cmd_f 'F' +#define cmd_r 'R' +#define cmd_rpc '/' +#define cmd_n 'N' +#define cmd_p 'P' +#define cmd_u 'U' +#define cmd_c 'C' + +#define command_mode true +#define data_mode false + +// error messages, generic +#define noerror 0 +#define err_notimplemented 1 // command not implemented +#define err_notrecognized 2 // invalid command parameter +#define err_novalidcommand 3 // no valid command found + +// error messages, file operations +#define err_filenotopen 10 // could not open file +#define err_not_mounted 11 // error in mounting file +#define err_handle_used 12 // file handle in use +#define err_no_handle 13 // file handle not defined +#define err_directory 14 // error in opening directory +#define err_seek 15 // error in seek + +#define err_paramnoxeq 20 // error executing parameter string + +#define err_net_timeout 30 // network timout +#define err_net_NTP 31 // error in NTP + +// error message text definitions +#define err_0 "no error" +#define err_1 "command not implemented" +#define err_2 "invalid command parameter" +#define err_3 "no valid command found" + +#define err_10 "could not open file" +#define err_11 "error in mounting file" +#define err_12 "file handle in use" +#define err_13 "file handle not defined" +#define err_14 "error in opening directory" +#define err_15 "error in seek" +#define err_16 "error" +#define err_17 "error" +#define err_18 "error" +#define err_19 "error" +#define err_20 "cannot execute paramstring" + +#define err_21 "error" +#define err_22 "error" +#define err_23 "error" +#define err_24 "error" +#define err_25 "error" +#define err_26 "error" +#define err_27 "error" +#define err_28 "error" +#define err_29 "error" + +#define err_30 "network timeout" +#define err_31 "error in NTP" +#define err_32 "error" +#define err_33 "error" +#define err_34 "error" +#define err_35 "error" +#define err_36 "error" +#define err_37 "error" +#define err_38 "error" +#define err_39 "error" + + +#define msg_welcome "MMEx " +#define msg_version __DATE__ + +extern int err_num; +extern int last_err; +extern int tmode; +extern bool upcase; // global for change of case for text output + +void send_prompt(); +void welcome(); +void do_maindefault(); +void send_int(int val); +void send_2int(int val); +void send_error(int val); +void send_status(); + +#endif \ No newline at end of file