laforge
/
openbts-osmo
Archived
1
0
Fork 0

Introduce GSMConfigL1 as base class for GSMConfig

GSMConfigL1 only contains those fields applicable for the Layer1,
while GSMConfig contains all fields for higher layers.
master
Harald Welte 11 years ago
parent fa05e2e7c4
commit bc570dd885
  1. 6
      public-trunk/GSM/GSMConfig.cpp
  2. 29
      public-trunk/GSM/GSMConfig.h
  3. 38
      public-trunk/GSM/GSMConfigL1.cpp
  4. 93
      public-trunk/GSM/GSMConfigL1.h
  5. 2
      public-trunk/GSM/Makefile.am

@ -36,10 +36,8 @@ using namespace GSM;
GSMConfig::GSMConfig()
:mBand((GSMBand)gConfig.getNum("GSM.Band")),
mSI5Frame(UNIT_DATA),mSI6Frame(UNIT_DATA),
mT3122(gConfig.getNum("GSM.T3122Min")),
mStartTime(::time(NULL))
:mSI5Frame(UNIT_DATA),mSI6Frame(UNIT_DATA),
mT3122(gConfig.getNum("GSM.T3122Min"))
{
regenerateBeacon();
}

@ -32,6 +32,8 @@
#include <ControlCommon.h>
#include <PowerManager.h>
#include "GSMConfigL1.h"
#include "GSML3RRElements.h"
#include "GSML3CommonElements.h"
#include "GSML3RRMessages.h"
@ -54,7 +56,7 @@ class TCHList : public std::vector<TCHFACCHLogicalChannel*> {};
This object carries the top-level GSM air interface configuration.
It serves as a central clearinghouse to get access to everything else in the GSM code.
*/
class GSMConfig {
class GSMConfig : public GSMConfigL1 {
private:
@ -77,16 +79,6 @@ class GSMConfig {
TCHList mTCHPool;
//@}
/**@name BSIC. */
//@{
unsigned mNCC; ///< network color code
unsigned mBCC; ///< basestation color code
//@}
GSMBand mBand; ///< BTS operating band
Clock mClock; ///< local copy of BTS master clock
/**@name Encoded L2 frames to be sent on the BCCH. */
//@{
L2Frame mSI1Frame;
@ -103,8 +95,6 @@ class GSMConfig {
int mT3122;
time_t mStartTime;
L3LocationAreaIdentity mLAI;
bool mHold; ///< If true, do not respond to RACH bursts.
@ -132,22 +122,12 @@ class GSMConfig {
const L3Frame& SI6Frame() const { return mSI6Frame; }
//@}
/** Get the current master clock value. */
Time time() const { return mClock.get(); }
/**@name Accessors. */
//@{
Control::Pager& pager() { return mPager; }
GSMBand band() const { return mBand; }
unsigned BCC() const { return mBCC; }
unsigned NCC() const { return mNCC; }
GSM::Clock& clock() { return mClock; }
const L3LocationAreaIdentity& LAI() const { return mLAI; }
//@}
/** Return the BSIC, NCC:BCC. */
unsigned BSIC() const { return (mNCC<<3) | mBCC; }
/**
Re-encode the L2Frames for system information messages.
Called whenever a beacon parameter is changed.
@ -248,9 +228,6 @@ class GSMConfig {
void createCombinationVII(TransceiverManager &TRX, unsigned CN, unsigned TN);
//@}
/** Return number of seconds since starting. */
time_t uptime() const { return ::time(NULL)-mStartTime; }
/** Get a handle to the power manager. */
PowerManager& powerManager() { return mPowerManager; }
};

@ -0,0 +1,38 @@
/*
* Copyright 2008, 2009, 2010 Free Software Foundation, Inc.
*
* This software is distributed under the terms of the GNU Affero Public License.
* See the COPYING file in the main directory for details.
*
* This use of this software may be subject to additional restrictions.
* See the LEGAL file in the main directory for details.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <Globals.h>
#include "GSMConfigL1.h"
using namespace std;
using namespace GSM;
GSMConfigL1::GSMConfigL1()
:mBand((GSMBand)gConfig.getNum("GSM.Band")),
mStartTime(::time(NULL))
{
}

@ -0,0 +1,93 @@
/*
* Copyright 2008, 2009, 2010 Free Software Foundation, Inc.
*
* This software is distributed under the terms of the GNU Affero Public License.
* See the COPYING file in the main directory for details.
*
* This use of this software may be subject to additional restrictions.
* See the LEGAL file in the main directory for details.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GSMCONFIGL1_H
#define GSMCONFIGL1_H
#include <vector>
#include <PowerManager.h>
#include <TRXManager.h>
#include "GSMCommon.h"
namespace GSM {
/**
This object carries the top-level GSM air interface configuration.
It serves as a central clearinghouse to get access to everything else in the GSM code.
*/
class GSMConfigL1 {
protected:
/**@name BSIC. */
//@{
unsigned mNCC; ///< network color code
unsigned mBCC; ///< basestation color code
//@}
GSMBand mBand; ///< BTS operating band
Clock mClock; ///< local copy of BTS master clock
time_t mStartTime;
public:
/** All parameters come from gConfig. */
GSMConfigL1();
/** Get the current master clock value. */
Time time() const { return mClock.get(); }
/**@name Accessors. */
//@{
GSMBand band() const { return mBand; }
unsigned BCC() const { return mBCC; }
unsigned NCC() const { return mNCC; }
GSM::Clock& clock() { return mClock; }
//@}
/** Return the BSIC, NCC:BCC. */
unsigned BSIC() const { return (mNCC<<3) | mBCC; }
/** Return number of seconds since starting. */
time_t uptime() const { return ::time(NULL)-mStartTime; }
};
}; // GSM
#endif
// vim: ts=4 sw=4

@ -29,6 +29,7 @@ libGSM_la_SOURCES = \
GSM610Tables.cpp \
GSMCommon.cpp \
GSMConfig.cpp \
GSMConfigL1.cpp \
GSML1FEC.cpp \
GSML2LAPDm.cpp \
GSML3CCElements.cpp \
@ -53,6 +54,7 @@ noinst_HEADERS = \
GSM610Tables.h \
GSMCommon.h \
GSMConfig.h \
GSMConfigL1.h \
GSML1FEC.h \
GSML2LAPDm.h \
GSML3CCElements.h \