92 lines
1.4 KiB
C
92 lines
1.4 KiB
C
|
|
#include "clamp.h"
|
||
|
|
|
||
|
|
#include "driver.h"
|
||
|
|
#include "ports.h"
|
||
|
|
#include "fgen.h"
|
||
|
|
#include "utils.h"
|
||
|
|
#include "System/system.h"
|
||
|
|
|
||
|
|
extern SYSTEM_DATA_t sys;
|
||
|
|
|
||
|
|
static FREQUENCY_t * setFrequency(ACCESSORY_t *accy, FREQUENCY_t *freq)
|
||
|
|
{
|
||
|
|
|
||
|
|
accy->setPower(accy, sys.driver->powerLevel);
|
||
|
|
|
||
|
|
return freq;
|
||
|
|
}
|
||
|
|
|
||
|
|
static int setPower(ACCESSORY_t *accy, PowerLevel_t power)
|
||
|
|
{
|
||
|
|
FREQUENCY_t *f = driver_getFrequency();
|
||
|
|
|
||
|
|
return 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
static void _stateInit(ACCESSORY_t *accy)
|
||
|
|
{
|
||
|
|
FREQUENCY_t *freq = driver_getFrequency();
|
||
|
|
|
||
|
|
if (accy->initState)
|
||
|
|
{
|
||
|
|
accy->setFrequency = setFrequency;
|
||
|
|
accy->setPower = setPower;
|
||
|
|
|
||
|
|
accy->signalPath = SIGNAL_PATH_AMP;
|
||
|
|
|
||
|
|
accy->driveVoltage[LOW_FREQ] = V_27V;
|
||
|
|
accy->driveVoltage[HIGH_FREQ] = V_42V;
|
||
|
|
|
||
|
|
driver_setFrequency(freq);
|
||
|
|
|
||
|
|
driver_broadcastOn(true);
|
||
|
|
|
||
|
|
ACCY_setTimeout(accy, 500);
|
||
|
|
}
|
||
|
|
|
||
|
|
if (ACCY_timedOut(accy))
|
||
|
|
{
|
||
|
|
accy->state = PORT_STATE_RUNNING;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
int clamp_service(ACCESSORY_t *accy)
|
||
|
|
{
|
||
|
|
switch (accy->state)
|
||
|
|
{
|
||
|
|
case PORT_STATE_INIT:
|
||
|
|
{
|
||
|
|
_stateInit(accy);
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
case PORT_STATE_DEINIT:
|
||
|
|
{
|
||
|
|
if (accy->initState)
|
||
|
|
{
|
||
|
|
|
||
|
|
accy->stateTimer = sys.systemTime + 500;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (sys.systemTime >= accy->stateTimer)
|
||
|
|
{
|
||
|
|
accy->state = PORT_STATE_STANDBY;
|
||
|
|
}
|
||
|
|
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
case PORT_STATE_RUNNING:
|
||
|
|
{
|
||
|
|
if (accy->initState)
|
||
|
|
{
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
default:
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
return 0;
|
||
|
|
}
|