summaryrefslogtreecommitdiff
path: root/cesar/maximus/phy/inc/IPhy.h
diff options
context:
space:
mode:
authorsave2008-04-07 14:17:42 +0000
committersave2008-04-07 14:17:42 +0000
commit3d58a62727346b7ac1a6cb36fed1a06ed72228dd (patch)
treed7788c3cf9f76426aef0286d0202e2097f0fa0eb /cesar/maximus/phy/inc/IPhy.h
parent095dca4b0a8d4924093bab424f71f588fdd84613 (diff)
Moved the complete svn base into the cesar directory.
git-svn-id: svn+ssh://pessac/svn/cesar/trunk@1769 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar/maximus/phy/inc/IPhy.h')
-rw-r--r--cesar/maximus/phy/inc/IPhy.h234
1 files changed, 234 insertions, 0 deletions
diff --git a/cesar/maximus/phy/inc/IPhy.h b/cesar/maximus/phy/inc/IPhy.h
new file mode 100644
index 0000000000..96e425d2c3
--- /dev/null
+++ b/cesar/maximus/phy/inc/IPhy.h
@@ -0,0 +1,234 @@
+/************************************************************************
+ IPhy.h - Copyright buret
+
+Here you can write a license for your code, some comments or any other
+information you want to have in your generated code. To to this simply
+configure the "headings" directory in uml to point to a directory
+where you have your heading files.
+
+or you can just replace the contents of this file with your own.
+If you want to do this, this file is located at
+
+/usr/share/apps/umbrello/headings/heading.h
+
+-->Code Generators searches for heading files based on the file extension
+ i.e. it will look for a file name ending in ".h" to include in C++ header
+ files, and for a file name ending in ".java" to include in all generated
+ java code.
+ If you name the file "heading.<extension>", Code Generator will always
+ choose this file even if there are other files with the same extension in the
+ directory. If you name the file something else, it must be the only one with that
+ extension in the directory to guarantee that Code Generator will choose it.
+
+you can use variables in your heading files which are replaced at generation
+time. possible variables are : author, date, time, filename and filepath.
+just write %variable_name%
+
+This file was generated on %date% at %time%
+The original location of this file is /home/buret/eclipse/maximus/common/interfaces/IPhy.h
+**************************************************************************/
+
+#ifndef IPHY_H
+#define IPHY_H
+
+#include "hal_phy_types.h"
+#include "networkclock_types.h" // for 'Network_Clock_Tick'
+
+#include <boost/function.hpp> // for 'PhyMpduCb'
+
+class PhySciMsg;
+class PhySciMsgMpdu;
+class NetworkClockEvt;
+class INetworkClock;
+class IChannel;
+
+typedef boost::function <void (PhySciMsgMpdu &)> PhyMpduCb;
+
+
+/**
+ * class IPhy
+ */
+
+class IPhy
+{
+
+public:
+
+ // Constructors/Destructors
+ //
+
+ /**
+ * Empty Constructor
+ */
+ IPhy ( ) { }
+
+ /**
+ * Empty Destructor
+ */
+ virtual ~IPhy ( ) { }
+
+ // public methods
+ //
+
+ /**
+ * @param interface_cb
+ * Initialize PHY with an interface callback function for PHY SCI message MPDU reception.
+ */
+ virtual bool init ( PhyMpduCb interface_cb ) = 0;
+
+ /**
+ * Initialize PHY with the PLC frequency for PHY SCI message of type ZERO_CROSS.
+ * @param frequency
+ * @return bool
+ */
+ virtual bool init ( const float frequency ) = 0;
+
+ /**
+ * @return PhySciMsg *
+ */
+ virtual PhySciMsg * createMsg ( ) = 0;
+
+ /**
+ * Creates a PHY SCI message MPDU.
+ * @return PhySciMsgMpdu *
+ */
+ virtual PhySciMsgMpdu * createMpdu ( ) = 0;
+
+ /**
+ * Sends a PHY SCI message MPDU.
+ * This message has to be configured before transmission.
+ * @param p_mpdu
+ * @return bool
+ */
+ virtual bool sendMpdu ( PhySciMsgMpdu * p_mpdu ) = 0;
+
+ /**
+ * Sends the PHY SCI message associated to the received Network Clock event.
+ * @param received_evt
+ * @return bool
+ */
+ virtual bool receiveEvt ( NetworkClockEvt & received_evt ) = 0;
+
+ /**
+ * Processes the received PHY SCI message of type NONE or NOISE.
+ * @return bool
+ * @param received_phy_sci_msg
+ */
+ virtual bool receiveInvalid ( PhySciMsg & received_phy_sci_msg ) = 0;
+
+ /**
+ * Processes the received PHY SCI message of type PREAMBLE.
+ * @return bool
+ * @param received_phy_sci_msg
+ */
+ virtual bool receivePre ( PhySciMsg & received_phy_sci_msg ) = 0;
+
+ /**
+ * Processes the received PHY SCI message of type FC_HYBRID_MODE or FC_AV_ONLY_MODE.
+ * @return bool
+ * @param received_phy_sci_msg
+ */
+ virtual bool receiveFc ( PhySciMsg & received_phy_sci_msg ) = 0;
+
+ /**
+ * Processes the received PHY SCI message of type PRS.
+ * @return bool
+ * @param received_phy_sci_msg
+ */
+ virtual bool receivePrs ( PhySciMsg & received_phy_sci_msg ) = 0;
+
+ /**
+ * Processes the received PHY SCI message of type MPDU_PAYLOAD.
+ * @return bool
+ * @param received_phy_sci_msg
+ */
+ virtual bool receiveMpdu ( PhySciMsg & received_phy_sci_msg ) = 0;
+
+ /**
+ * Processes the received PHY SCI message of type TONEMASK.
+ * @return bool
+ * @param received_phy_sci_msg
+ */
+ virtual bool receiveTonemask ( PhySciMsg & received_phy_sci_msg ) = 0;
+
+ /**
+ * Processes the received PHY SCI message of type TONEMAP.
+ * @return bool
+ * @param received_phy_sci_msg
+ */
+ virtual bool receiveTonemap ( PhySciMsg & received_phy_sci_msg ) = 0;
+
+ /**
+ * Processes the received PHY SCI message of type RX.
+ * @return bool
+ * @param received_phy_sci_msg
+ */
+ virtual bool receiveRx ( PhySciMsg & received_phy_sci_msg ) = 0;
+
+ /**
+ * @return bool
+ * @param p_network_clock the new value of mpNetworkClock
+ */
+ virtual bool setNetworkClock ( INetworkClock * p_network_clock ) = 0;
+
+ /**
+ * @return bool
+ * @param p_channel the new value of mpChannel
+ */
+ virtual bool setChannel ( IChannel * p_channel ) = 0;
+
+ /**
+ * Sets the channel perturbation.
+ * @param is_channel_enabled the new value of mIsChannelEnabled
+ */
+ virtual bool setIsChannelEnabled ( const bool is_channel_enabled ) = 0;
+
+ /**
+ * Gets the TX ID.
+ * @return Phy_Tx_Id
+ */
+ virtual const Phy_Tx_Id getTxId ( ) const = 0;
+
+ /**
+ * Gets the tonemask.
+ * @return mpTonemask
+ */
+ virtual const uint8_t * getTonemask ( ) const = 0;
+
+ /**
+ * Check if the channel perturbation is enabled.
+ * @return mIsChannelEnabled
+ */
+ virtual bool isChannelEnabled ( ) const = 0;
+
+ /**
+ * Sets the power line frequency.
+ * @param frequency the new value of mFrequency
+ * @return bool
+ */
+ virtual bool setFrequency ( const float frequency ) = 0;
+
+ /**
+ * Gets the power line frequency.
+ * @return mFrequency
+ */
+ virtual const float getFrequency ( ) const = 0;
+
+ /**
+ * Activate the wrong preambles transmission feature.
+ * @param average_duration average number of ticks 25 MHz between two consecutive wrong preambles
+ * @param std_deviation the standard deviation
+ * @return bool
+ */
+ virtual bool activateFalseAlarm ( const Network_Clock_Tick average_duration, const float std_deviation ) = 0;
+
+ /**
+ * Deactivate the wrong preambles transmission feature.
+ * @return bool
+ */
+ virtual bool deactivateFalseAlarm ( ) = 0;
+
+};
+
+
+#endif // IPHY_H