LEFT | RIGHT |
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ | 1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
2 /* | 2 /* |
3 * Copyright (c) 2007,2008 INRIA | 3 * Copyright (c) 2007,2008 INRIA |
4 * | 4 * |
5 * This program is free software; you can redistribute it and/or modify | 5 * This program is free software; you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 2 as | 6 * it under the terms of the GNU General Public License version 2 as |
7 * published by the Free Software Foundation; | 7 * published by the Free Software Foundation; |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 30 matching lines...) Expand all Loading... |
41 | 41 |
42 /** | 42 /** |
43 * \ingroup wimax | 43 * \ingroup wimax |
44 */ | 44 */ |
45 class WimaxPhy : public Object | 45 class WimaxPhy : public Object |
46 { | 46 { |
47 public: | 47 public: |
48 /// ModulationType enumeration | 48 /// ModulationType enumeration |
49 enum ModulationType // Table 356 and 362 | 49 enum ModulationType // Table 356 and 362 |
50 { | 50 { |
51 MODULATION_TYPE_BPSK_12, MODULATION_TYPE_QPSK_12, MODULATION_TYPE_QPSK_34, M
ODULATION_TYPE_QAM16_12, | 51 MODULATION_TYPE_BPSK_12, |
52 MODULATION_TYPE_QAM16_34, MODULATION_TYPE_QAM64_23, MODULATION_TYPE_QAM64_34 | 52 MODULATION_TYPE_QPSK_12, |
| 53 MODULATION_TYPE_QPSK_34, |
| 54 MODULATION_TYPE_QAM16_12, |
| 55 MODULATION_TYPE_QAM16_34, |
| 56 MODULATION_TYPE_QAM64_23, |
| 57 MODULATION_TYPE_QAM64_34 |
53 }; | 58 }; |
54 | 59 |
55 /// PhyState enumeration | 60 /// PhyState enumeration |
56 enum PhyState | 61 enum PhyState |
57 { | 62 { |
58 PHY_STATE_IDLE, PHY_STATE_SCANNING, PHY_STATE_TX, PHY_STATE_RX | 63 PHY_STATE_IDLE, |
| 64 PHY_STATE_SCANNING, |
| 65 PHY_STATE_TX, |
| 66 PHY_STATE_RX |
59 }; | 67 }; |
60 | 68 |
61 /// PhyType enumeration | 69 /// PhyType enumeration |
62 enum PhyType | 70 enum PhyType |
63 { | 71 { |
64 SimpleWimaxPhy, simpleOfdmWimaxPhy | 72 SimpleWimaxPhy, |
| 73 simpleOfdmWimaxPhy |
65 }; | 74 }; |
66 | 75 |
67 /** | 76 /** |
68 * \brief Get the type ID. | 77 * \brief Get the type ID. |
69 * \return the object TypeId | 78 * \return the object TypeId |
70 */ | 79 */ |
71 static TypeId GetTypeId (void); | 80 static TypeId GetTypeId (void); |
72 WimaxPhy (void); | 81 WimaxPhy (void); |
73 virtual ~WimaxPhy (void); | 82 virtual ~WimaxPhy (void); |
74 /** | 83 /** |
(...skipping 23 matching lines...) Expand all Loading... |
98 * \return the receive callback | 107 * \return the receive callback |
99 */ | 108 */ |
100 Callback<void, Ptr<const PacketBurst> > GetReceiveCallback (void) const; | 109 Callback<void, Ptr<const PacketBurst> > GetReceiveCallback (void) const; |
101 /** | 110 /** |
102 * \brief send a packet on the channel | 111 * \brief send a packet on the channel |
103 * \param params the parameters used to send the packet | 112 * \param params the parameters used to send the packet |
104 */ | 113 */ |
105 virtual void Send (SendParams *params) = 0; | 114 virtual void Send (SendParams *params) = 0; |
106 /** | 115 /** |
107 * \brief Get the type of the physical layer | 116 * \brief Get the type of the physical layer |
| 117 * \returns the phy type |
108 */ | 118 */ |
109 virtual PhyType GetPhyType (void) const = 0; | 119 virtual PhyType GetPhyType (void) const = 0; |
110 /** | 120 /** |
111 * \brief configure the physical layer in duplex mode | 121 * \brief configure the physical layer in duplex mode |
112 * \param rxFrequency the reception frequency | 122 * \param rxFrequency the reception frequency |
113 * \param txFrequency the transmission frequency | 123 * \param txFrequency the transmission frequency |
114 */ | 124 */ |
115 void SetDuplex (uint64_t rxFrequency, uint64_t txFrequency); | 125 void SetDuplex (uint64_t rxFrequency, uint64_t txFrequency); |
116 /** | 126 /** |
117 * \brief configure the physical layer in simplex mode | 127 * \brief configure the physical layer in simplex mode |
118 * \param frequency the frequency to be used for reception and transmission p
rocess | 128 * \param frequency the frequency to be used for reception and transmission p
rocess |
119 */ | 129 */ |
120 void SetSimplex (uint64_t frequency); | 130 void SetSimplex (uint64_t frequency); |
121 /** | 131 /** |
| 132 * Get the reception frequency |
122 * \return the reception frequency | 133 * \return the reception frequency |
123 */ | 134 */ |
124 uint64_t GetRxFrequency (void) const; | 135 uint64_t GetRxFrequency (void) const; |
125 /** | 136 /** |
| 137 * Get the transmission frequency |
126 * \return the transmission frequency | 138 * \return the transmission frequency |
127 */ | 139 */ |
128 uint64_t GetTxFrequency (void) const; | 140 uint64_t GetTxFrequency (void) const; |
129 /** | 141 /** |
| 142 * Get the scanning frequency |
130 * \return the scanning frequency | 143 * \return the scanning frequency |
131 */ | 144 */ |
132 uint64_t GetScanningFrequency (void) const; | 145 uint64_t GetScanningFrequency (void) const; |
133 /** | 146 /** |
| 147 * Set the number of carriers in the physical frame |
134 * \brief Set the number of carriers in the physical frame | 148 * \brief Set the number of carriers in the physical frame |
135 * \param nrCarriers the number of carriers in the frame | 149 * \param nrCarriers the number of carriers in the frame |
136 */ | 150 */ |
137 | |
138 void SetNrCarriers (uint8_t nrCarriers); | 151 void SetNrCarriers (uint8_t nrCarriers); |
139 /** | 152 /** |
140 * \return the number of carriers in the frame | 153 * Get the number of carriers in the physical frame |
| 154 * \return the number of carriers in the physical frame |
141 */ | 155 */ |
142 uint8_t GetNrCarriers (void) const; | 156 uint8_t GetNrCarriers (void) const; |
143 /** | 157 /** |
144 * \brief Set the frame duration | 158 * \brief Set the frame duration |
145 * \param frameDuration the frame duration | 159 * \param frameDuration the frame duration |
146 */ | 160 */ |
147 void SetFrameDuration (Time frameDuration); | 161 void SetFrameDuration (Time frameDuration); |
148 /** | 162 /** |
149 * \return the frame duration in seconds | 163 * \brief Get the frame duration |
| 164 * This method is redundant with GetFrameDuration () |
| 165 * \return the frame duration |
150 */ | 166 */ |
151 Time GetFrameDurationSec (void) const; | 167 Time GetFrameDurationSec (void) const; |
152 /** | 168 /** |
| 169 * \brief Get the frame duration |
153 * \return the frame duration | 170 * \return the frame duration |
154 */ | 171 */ |
155 Time GetFrameDuration (void) const; | 172 Time GetFrameDuration (void) const; |
156 /** | 173 /** |
157 * \brief set the frequency on which the device should lock | 174 * \brief set the frequency on which the device should lock |
158 * \param frequency the frequency to configure | 175 * \param frequency the frequency to configure |
159 */ | 176 */ |
160 void SetFrequency (uint32_t frequency); | 177 void SetFrequency (uint32_t frequency); |
161 /** | 178 /** |
| 179 * Get the frequency on which the device is locked |
162 * \return the frequency on which the device is locked | 180 * \return the frequency on which the device is locked |
163 */ | 181 */ |
164 uint32_t GetFrequency (void) const; | 182 uint32_t GetFrequency (void) const; |
165 /** | 183 /** |
166 * \brief Set the channel bandwidth | 184 * \brief Set the channel bandwidth |
167 * \param channelBandwidth The channel bandwidth | 185 * \param channelBandwidth The channel bandwidth |
168 */ | 186 */ |
169 void SetChannelBandwidth (uint32_t channelBandwidth); | 187 void SetChannelBandwidth (uint32_t channelBandwidth); |
170 /** | 188 /** |
| 189 * Get the channel bandwidth |
171 * \return the channel bandwidth | 190 * \return the channel bandwidth |
172 */ | 191 */ |
173 uint32_t GetChannelBandwidth (void) const; | 192 uint32_t GetChannelBandwidth (void) const; |
174 /** | 193 /** |
| 194 * Get the size of the FFT |
175 * \return the size of the FFT | 195 * \return the size of the FFT |
176 */ | 196 */ |
177 uint16_t GetNfft (void) const; | 197 uint16_t GetNfft (void) const; |
178 /** | 198 /** |
| 199 * Get the sampling factor |
179 * \return the sampling factor | 200 * \return the sampling factor |
180 */ | 201 */ |
181 double GetSamplingFactor (void) const; | 202 double GetSamplingFactor (void) const; |
182 /** | 203 /** |
| 204 * Get the sampling frequency |
183 * \return the sampling frequency | 205 * \return the sampling frequency |
184 */ | 206 */ |
185 double GetSamplingFrequency (void) const; | 207 double GetSamplingFrequency (void) const; |
186 /** | 208 /** |
187 * \brief set the physical slot duration in seconds | 209 * \brief set the physical slot duration |
188 * \param psDuration the physical slot duration | 210 * \param psDuration the physical slot duration |
189 */ | 211 */ |
190 void SetPsDuration (Time psDuration); | 212 void SetPsDuration (Time psDuration); |
191 /** | 213 /** |
| 214 * Get the physical slot duration |
192 * \return the physical slot duration | 215 * \return the physical slot duration |
193 */ | 216 */ |
194 Time GetPsDuration (void) const; | 217 Time GetPsDuration (void) const; |
195 /** | 218 /** |
196 * \brief set the OFMD symbol duration in second | 219 * \brief set the OFDM symbol duration |
197 * \param symbolDuration the symbol duration is second | 220 * \param symbolDuration the symbol duration |
198 */ | 221 */ |
199 void SetSymbolDuration (Time symbolDuration); | 222 void SetSymbolDuration (Time symbolDuration); |
200 /** | 223 /** |
| 224 * Get the OFDM symbol duration |
201 * \return the symbol duration in second | 225 * \return the symbol duration in second |
202 */ | 226 */ |
203 Time GetSymbolDuration (void) const; | 227 Time GetSymbolDuration (void) const; |
204 /** | 228 /** |
205 * \return the guard interval factor (The ratio TG/Td) | 229 * Get the guard interval factor (the ratio TG/Td) |
| 230 * \return the guard interval factor |
206 */ | 231 */ |
207 double GetGValue (void) const; | 232 double GetGValue (void) const; |
208 /** | 233 /** |
209 * \brief set the number of physical slots per symbol | 234 * \brief set the number of physical slots per symbol |
210 * \param psPerSymbol the number of physical slots per symbol | 235 * \param psPerSymbol the number of physical slots per symbol |
211 */ | 236 */ |
212 void SetPsPerSymbol (uint16_t psPerSymbol); | 237 void SetPsPerSymbol (uint16_t psPerSymbol); |
213 /** | 238 /** |
| 239 * Get the number of physical slots per symbol |
214 * \return the number of physical slots per symbol | 240 * \return the number of physical slots per symbol |
215 */ | 241 */ |
216 uint16_t GetPsPerSymbol (void) const; | 242 uint16_t GetPsPerSymbol (void) const; |
217 | 243 |
218 /** | 244 /** |
219 * \brief set the number of physical slot per frame | 245 * \brief set the number of physical slots per frame |
220 * \param psPerFrame the number of physical slot per frame | 246 * \param psPerFrame the number of physical slots per frame |
221 */ | 247 */ |
222 void SetPsPerFrame (uint16_t psPerFrame); | 248 void SetPsPerFrame (uint16_t psPerFrame); |
223 /** | 249 /** |
| 250 * Get the number of physical slots per frame |
224 * \return the number of physical slot per frame | 251 * \return the number of physical slot per frame |
225 */ | 252 */ |
226 uint16_t GetPsPerFrame (void) const; | 253 uint16_t GetPsPerFrame (void) const; |
227 /** | 254 /** |
228 * \brief set the number of symbols per frame | 255 * \brief set the number of symbols per frame |
229 * \param symbolsPerFrame the number of symbols per frame | 256 * \param symbolsPerFrame the number of symbols per frame |
230 */ | 257 */ |
231 void SetSymbolsPerFrame (uint32_t symbolsPerFrame); | 258 void SetSymbolsPerFrame (uint32_t symbolsPerFrame); |
232 /** | 259 /** |
| 260 * Get the number of symbols per frame |
233 * \return the number of symbols per frame | 261 * \return the number of symbols per frame |
234 */ | 262 */ |
235 uint32_t GetSymbolsPerFrame (void) const; | 263 uint32_t GetSymbolsPerFrame (void) const; |
236 /** | 264 /** |
| 265 * Check if configured in duplex mode |
237 * \return true if the device is configured in duplex mode | 266 * \return true if the device is configured in duplex mode |
238 */ | 267 */ |
239 bool IsDuplex (void) const; | 268 bool IsDuplex (void) const; |
240 /** | 269 /** |
241 * \brief set the state of the device | 270 * \brief set the state of the device |
242 * \param state the state to be set (PHY_STATE_IDLE, PHY_STATE_SCANNING, PHY_S
TATE_TX, PHY_STATE_RX) | 271 * \param state the state to be set (PHY_STATE_IDLE, PHY_STATE_SCANNING, PHY_S
TATE_TX, PHY_STATE_RX) |
243 */ | 272 */ |
244 void SetState (PhyState state); | 273 void SetState (PhyState state); |
245 /** | 274 /** |
| 275 * Get the state of the device |
246 * \return the state of the device (PHY_STATE_IDLE, PHY_STATE_SCANNING, PHY_ST
ATE_TX, PHY_STATE_RX) | 276 * \return the state of the device (PHY_STATE_IDLE, PHY_STATE_SCANNING, PHY_ST
ATE_TX, PHY_STATE_RX) |
247 */ | 277 */ |
248 PhyState GetState (void) const; | 278 PhyState GetState (void) const; |
249 /** | 279 /** |
250 * \brief scan the frequency frequency for maximum timeout seconds and calls c
allback if the frequency could be used | 280 * \brief scan a frequency for maximum timeout seconds and call the callback i
f the frequency can be used |
251 * \param frequency the frequency to scan | 281 * \param frequency the frequency to scan |
252 * \param timeout the timout before considering the channel as unusable | 282 * \param timeout the timout before considering the channel as unusable |
253 * \param callback the function to call if the channel could be used | 283 * \param callback the function to call if the channel could be used |
254 */ | 284 */ |
255 void StartScanning (uint64_t frequency, Time timeout, Callback<void, bool, uin
t64_t> callback); | 285 void StartScanning (uint64_t frequency, Time timeout, Callback<void, bool, uin
t64_t> callback); |
256 | 286 |
257 /** | 287 /** |
258 * \brief calls the scanning call back function | 288 * \brief calls the scanning call back function |
259 */ | 289 */ |
260 void SetScanningCallback (void) const; | 290 void SetScanningCallback (void) const; |
261 /** | 291 /** |
262 * \brief Get channel search timeut event | 292 * \brief Get channel search timeout event |
263 * \return event ID | 293 * \return event ID |
264 */ | 294 */ |
265 EventId GetChnlSrchTimeoutEvent (void) const; | 295 EventId GetChnlSrchTimeoutEvent (void) const; |
266 /** | 296 /** |
267 * \brief calculates the data rate of each modulation and save them for future
use | 297 * \brief calculates the data rate of each modulation and save them for future
use |
268 */ | 298 */ |
269 void SetDataRates (void); | 299 void SetDataRates (void); |
270 /** | 300 /** |
271 * \return the data rate of the modulation modulationType | 301 * Get the data rate corresponding to a modulation type |
| 302 * \return the data rate |
272 * \param modulationType the modulation that you want to get its data rate | 303 * \param modulationType the modulation that you want to get its data rate |
273 */ | 304 */ |
274 uint32_t GetDataRate (ModulationType modulationType) const; | 305 uint32_t GetDataRate (ModulationType modulationType) const; |
275 /** | 306 /** |
276 * \return the time needed to transmit size bytes using the modulation modulat
ionType | 307 * Get transmission time needed to send bytes at a given modulation |
| 308 * \return the time needed |
277 * \param size the number of byte to transmit | 309 * \param size the number of byte to transmit |
278 * \param modulationType the modulation that will be used to transmit the byte
s | 310 * \param modulationType the modulation that will be used to transmit the byte
s |
279 */ | 311 */ |
280 Time GetTransmissionTime (uint32_t size, ModulationType modulationType) const; | 312 Time GetTransmissionTime (uint32_t size, ModulationType modulationType) const; |
281 /** | 313 /** |
282 * \return the number of symbols needed to transmit size bytes using the modul
ation modulationType | 314 * Get the number of symbols needed to transmit size bytes using the modulatio
n modulationType |
| 315 * \return the number of symbols needed |
283 * \param size the number of byte to transmit | 316 * \param size the number of byte to transmit |
284 * \param modulationType the modulation that will be used to transmit the byte
s | 317 * \param modulationType the modulation that will be used to transmit the byte
s |
285 */ | 318 */ |
286 uint64_t GetNrSymbols (uint32_t size, ModulationType modulationType) const; | 319 uint64_t GetNrSymbols (uint32_t size, ModulationType modulationType) const; |
287 /** | 320 /** |
288 * \return the maximum number of bytes that could be carried by symbols symbol
s using the modulation modulationType | 321 * Get the maximum number of bytes that could be carried by symbols symbols us
ing the modulation modulationType |
| 322 * \return the maximum number of bytes |
289 * \param symbols the number of symbols to use | 323 * \param symbols the number of symbols to use |
290 * \param modulationType the modulation that will be used | 324 * \param modulationType the modulation that will be used |
291 */ | 325 */ |
292 uint64_t GetNrBytes (uint32_t symbols, ModulationType modulationType) const; | 326 uint64_t GetNrBytes (uint32_t symbols, ModulationType modulationType) const; |
293 /** | 327 /** |
| 328 * Get the transmit/receive transition gap |
294 * \return the transmit/receive transition gap | 329 * \return the transmit/receive transition gap |
295 */ | 330 */ |
296 uint16_t GetTtg (void) const; | 331 uint16_t GetTtg (void) const; |
297 /** | 332 /** |
| 333 * Get the receive/transmit transition gap |
298 * \return the receive/transmit transition gap | 334 * \return the receive/transmit transition gap |
299 */ | 335 */ |
300 uint16_t GetRtg (void) const; | 336 uint16_t GetRtg (void) const; |
301 /** | 337 /** |
| 338 * Get the frame duration code |
302 * \return the frame duration code | 339 * \return the frame duration code |
303 */ | 340 */ |
304 uint8_t GetFrameDurationCode (void) const; | 341 uint8_t GetFrameDurationCode (void) const; |
305 /** | 342 /** |
| 343 * Get the frame duration corresponding to a given code |
306 * \param frameDurationCode the frame duration code to use | 344 * \param frameDurationCode the frame duration code to use |
307 * \return the frame duration | 345 * \return the frame duration |
308 */ | 346 */ |
309 Time GetFrameDuration (uint8_t frameDurationCode) const; | 347 Time GetFrameDuration (uint8_t frameDurationCode) const; |
310 /** | 348 /** |
311 * \brief computes the Physical parameters and store them | 349 * \brief computes the Physical parameters and store them |
312 */ | 350 */ |
313 void SetPhyParameters (void); | 351 void SetPhyParameters (void); |
314 virtual void DoDispose (void); | 352 virtual void DoDispose (void); |
315 /** | 353 /** |
| 354 * Get the mobility model of the device |
316 * \return the mobility model of the device | 355 * \return the mobility model of the device |
317 */ | 356 */ |
318 virtual Ptr<Object> GetMobility (void); | 357 virtual Ptr<Object> GetMobility (void); |
319 /** | 358 /** |
320 * \brief set the mobility model of the device | 359 * \brief set the mobility model of the device |
321 * \param mobility the mobility model to set | 360 * \param mobility the mobility model to set |
322 */ | 361 */ |
323 virtual void SetMobility (Ptr<Object> mobility); | 362 virtual void SetMobility (Ptr<Object> mobility); |
324 | 363 |
325 /** | 364 /** |
326 * Assign a fixed random variable stream number to the random variables | 365 * Assign a fixed random variable stream number to the random variables |
327 * used by this model. Return the number of streams (possibly zero) that | 366 * used by this model. Return the number of streams (possibly zero) that |
328 * have been assigned. | 367 * have been assigned. |
329 * | 368 * |
330 * \param stream first stream index to use | 369 * \param stream first stream index to use |
331 * \return the number of stream indices assigned by this model | 370 * \return the number of stream indices assigned by this model |
332 */ | 371 */ |
333 virtual int64_t AssignStreams (int64_t stream) = 0; | 372 virtual int64_t AssignStreams (int64_t stream) = 0; |
334 | 373 |
335 private: | 374 private: |
336 /** | 375 /** |
337 * Get modulation FEC parameters function | 376 * Get modulation FEC parameters· |
338 * \param modulationType the modultion type | 377 * \param modulationType the modultion type |
339 * \param bitsPerSymbol the number of bits per symbol page | 378 * \param bitsPerSymbol the number of bits per symbol page |
340 * \param fecCode the FEC code | 379 * \param fecCode the FEC code |
341 */ | 380 */ |
342 void GetModulationFecParams (ModulationType modulationType, uint8_t &bitsPerSy
mbol, double &fecCode) const; | 381 void GetModulationFecParams (ModulationType modulationType, uint8_t &bitsPerSy
mbol, double &fecCode) const; |
343 /// End scanning function | 382 /// End scanning |
344 void EndScanning (void); | 383 void EndScanning (void); |
345 /** | 384 /** |
346 * Get transmission time function | 385 * Get transmission time |
347 * \param size the transmission size | 386 * \param size the transmission size |
348 * \param modulationType the modulation type | 387 * \param modulationType the modulation type |
349 * \returns the transmission time | 388 * \returns the transmission time |
350 */ | 389 */ |
351 virtual Time DoGetTransmissionTime (uint32_t size, ModulationType modulationTy
pe) const = 0; | 390 virtual Time DoGetTransmissionTime (uint32_t size, ModulationType modulationTy
pe) const = 0; |
352 /** | 391 /** |
353 * Attach function | 392 * Attach channel |
354 * \param channel the wimax channel | 393 * \param channel the wimax channel |
355 */ | 394 */ |
356 virtual void DoAttach (Ptr<WimaxChannel> channel) = 0; | 395 virtual void DoAttach (Ptr<WimaxChannel> channel) = 0; |
357 /// Set data rates function | 396 /// Set data rates |
358 virtual void DoSetDataRates (void) = 0; | 397 virtual void DoSetDataRates (void) = 0; |
359 /** | 398 /** |
360 * Get data rate function | 399 * Get data rate |
361 * \param modulationType the modulation type | 400 * \param modulationType the modulation type |
362 * \returns the data rate | 401 * \returns the data rate |
363 */ | 402 */ |
364 virtual uint32_t DoGetDataRate (ModulationType modulationType) const = 0; | 403 virtual uint32_t DoGetDataRate (ModulationType modulationType) const = 0; |
365 /** | 404 /** |
366 * Get number of symbols function | 405 * Get number of symbols |
367 * \param size the transmission size | 406 * \param size the transmission size |
368 * \param modulationType the modulation type | 407 * \param modulationType the modulation type |
369 * \returns the number of symbols | 408 * \returns the number of symbols |
370 */ | 409 */ |
371 virtual uint64_t DoGetNrSymbols (uint32_t size, ModulationType modulationType)
const = 0; | 410 virtual uint64_t DoGetNrSymbols (uint32_t size, ModulationType modulationType)
const = 0; |
372 /** | 411 /** |
373 * Get number of bytes function | 412 * Get number of bytes |
374 * \param symbols the number of symbols | 413 * \param symbols the number of symbols |
375 * \param modulationType the modulation type | 414 * \param modulationType the modulation type |
376 * \returns the number of bytes | 415 * \returns the number of bytes |
377 */ | 416 */ |
378 virtual uint64_t DoGetNrBytes (uint32_t symbols, ModulationType modulationType
) const = 0; | 417 virtual uint64_t DoGetNrBytes (uint32_t symbols, ModulationType modulationType
) const = 0; |
379 /** | 418 /** |
380 * Get TTG function | 419 * Get TTG |
381 * \returns the TTG function | 420 * \returns the TTG |
382 */ | 421 */ |
383 virtual uint16_t DoGetTtg (void) const = 0; | 422 virtual uint16_t DoGetTtg (void) const = 0; |
384 /** | 423 /** |
385 * Get RTG function | 424 * Get RTG |
386 * \returns the RTG | 425 * \returns the RTG |
387 */ | 426 */ |
388 virtual uint16_t DoGetRtg (void) const = 0; | 427 virtual uint16_t DoGetRtg (void) const = 0; |
389 | 428 |
390 /** | 429 /** |
391 * Get frame duration code function | 430 * Get frame duration code |
392 * \returns the frame duration code | 431 * \returns the frame duration code |
393 */ | 432 */ |
394 virtual uint8_t DoGetFrameDurationCode (void) const = 0; | 433 virtual uint8_t DoGetFrameDurationCode (void) const = 0; |
395 /** | 434 /** |
396 * Get frame duration function | 435 * Get frame duration |
397 * \param frameDurationCode the frame duration code | 436 * \param frameDurationCode the frame duration code |
398 * \returns the frame duration time | 437 * \returns the frame duration time |
399 */ | 438 */ |
400 virtual Time DoGetFrameDuration (uint8_t frameDurationCode) const = 0; | 439 virtual Time DoGetFrameDuration (uint8_t frameDurationCode) const = 0; |
401 /** | 440 /** |
402 * Set phy parameters function | 441 * Set phy parameters |
403 */ | 442 */ |
404 virtual void DoSetPhyParameters (void) = 0; | 443 virtual void DoSetPhyParameters (void) = 0; |
405 /** | 444 /** |
406 * Get sampling factor function | 445 * Get sampling factor |
407 * \return the sampling factor | 446 * \return the sampling factor |
408 */ | 447 */ |
409 virtual double DoGetSamplingFactor (void) const = 0; | 448 virtual double DoGetSamplingFactor (void) const = 0; |
410 /** | 449 /** |
411 * Get NFFT function | 450 * Get NFFT |
412 * \returns the NFFT function | 451 * \returns the NFFT |
413 */ | 452 */ |
414 virtual uint16_t DoGetNfft (void) const = 0; | 453 virtual uint16_t DoGetNfft (void) const = 0; |
415 /** | 454 /** |
416 * Get sampling frequency function | 455 * Get sampling frequency |
417 * \returns the sampling frequency | 456 * \returns the sampling frequency |
418 */ | 457 */ |
419 virtual double DoGetSamplingFrequency (void) const = 0; | 458 virtual double DoGetSamplingFrequency (void) const = 0; |
420 /** | 459 /** |
421 * Get G value function | 460 * Get G value |
422 * \returns he G value | 461 * \returns he G value |
423 */ | 462 */ |
424 virtual double DoGetGValue (void) const = 0; | 463 virtual double DoGetGValue (void) const = 0; |
425 | 464 |
426 Ptr<WimaxNetDevice> m_device; ///< the device | 465 Ptr<WimaxNetDevice> m_device; ///< the device |
427 Ptr<WimaxChannel> m_channel; ///< channel | 466 Ptr<WimaxChannel> m_channel; ///< channel |
428 | 467 |
429 uint64_t m_txFrequency; ///< transmit frequency | 468 uint64_t m_txFrequency; ///< transmit frequency |
430 uint64_t m_rxFrequency; ///< receive frequency | 469 uint64_t m_rxFrequency; ///< receive frequency |
431 uint64_t m_scanningFrequency; ///< scanning frequency | 470 uint64_t m_scanningFrequency; ///< scanning frequency |
(...skipping 12 matching lines...) Expand all Loading... |
444 Time m_symbolDuration; ///< in seconds | 483 Time m_symbolDuration; ///< in seconds |
445 uint16_t m_psPerSymbol; ///< ps per sumbol | 484 uint16_t m_psPerSymbol; ///< ps per sumbol |
446 uint16_t m_psPerFrame; ///< ps per framce | 485 uint16_t m_psPerFrame; ///< ps per framce |
447 uint32_t m_symbolsPerFrame; ///< symbols per frame | 486 uint32_t m_symbolsPerFrame; ///< symbols per frame |
448 Ptr<Object> m_mobility; ///< modility model | 487 Ptr<Object> m_mobility; ///< modility model |
449 }; | 488 }; |
450 | 489 |
451 } // namespace ns3 | 490 } // namespace ns3 |
452 | 491 |
453 #endif /* WIMAX_PHY_H */ | 492 #endif /* WIMAX_PHY_H */ |
LEFT | RIGHT |