Программный модуль для кофеварки RCM-M1509S




ПО является неотъемлемой частью кофеварки RCM-M1509S, отдельно потребителю не поставляется и эксплуатируется только в составе устройства.

Фрагмент исходного кода
////////////////////////////////////////////////////////////////

//RCM-M1509S

//v1.1

//application.c

////////////////////////////////////////////////////////////////


#include "common.h"
#include "application.h"
#include "api.h"

#include "logic_work.h"
#include "functions_callback.h"
#include "scheme.h"
#include "init_periph.h"
#include "send_to_LCD.h"
#include "logic_work.h"
#include "pairing.h"
#include "timers_nordic.h"
#include "key.h"


//Get firmvare version
uint16_t API_GetVersion(void)
{
	return FIRMWARE_VER;
}

////////////////////////////////////////////////////////////////
// =========================================================================================
uint8_t api_start (void)
{
	changeState(HEAT);
	return 1;
}

bool API_Stop(void)
{
	if (bPairingOnFlag == 1) // if in pairing state, just stop pairing
	{
		pairing_stop ();
		//R4S_SET;
	}
	else
	{
		changeState(IDLE);
	}
	
	return true;
}

uint8_t api_go_to_stand_by(void)
{
	changeState(IDLE);
	return 1;
}

uint8_t api_get_state(void)
{
	if (bPairingOnFlag == 1)
	{
		return API_PAIRING_STATE;
	}
		
	switch( State )
	{	
		case IDLE:
		{
			return APP_API_IDLE_STATE;
		}
		case HEAT:
		case HEAT_AROMA:
		{
			return APP_API_WORK_STATE;
		}

		default:
		{
			return APP_API_IDLE_STATE;
		}
	}	
}

uint8_t api_get_state_for_bt(void)
{
	switch( State )
	{
		case IDLE:
		{
			return 0;
		}
		case HEAT:
		case HEAT_AROMA:
		{
			return 2;
		}
		default:
		{
			return 255;
		}
	}	
}

uint8_t api_get_program_for_bt(void)
{
	return api_get_state();
}
//=======================================================================

uint8_t API_SetSound (uint8_t _sound)
{
	if (_sound > 1) return 0;
	else
	{
		soundEnable = _sound;
	}
	return 1;
}

uint8_t API_GetSound (void)
{
	return soundEnable;
}
//========================================================================

uint8_t	API_SetAroma (uint8_t _aroma)
{
	if (_aroma > 1) return 0;
	else
	{
		SetAroma(_aroma);
	}
	return 1;
}

uint8_t API_GetAroma (void)
{
	return GetAroma();
}
//=========================================================================

uint8_t API_SetCurrentTime (uint16_t _minute)
{
	if (_minute > 1439) return 0;
	else
	{
		globalTime = _minute;
		if ( !timer_check_run(timer_show_lock) ) // если не запущен таймер показа блокировки. 
		{
			sendTimeToLCD(globalTime);
		}
	}
	return 1;
}

uint16_t API_GetCurrentTime (void)
{
	return globalTime;
}
//=========================================================================

uint8_t API_SetDelayedStart (uint16_t _delayedStart)
{
	return SetDelayedStart(_delayedStart);
}

uint8_t API_GetDelayedStart (void)
{
	return delayedStart;
}
//=========================================================================

uint8_t API_SetTimerTime (uint16_t _minute)
{
	if (_minute > 1439) return 0;
	else
	{
		timerTime = _minute;
	}
	return 1;
}

uint16_t API_GetTimerTime (void)
{
	return timerTime;
}
//=========================================================================

uint8_t API_SetLock (uint8_t _lock)
{
	if (_lock > 1) return 0;
	else
	{
		bLockKeys = _lock;
	}
	return 1;
}

uint8_t API_GetLock (void)
{
	return bLockKeys;
}

//********************************************************************************
//********************************************************************************
//Get error
uint8_t API_GetError(void)
{
	return API_NO_ERR;
}

////////////////////////////////////////////////////////////////

//Return a state of the unpairing flag
bool API_IsUnpairing(void)
{	
	return bUnpairFlag;
}

//Clear unpairing flag
void API_ClrUnpairing(void)
{
	bUnpairFlag = 0;
}

////////////////////////////////////////////////////////////////
Made on
Tilda