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
mmex.cpp
- Committer:
- DeMein
- Date:
- 2011-02-27
- Revision:
- 0:67a55a82ce06
File content as of revision 0:67a55a82ce06:
/* 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.cpp \brief MMEx specific functions */ #include "mmex.h" char inbuf[bufsize]; char outbuf[bufsize]; int rx_max = 0; int tx_max = 0; int err_num = 0; // global error number int last_err = 0; bool upcase = false; // global for change of case for text output const char *err_text[] = { err_0, err_1, err_2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, err_10, err_11, err_12, err_13, err_14, err_15, err_16, err_17, err_18, err_19, err_20, err_21, err_22, err_23, err_24, err_25, err_26, err_27, err_28, err_29, err_30, err_31, err_32, err_33, err_34, err_35, err_36, err_37, err_38, err_39 } ; /** send the MMEx prompt sequence * */ void send_prompt() { mldl.tx_add(c_escape); mldl.tx_add(c_prompt); } /** send the MMEx welcome message * */ void welcome() { DBG_msg("MMEx welcome", msg_welcome msg_version); char str[] = msg_welcome msg_version; upstring(str); mldl.tx_string(str); } /** send the actual MMEx status * */ void send_status() { char str[] = "MMEx running"; upstring(str); mldl.tx_string(str); } /** send error message, command not recognized * */ void do_maindefault() { // command not recognized DBG_msg("main", "parameter not recognized"); send_error(err_notrecognized); } /** send an integer value to the SPI interface * * @param val value to be sent * */ void send_int(int val) { sprintf(outbuf, "%d", val); mldl.tx_string(outbuf); } /** send a 2-digit integer value to the SPI interface * * @param val value to be sent * */ void send_2int(int val) { sprintf(outbuf, "%02d", val); mldl.tx_string(outbuf); } /** global error message processing, send error sequence * and prepare message string * * @param val error value * */ void send_error(int val) { char str[20]; sprintf(str, "%02d", val); err_num = val; last_err = val; DBG_msg("error found: ", str); sprintf(str, "%02d:", err_num); param[par_E_].assign(str); param[par_E_] += err_text[err_num]; mldl.tx_add(c_escape); mldl.tx_add(c_error); }