root/ossiedev/branches/ttsou/dist/components/gmsk_mod/gmsk_mod.h @ 8613

Revision 8613, 2.8 KB (checked in by ttsou, 4 years ago)

cleared profiles

Line 
1/****************************************************************************
2
3Copyright 2007 Virginia Polytechnic Institute and State University
4
5This file is part of the OSSIE gmsk_mod.
6
7OSSIE gmsk_mod is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 2 of the License, or
10(at your option) any later version.
11
12OSSIE gmsk_mod is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with OSSIE gmsk_mod; if not, write to the Free Software
19Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20
21****************************************************************************/
22
23#include <stdlib.h>
24#include "ossie/cf.h"
25#include "ossie/PortTypes.h"
26#include "ossie/Resource_impl.h"
27#include "ossie/debug.h"
28
29#include "sigproc/SigProc.h"
30
31#include "standardinterfaces/complexShort_u.h"
32#include "standardinterfaces/complexShort_p.h"
33
34#include <boost/shared_ptr.hpp>
35#include <boost/utility.hpp>
36
37typedef boost::shared_ptr<SigProc::fir_filter> fir_filter_sptr;
38typedef boost::shared_ptr<SigProc::nco> nco_sptr;
39typedef boost::shared_ptr<standardInterfaces_i::complexShort_u> complexShort_u_sptr;
40typedef boost::shared_ptr<standardInterfaces_i::complexShort_p> complexShort_p_sptr;
41
42//
43// GMSK Modulator
44//
45// Note: Q channel is ignored on input - interface needs to be changed
46//
47
48class gmsk_mod_i : public virtual Resource_impl,
49                   boost::noncopyable
50{
51  public:
52    gmsk_mod_i(const char *uuid, omni_condition *sem);
53    ~gmsk_mod_i(void);
54
55    // SCA Resource Interfaces
56    void start()
57        throw (CF::Resource::StartError, CORBA::SystemException);
58    void stop()
59        throw (CF::Resource::StopError, CORBA::SystemException);
60    CORBA::Object_ptr getPort( const char* portName )
61        throw (CF::PortSupplier::UnknownPort, CORBA::SystemException);
62    void releaseObject()
63        throw (CF::LifeCycle::ReleaseError, CORBA::SystemException);
64    void initialize()
65        throw (CF::LifeCycle::InitializeError, CORBA::SystemException);
66    void configure(const CF::Properties&)
67        throw (CORBA::SystemException, CF::PropertySet::InvalidConfiguration,
68        CF::PropertySet::PartialConfiguration);
69
70  private:
71    gmsk_mod_i();
72
73    // Threading & Control
74    static void process_data(void *g);
75    omni_condition *component_running;
76    omni_thread *processing_thread;
77    volatile bool processing_active;
78
79    // Ports           
80    complexShort_p_sptr p_in;
81    complexShort_u_sptr p_out;
82
83    // Properties
84    unsigned short samp_per_symbol;
85
86    // SigProc
87    fir_filter_sptr f;
88    nco_sptr nco;   
89
90};
Note: See TracBrowser for help on using the browser.