This makes Amplitude Modulated Pulse Train, which can be regarded as the discretized wave of the signal. Pulse Train can be defined by frequency and duty cycle, which can be temporarily changed, referring to PWM.

Dependents:   Interference_Simple

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers AMPulseTrain.cpp Source File

AMPulseTrain.cpp

00001 #include "AMPulseTrain.h"
00002 
00003 AMPulseTrain::AMPulseTrain(
00004     /// Carrier Pulse Train
00005     PulseTrain  * arg_carrier,
00006     /// Initial AM Signal expression
00007     AMSignal  * arg_signal
00008 ):
00009     Carrier(arg_carrier),
00010     Signal(arg_signal)
00011 {
00012     RecalcPulsebaseParameter();
00013 }
00014 
00015 
00016 
00017 
00018 uint16_t
00019 AMPulseTrain::getClockperiod_us()
00020 {
00021     return Carrier->getClockperiod_us();
00022 }
00023 
00024 void
00025 AMPulseTrain::incrementClock()
00026 {
00027     Carrier->incrementClock();
00028 }
00029 
00030 
00031 
00032 
00033 void
00034 AMPulseTrain::attachCallback_asClock(
00035     Callback<void(bool, AMPulseTrain*)> arg_callback
00036 )
00037 {
00038     m_callback_asClock = arg_callback;
00039     Carrier->attachCallback_asClock(callback(this, &AMPulseTrain::CallbackWrapper_asClock));
00040 }
00041 
00042 void
00043 AMPulseTrain::CallbackWrapper_asClock(bool arg_pulsestate)
00044 {
00045     m_callback_asClock(arg_pulsestate, this);
00046 }
00047 
00048 
00049 
00050 
00051 void
00052 AMPulseTrain::attachCallback_asPulseEdge(
00053     Callback<void(bool, AMPulseTrain*)> arg_callback
00054 )
00055 {
00056     m_callback_asPulseEdge = arg_callback;
00057     Carrier->attachCallback_asPulseEdge (callback(this, &AMPulseTrain::CallbackWrapper_asPulseEdge));
00058 }
00059 
00060 void
00061 AMPulseTrain::CallbackWrapper_asPulseEdge(bool arg_pulsestate)
00062 {
00063     m_callback_asPulseEdge(arg_pulsestate, this);
00064 }
00065 
00066 
00067 
00068 
00069 void
00070 AMPulseTrain::attachAMSignalExpression(
00071     Callback<uint16_t(AMPulseTrain*)> arg_callback
00072 )
00073 {
00074     m_AMSignalExpression = arg_callback;
00075     Signal->attachAMSignalExpression(
00076         callback(this, &AMPulseTrain::CallbackWrapper_AMSignalExpression)
00077     );
00078 }
00079 
00080 uint16_t
00081 AMPulseTrain::CallbackWrapper_AMSignalExpression(AMSignal* arg_signal)
00082 {
00083     return m_AMSignalExpression(this);
00084 }