view Discovery/Src/tMenuXtra.c @ 277:580822b5d3d1 IPC_Sync_Improvment_3

Rework SPI error handling. SPI_Start_single_TxRx_with_Master evaluated the incoming data for a condition to send device instead of life data. In case of invalid input data this may cause unintended transmission of device data => now lifedata is send if incoming data is expected to be invalid The SPI timeout monitoring was done at the beginning of the mode loop. A timeout may have been detected even if meanwhile valid data was received (this is evaluated at x20ms) => Moved the timeout monitoring after the handling of incoming data
author ideenmodellierer
date Sun, 28 Apr 2019 10:16:38 +0200
parents 5f11787b4f42
children 77de014928d6
line wrap: on
line source

///////////////////////////////////////////////////////////////////////////////
/// -*- coding: UTF-8 -*-
///
/// \file   Discovery/Src/tMenuXtra.c
/// \brief  Menu Xtra - Specials in Divemode like Reset Stopwatch
/// \author heinrichs weikamp gmbh
/// \date   02-Mar-2015
///
/// \details
///
/// $Id$
///////////////////////////////////////////////////////////////////////////////
/// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
///
///     This program is free software: you can redistribute it and/or modify
///     it under the terms of the GNU General Public License as published by
///     the Free Software Foundation, either version 3 of the License, or
///     (at your option) any later version.
///
///     This program is distributed in the hope that it will be useful,
///     but WITHOUT ANY WARRANTY; without even the implied warranty of
///     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
///     GNU General Public License for more details.
///
///     You should have received a copy of the GNU General Public License
///     along with this program.  If not, see <http://www.gnu.org/licenses/>.
//////////////////////////////////////////////////////////////////////////////

/* Includes ------------------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
#include "tMenu.h"
#include "tStructure.h"
#include "tMenuXtra.h"
#include "text_multilanguage.h"
#include "data_central.h"
#include "simulation.h"

/* Exported functions --------------------------------------------------------*/

uint32_t tMXtra_refresh(uint8_t line, char *text, uint16_t *tab, char *subtext)
{
    uint8_t textPointer;

    textPointer = 0;
    *tab = 500;
    *subtext = 0;

    if((line == 0) || (line == 1))
    {
        text[textPointer++] = TXT_2BYTE;
        text[textPointer++] = TXT2BYTE_ResetStopwatch;
    }
    strcpy(&text[textPointer],"\n\r");
    textPointer += 2;
/*
    if((line == 0) || (line == 2))
    {
            text[textPointer++] = TXT_2BYTE;
            text[textPointer++] = TXT2BYTE_ResetAvgDepth;
    }
    strcpy(&text[textPointer],"\n\r");
    textPointer += 2;
*/
    if((line == 0) || (line == 2))
    {
        text[textPointer++] = TXT_2BYTE;
        text[textPointer++] = TXT2BYTE_CompassHeading;
    }
    strcpy(&text[textPointer],"\n\r");
    textPointer += 2;

    if((line == 0) || (line == 3))
    {
        text[textPointer++] = TXT_2BYTE;
        text[textPointer++] = TXT2BYTE_SetMarker;
    }
    strcpy(&text[textPointer],"\n\r");
    textPointer += 2;

    if(is_stateUsedSetToSim())
    {
        if((line == 0) || (line == 4))
        {
            text[textPointer++] = TXT_2BYTE;
            text[textPointer++] = TXT2BYTE_SimFollowDecoStops;
            text[textPointer++] = ' ';
            text[textPointer++] = ' ';
            if(simulation_get_heed_decostops())
                text[textPointer++] = '\005';
            else
                text[textPointer++] = '\006';
        }
        strcpy(&text[textPointer],"\n\r");
        textPointer += 2;
    }

    return StMXTRA;
}