123
Fork of LG by
Diff: DeviceSequencer.h
- Revision:
- 198:78dd6d14d108
- Parent:
- 197:7a05523bf588
--- a/DeviceSequencer.h Wed Oct 19 10:55:05 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -#ifndef __DEVICE_SEQUENCER_H__ -#define __DEVICE_SEQUENCER_H__ - -//Sampler typedefs -typedef struct _DeviceSequencerSamplerSettings { - uint8_t enabled; //Enable sequence generation - uint32_t amplitude; //Generator analog output amplitude - volts in 16.16 format - int32_t sequence[64]; //Generator sequence - dimensionless units -1...+1 in 16.16 format - uint8_t position[2]; //Sequence position -} DeviceSequencerSamplerSettings; - -typedef struct _DeviceSequencerSamplerState { - uint8_t enabled; //Enable sequence generation - uint32_t amplitude; //Generator analog output amplitude - volts in 16.16 format - uint8_t position[2]; //Sequence position - uint32_t sample[2]; //Sequencer analog output = sequence[]: current/delayed - dimensionless units -1...+1 in 16.16 format - uint32_t voltage; //Sequencer analog output = sequence[] * amplitude - volts in 16.16 format -} DeviceSequencerSamplerState; - -typedef struct _DeviceSequencerSampler { - DeviceSequencerSamplerSettings settings; - DeviceSequencerSamplerState state; -} DeviceSequencerSampler; - -//Analog output typedefs -typedef struct _DeviceSequencerAnalogOutputTransferFunction { - uint32_t points; //Number of actual control points (up to 16) - int32_t voltage[16]; //Output voltage control points in signed 16.16 fixed point format - int32_t code[16]; //DAC code control points -} DeviceSequencerAnalogOutputTransferFunction; - -typedef struct _DeviceSequencerAnalogOutputSettings { - uint8_t enabled; //Enable analog output - DeviceSequencerAnalogOutputTransferFunction transfer; -} DeviceSequencerAnalogOutputSettings; - -typedef struct _DeviceSequencerAnalogOutputState { - uint8_t enabled; //Enable analog output - uint32_t voltage; //Sequencer analog output = sequence[] * amplitude - volts in 16.16 format -} DeviceSequencerAnalogOutputState; - -typedef struct _DeviceSequencerAnalogOutput { - DeviceSequencerAnalogOutputSettings settings; - DeviceSequencerAnalogOutputState state; -} DeviceSequencerAnalogOutput; - -//Logic output typedefs -typedef struct _DeviceSequencerLogicOutputSettings { - uint8_t enabled; //Enable logic (GPIO pin) output -} DeviceSequencerLogicOutputSettings; - -typedef struct _DeviceSequencerLogicOutputState { - uint8_t enabled; //Enable logic (GPIO pin) output - uint32_t level; //Sequencer logic output - 0/1 -} DeviceSequencerLogicOutputState; - -typedef struct _DeviceSequencerLogicOutput { - DeviceSequencerLogicOutputSettings settings; - DeviceSequencerLogicOutputState state; -} DeviceSequencerLogicOutput; - -typedef struct _DeviceSequencerOutput { - DeviceSequencerLogicOutput logic; - DeviceSequencerAnalogOutput analog; -} DeviceSequencerOutput; - -//Sequencer typedefs -typedef struct _DeviceSequencerOutputTransferFunction { - uint32_t points; //Number of actual control points (up to 16) - int32_t voltage[16]; //Output voltage control points in signed 16.16 fixed point format - int32_t code[16]; //DAC code control points -} DeviceSequencerOutputTransferFunction; - -typedef struct _DeviceSequencerSettings { - uint8_t enabled; //Enable sequence generation - uint8_t analog; //Modulate analog (voltage) output - uint8_t logic; //Modulate logic (GPIO pin) output - int32_t amplitude; //Generator analog output amplitude - volts in 16.16 format - int32_t sequence[64]; //Generator sequence - dimensionless units -1...+1 in 16.16 format - uint8_t position[2]; //Sequence position - DeviceSequencerOutputTransferFunction transfer; -} DeviceSequencerSettings; - -typedef struct _DeviceSequencerState { - uint8_t enabled; //Enable sequence generation - uint8_t analog; //Modulate analog (voltage) output - uint8_t logic; //Modulate logic (GPIO pin) output - uint32_t amplitude; //Generator analog output amplitude - volts in 16.16 format - uint8_t position[2]; //Sequence position - uint32_t sample[2]; //Sequencer analog output = sequence[]: current/delayed - dimensionless units -1...+1 in 16.16 format - uint32_t voltage; //Sequencer analog output = sequence[] * amplitude - volts in 16.16 format -} DeviceSequencerState; - -typedef struct _DeviceSequencer { - //DeviceSequencerSettings settings; - //DeviceSequencerState state; - - DeviceSequencerSampler sampler; - DeviceSequencerOutput output; -} DeviceSequencer; - -void InitSequencerDefaultSettings(void); -void InitSequencerState(void); -void DeviceStartSequencer(void); - -void sequencerProcess(void); - -#endif /* __DEVICE_SEQUENCER_H__ */ \ No newline at end of file