├── .gitignore ├── bindings ├── modulegen__gcc_ILP32.py └── callbacks_list.py ├── doc ├── html │ ├── bc_s.png │ ├── open.png │ ├── closed.png │ ├── nav_f.png │ ├── nav_h.png │ ├── tab_a.png │ ├── tab_b.png │ ├── tab_h.png │ ├── tab_s.png │ ├── doxygen.png │ ├── search │ │ ├── close.png │ │ ├── mag_sel.png │ │ ├── search_l.png │ │ ├── search_m.png │ │ ├── search_r.png │ │ ├── classes_74.js │ │ ├── all_76.js │ │ ├── all_7a.js │ │ ├── classes_73.js │ │ ├── variables_63.js │ │ ├── variables_6c.js │ │ ├── variables_72.js │ │ ├── variables_76.js │ │ ├── all_68.js │ │ ├── variables_7a.js │ │ ├── all_6d.js │ │ ├── classes_6d.js │ │ ├── functions_68.js │ │ ├── enums_73.js │ │ ├── enums_6e.js │ │ ├── variables_67.js │ │ ├── classes_62.js │ │ ├── functions_74.js │ │ ├── all_7e.js │ │ ├── functions_7e.js │ │ ├── all_6f.js │ │ ├── all_74.js │ │ ├── functions_6f.js │ │ ├── all_65.js │ │ ├── functions_65.js │ │ ├── nomatches.html │ │ ├── functions_72.js │ │ ├── functions_6e.js │ │ ├── all_64.js │ │ ├── functions_64.js │ │ ├── all_75.js │ │ ├── functions_75.js │ │ ├── all_72.js │ │ ├── all_6e.js │ │ ├── functions_62.js │ │ ├── all_61.js │ │ ├── functions_61.js │ │ ├── all_62.js │ │ ├── all_61.html │ │ ├── all_62.html │ │ ├── all_63.html │ │ ├── all_64.html │ │ ├── all_65.html │ │ ├── all_67.html │ │ ├── all_68.html │ │ ├── all_69.html │ │ ├── all_6c.html │ │ ├── all_6d.html │ │ ├── all_6e.html │ │ ├── all_6f.html │ │ ├── all_70.html │ │ ├── all_72.html │ │ ├── all_73.html │ │ ├── all_74.html │ │ ├── all_75.html │ │ ├── all_76.html │ │ ├── all_7a.html │ │ ├── all_7e.html │ │ ├── enums_6e.html │ │ ├── enums_73.html │ │ ├── classes_62.html │ │ ├── classes_6d.html │ │ ├── classes_70.html │ │ ├── classes_73.html │ │ ├── classes_74.html │ │ ├── functions_6c.js │ │ ├── functions_61.html │ │ ├── functions_62.html │ │ ├── functions_63.html │ │ ├── functions_64.html │ │ ├── functions_65.html │ │ ├── functions_67.html │ │ ├── functions_68.html │ │ ├── functions_69.html │ │ ├── functions_6c.html │ │ ├── functions_6e.html │ │ ├── functions_6f.html │ │ ├── functions_70.html │ │ ├── functions_72.html │ │ ├── functions_73.html │ │ ├── functions_74.html │ │ ├── functions_75.html │ │ ├── functions_7e.html │ │ ├── variables_63.html │ │ ├── variables_67.html │ │ ├── variables_6c.html │ │ ├── variables_72.html │ │ ├── variables_76.html │ │ ├── variables_7a.html │ │ ├── all_6c.js │ │ ├── all_69.js │ │ ├── functions_69.js │ │ ├── functions_63.js │ │ └── all_63.js │ ├── classns3_1_1PLC__Edge.png │ ├── classns3_1_1PLC__Line.png │ ├── classns3_1_1PLC__Mac.png │ ├── classns3_1_1PLC__Phy.png │ ├── classns3_1_1PLC__ArqMac.png │ ├── classns3_1_1PLC__Cable.png │ ├── classns3_1_1PLC__TwoPort.png │ ├── classns3_1_1PLC__Interface.png │ ├── classns3_1_1PLC__ValueBase.png │ ├── classns3_1_1PLC__ConstValue.png │ ├── classns3_1_1PLC__ErrorRatePhy.png │ ├── classns3_1_1PLC__NoiseFloor.png │ ├── classns3_1_1PLC__NoiseSource.png │ ├── classns3_1_1PLC__RxInterface.png │ ├── classns3_1_1PLC__TxInterface.png │ ├── classns3_1_1PLC__ErrorRateModel.png │ ├── classns3_1_1PLC__AL3x95XLPE__Cable.png │ ├── classns3_1_1PLC__ChaseCombiningPhy.png │ ├── classns3_1_1PLC__ColoredNoiseFloor.png │ ├── classns3_1_1PLC__HalfDuplexOfdmPhy.png │ ├── classns3_1_1PLC__NAYY150SE__Cable.png │ ├── classns3_1_1PLC__NAYY50SE__Cable.png │ ├── classns3_1_1PLC__NYCY70SM35__Cable.png │ ├── classns3_1_1PLC__StaticNoiseSource.png │ ├── classns3_1_1PLC__FreqSelectiveValue.png │ ├── classns3_1_1PLC__ImpulseNoiseSource.png │ ├── classns3_1_1PLC__InformationRatePhy.png │ ├── classns3_1_1PLC__ImpulsiveNoiseSource.png │ ├── classns3_1_1PLC__InformationRateModel.png │ ├── classns3_1_1PLC__LinkPerformanceModel.png │ ├── classns3_1_1PLC__TimeVariantConstValue.png │ ├── classns3_1_1PLC__IncrementalRedundancyPhy.png │ ├── classns3_1_1PLC__ThreeCoreConcentricCable.png │ ├── classns3_1_1PLC__FourSectorPowerSupplyCable.png │ ├── classns3_1_1PLC__TimeVariantFreqSelectiveValue.png │ ├── tabs.css │ └── installdox ├── latex │ ├── classns3_1_1PLC__Mac.pdf │ ├── classns3_1_1PLC__Phy.pdf │ ├── classns3_1_1PLC__ArqMac.pdf │ ├── classns3_1_1PLC__Cable.pdf │ ├── classns3_1_1PLC__Edge.pdf │ ├── classns3_1_1PLC__Line.pdf │ ├── classns3_1_1PLC__TwoPort.pdf │ ├── classns3_1_1PLC__ConstValue.pdf │ ├── classns3_1_1PLC__Interface.pdf │ ├── classns3_1_1PLC__NoiseFloor.pdf │ ├── classns3_1_1PLC__NoiseSource.pdf │ ├── classns3_1_1PLC__RxInterface.pdf │ ├── classns3_1_1PLC__TxInterface.pdf │ ├── classns3_1_1PLC__ValueBase.pdf │ ├── classns3_1_1PLC__ErrorRatePhy.pdf │ ├── classns3_1_1PLC__ErrorRateModel.pdf │ ├── classns3_1_1PLC__NAYY150SE__Cable.pdf │ ├── classns3_1_1PLC__NAYY50SE__Cable.pdf │ ├── classns3_1_1PLC__AL3x95XLPE__Cable.pdf │ ├── classns3_1_1PLC__ChaseCombiningPhy.pdf │ ├── classns3_1_1PLC__ColoredNoiseFloor.pdf │ ├── classns3_1_1PLC__FreqSelectiveValue.pdf │ ├── classns3_1_1PLC__HalfDuplexOfdmPhy.pdf │ ├── classns3_1_1PLC__ImpulseNoiseSource.pdf │ ├── classns3_1_1PLC__InformationRatePhy.pdf │ ├── classns3_1_1PLC__NYCY70SM35__Cable.pdf │ ├── classns3_1_1PLC__StaticNoiseSource.pdf │ ├── classns3_1_1PLC__ImpulsiveNoiseSource.pdf │ ├── classns3_1_1PLC__InformationRateModel.pdf │ ├── classns3_1_1PLC__LinkPerformanceModel.pdf │ ├── classns3_1_1PLC__TimeVariantConstValue.pdf │ ├── classns3_1_1PLC__FourSectorPowerSupplyCable.pdf │ ├── classns3_1_1PLC__IncrementalRedundancyPhy.pdf │ ├── classns3_1_1PLC__ThreeCoreConcentricCable.pdf │ ├── classns3_1_1PLC__TimeVariantFreqSelectiveValue.pdf │ ├── Makefile │ ├── classns3_1_1PLC__IncrementalRedundancyPhy.tex │ ├── structns3_1_1PLC__Mutex.tex │ ├── structns3_1_1boostgraph__copy__t.tex │ ├── structns3_1_1PLC__ImpedanceIndicator__t.tex │ ├── structns3_1_1sub__thread__arg__t.tex │ ├── structns3_1_1thread__arg__t.tex │ ├── structns3_1_1PLC__InformationRateModel_1_1McsInfo.tex │ ├── classns3_1_1PLC__OutletDiscoverVisitor.tex │ ├── structns3_1_1backbone__branch__discover__thread__arg__t.tex │ ├── structns3_1_1PLC__EdgeTransferData__t.tex │ ├── classns3_1_1PLC__NAYY50SE__Cable.tex │ ├── classns3_1_1PLC__NAYY150SE__Cable.tex │ ├── classns3_1_1PLC__AL3x95XLPE__Cable.tex │ ├── classns3_1_1PLC__NYCY70SM35__Cable.tex │ ├── classns3_1_1PLC__InformationRateModel.tex │ ├── classns3_1_1PLC__ColoredNoiseFloor.tex │ ├── classns3_1_1PLC__Time.tex │ ├── classns3_1_1PLC__PhyHeader.tex │ ├── classns3_1_1PLC__StaticNoiseSource.tex │ ├── classns3_1_1PLC__ImpulseNoiseSource.tex │ ├── classns3_1_1PLC__Preamble.tex │ ├── classns3_1_1PLC__NoiseFloor.tex │ ├── structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet.tex │ ├── classns3_1_1PLC__ChaseCombiningPhy.tex │ ├── classns3_1_1PLC__ErrorRateModel.tex │ ├── classns3_1_1PLC__TrxMetaInfo.tex │ ├── classns3_1_1PLC__ErrorRatePhy.tex │ ├── classns3_1_1PLC__PhyPacketTag.tex │ └── classns3_1_1PLC__TwoPort.tex └── plc.rst ├── model ├── plc.cc ├── plc-thread-dispatcher.cc ├── plc-visitor.h ├── plc-thread-dispatcher.h ├── plc-time.h ├── plc.h ├── plc-interference.h ├── plc-time.cc ├── plc-simulator-impl.h └── plc-dcmc-capacity.cc ├── examples └── wscript ├── helper ├── plc-output-helper.h ├── plc-device-helper.h └── plc-spectrum-helper.h ├── test └── plc-test-suite.cc └── wscript /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *~ 3 | 4 | -------------------------------------------------------------------------------- /bindings/modulegen__gcc_ILP32.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /doc/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/bc_s.png -------------------------------------------------------------------------------- /doc/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/open.png -------------------------------------------------------------------------------- /doc/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/closed.png -------------------------------------------------------------------------------- /doc/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/nav_f.png -------------------------------------------------------------------------------- /doc/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/nav_h.png -------------------------------------------------------------------------------- /doc/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/tab_a.png -------------------------------------------------------------------------------- /doc/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/tab_b.png -------------------------------------------------------------------------------- /doc/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/tab_h.png -------------------------------------------------------------------------------- /doc/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/tab_s.png -------------------------------------------------------------------------------- /doc/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/doxygen.png -------------------------------------------------------------------------------- /doc/html/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/search/close.png -------------------------------------------------------------------------------- /doc/html/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/search/mag_sel.png -------------------------------------------------------------------------------- /doc/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/search/search_l.png -------------------------------------------------------------------------------- /doc/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/search/search_m.png -------------------------------------------------------------------------------- /doc/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/search/search_r.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__Edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__Edge.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__Line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__Line.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__Mac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__Mac.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__Phy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__Phy.png -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__Mac.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__Mac.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__Phy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__Phy.pdf -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__ArqMac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__ArqMac.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__Cable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__Cable.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__TwoPort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__TwoPort.png -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ArqMac.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__ArqMac.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__Cable.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__Cable.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__Edge.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__Edge.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__Line.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__Line.pdf -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__Interface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__Interface.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__ValueBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__ValueBase.png -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__TwoPort.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__TwoPort.pdf -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__ConstValue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__ConstValue.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__ErrorRatePhy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__ErrorRatePhy.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__NoiseFloor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__NoiseFloor.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__NoiseSource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__NoiseSource.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__RxInterface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__RxInterface.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__TxInterface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__TxInterface.png -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ConstValue.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__ConstValue.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__Interface.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__Interface.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__NoiseFloor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__NoiseFloor.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__NoiseSource.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__NoiseSource.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__RxInterface.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__RxInterface.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__TxInterface.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__TxInterface.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ValueBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__ValueBase.pdf -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__ErrorRateModel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__ErrorRateModel.png -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ErrorRatePhy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__ErrorRatePhy.pdf -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__AL3x95XLPE__Cable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__AL3x95XLPE__Cable.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__ChaseCombiningPhy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__ChaseCombiningPhy.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__ColoredNoiseFloor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__ColoredNoiseFloor.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__HalfDuplexOfdmPhy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__HalfDuplexOfdmPhy.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__NAYY150SE__Cable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__NAYY150SE__Cable.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__NAYY50SE__Cable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__NAYY50SE__Cable.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__NYCY70SM35__Cable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__NYCY70SM35__Cable.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__StaticNoiseSource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__StaticNoiseSource.png -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ErrorRateModel.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__ErrorRateModel.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__NAYY150SE__Cable.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__NAYY150SE__Cable.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__NAYY50SE__Cable.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__NAYY50SE__Cable.pdf -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__FreqSelectiveValue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__FreqSelectiveValue.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__ImpulseNoiseSource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__ImpulseNoiseSource.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__InformationRatePhy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__InformationRatePhy.png -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__AL3x95XLPE__Cable.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__AL3x95XLPE__Cable.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ChaseCombiningPhy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__ChaseCombiningPhy.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ColoredNoiseFloor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__ColoredNoiseFloor.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__FreqSelectiveValue.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__FreqSelectiveValue.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__HalfDuplexOfdmPhy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__HalfDuplexOfdmPhy.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ImpulseNoiseSource.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__ImpulseNoiseSource.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__InformationRatePhy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__InformationRatePhy.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__NYCY70SM35__Cable.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__NYCY70SM35__Cable.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__StaticNoiseSource.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__StaticNoiseSource.pdf -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__ImpulsiveNoiseSource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__ImpulsiveNoiseSource.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__InformationRateModel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__InformationRateModel.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__LinkPerformanceModel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__LinkPerformanceModel.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__TimeVariantConstValue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__TimeVariantConstValue.png -------------------------------------------------------------------------------- /doc/html/search/classes_74.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['thread_5farg_5ft',['thread_arg_t',['../structns3_1_1thread__arg__t.html',1,'ns3']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ImpulsiveNoiseSource.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__ImpulsiveNoiseSource.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__InformationRateModel.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__InformationRateModel.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__LinkPerformanceModel.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__LinkPerformanceModel.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__TimeVariantConstValue.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__TimeVariantConstValue.pdf -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__IncrementalRedundancyPhy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__IncrementalRedundancyPhy.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__ThreeCoreConcentricCable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__ThreeCoreConcentricCable.png -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__FourSectorPowerSupplyCable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__FourSectorPowerSupplyCable.png -------------------------------------------------------------------------------- /doc/html/search/all_76.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['v',['v',['../classns3_1_1PLC__Cable.html#abbc2c9cb7b669f4c30c5a15669b9d3ea',1,'ns3::PLC_Cable']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__FourSectorPowerSupplyCable.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__FourSectorPowerSupplyCable.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__IncrementalRedundancyPhy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__IncrementalRedundancyPhy.pdf -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ThreeCoreConcentricCable.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__ThreeCoreConcentricCable.pdf -------------------------------------------------------------------------------- /doc/html/classns3_1_1PLC__TimeVariantFreqSelectiveValue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/html/classns3_1_1PLC__TimeVariantFreqSelectiveValue.png -------------------------------------------------------------------------------- /doc/html/search/all_7a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['z_5fc',['z_c',['../classns3_1_1PLC__Cable.html#a510fc016469182d4a8d0864f291f5968',1,'ns3::PLC_Cable']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/classes_73.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['sub_5fthread_5farg_5ft',['sub_thread_arg_t',['../structns3_1_1sub__thread__arg__t.html',1,'ns3']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_63.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['c',['C',['../classns3_1_1PLC__Cable.html#a2443b8723d75123547011498d535fe48',1,'ns3::PLC_Cable']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_6c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['l',['L',['../classns3_1_1PLC__Cable.html#a721d49ba4225f914d773d085c2d1f911',1,'ns3::PLC_Cable']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_72.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['r',['R',['../classns3_1_1PLC__Cable.html#a1770f66065636bde27fa4d8e35c8a534',1,'ns3::PLC_Cable']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_76.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['v',['v',['../classns3_1_1PLC__Cable.html#abbc2c9cb7b669f4c30c5a15669b9d3ea',1,'ns3::PLC_Cable']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_68.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hasoutlet',['HasOutlet',['../classns3_1_1PLC__Node.html#a8fc4a4502b1ba5df3462186a2b4fa940',1,'ns3::PLC_Node']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_7a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['z_5fc',['z_c',['../classns3_1_1PLC__Cable.html#a510fc016469182d4a8d0864f291f5968',1,'ns3::PLC_Cable']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__TimeVariantFreqSelectiveValue.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ns3-plc-module/plc/HEAD/doc/latex/classns3_1_1PLC__TimeVariantFreqSelectiveValue.pdf -------------------------------------------------------------------------------- /doc/html/search/all_6d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['mcsinfo',['McsInfo',['../structns3_1_1PLC__InformationRateModel_1_1McsInfo.html',1,'ns3::PLC_InformationRateModel']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/classes_6d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['mcsinfo',['McsInfo',['../structns3_1_1PLC__InformationRateModel_1_1McsInfo.html',1,'ns3::PLC_InformationRateModel']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_68.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hasoutlet',['HasOutlet',['../classns3_1_1PLC__Node.html#a8fc4a4502b1ba5df3462186a2b4fa940',1,'ns3::PLC_Node']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /model/plc.cc: -------------------------------------------------------------------------------- 1 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 | 3 | #include "plc.h" 4 | 5 | namespace ns3 { 6 | 7 | /* ... */ 8 | 9 | 10 | } 11 | 12 | -------------------------------------------------------------------------------- /doc/html/search/enums_73.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['state',['State',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#ae91e168f9a51bf5344e7e03d9ae13b60',1,'ns3::PLC_HalfDuplexOfdmPhy']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/enums_6e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['noisesourcetype',['NoiseSourceType',['../classns3_1_1PLC__NoiseSource.html#a3f5751ed7e0ffe2f0c9ad37d2c75ff2b',1,'ns3::PLC_NoiseSource']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_67.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['g',['G',['../classns3_1_1PLC__Cable.html#af2c7882c896e9bc7f98121f7a3f25b53',1,'ns3::PLC_Cable']]], 4 | ['gamma',['gamma',['../classns3_1_1PLC__Cable.html#aef9b830c80f3a26988eebe1970e942d8',1,'ns3::PLC_Cable']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/classes_62.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['backbone_5fbranch_5fdiscover_5fthread_5farg_5ft',['backbone_branch_discover_thread_arg_t',['../structns3_1_1backbone__branch__discover__thread__arg__t.html',1,'ns3']]], 4 | ['boostgraph_5fcopy_5ft',['boostgraph_copy_t',['../structns3_1_1boostgraph__copy__t.html',1,'ns3']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/functions_74.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['transmissionend',['TransmissionEnd',['../classns3_1_1PLC__Channel.html#ab856d23667e7f0ac87a2c95a482a695c',1,'ns3::PLC_Channel']]], 4 | ['transmissionstart',['TransmissionInitialize',['../classns3_1_1PLC__Channel.html#adeb6bba5a291bd4508c20dae60d46ce6',1,'ns3::PLC_Channel']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/all_7e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eplc_5fedge',['~PLC_Edge',['../classns3_1_1PLC__Edge.html#a77e3e30630a1c0ad98e8c3592842606b',1,'ns3::PLC_Edge']]], 4 | ['_7eplc_5fedgetransferunit',['~PLC_EdgeTransferUnit',['../classns3_1_1PLC__EdgeTransferUnit.html#aa0a67c9ed8d62feb12b3d5ae9596238a',1,'ns3::PLC_EdgeTransferUnit']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/functions_7e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eplc_5fedge',['~PLC_Edge',['../classns3_1_1PLC__Edge.html#a77e3e30630a1c0ad98e8c3592842606b',1,'ns3::PLC_Edge']]], 4 | ['_7eplc_5fedgetransferunit',['~PLC_EdgeTransferUnit',['../classns3_1_1PLC__EdgeTransferUnit.html#aa0a67c9ed8d62feb12b3d5ae9596238a',1,'ns3::PLC_EdgeTransferUnit']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/all_6f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['opencircuit',['OpenCircuit',['../classns3_1_1PLC__Node.html#a6cc2d90cc40afb47a31e8c684c373a15',1,'ns3::PLC_Node']]], 4 | ['outedgesbegin',['OutEdgesBegin',['../classns3_1_1PLC__Node.html#a6dfb62dfcf6272953b1627cea050b2fa',1,'ns3::PLC_Node']]], 5 | ['outedgesend',['OutEdgesEnd',['../classns3_1_1PLC__Node.html#a375b66ef51bfc6c0dae7a82022340210',1,'ns3::PLC_Node']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/all_74.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['thread_5farg_5ft',['thread_arg_t',['../structns3_1_1thread__arg__t.html',1,'ns3']]], 4 | ['transmissionend',['TransmissionEnd',['../classns3_1_1PLC__Channel.html#ab856d23667e7f0ac87a2c95a482a695c',1,'ns3::PLC_Channel']]], 5 | ['transmissionstart',['TransmissionInitialize',['../classns3_1_1PLC__Channel.html#adeb6bba5a291bd4508c20dae60d46ce6',1,'ns3::PLC_Channel']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/functions_6f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['opencircuit',['OpenCircuit',['../classns3_1_1PLC__Node.html#a6cc2d90cc40afb47a31e8c684c373a15',1,'ns3::PLC_Node']]], 4 | ['outedgesbegin',['OutEdgesBegin',['../classns3_1_1PLC__Node.html#a6dfb62dfcf6272953b1627cea050b2fa',1,'ns3::PLC_Node']]], 5 | ['outedgesend',['OutEdgesEnd',['../classns3_1_1PLC__Node.html#a375b66ef51bfc6c0dae7a82022340210',1,'ns3::PLC_Node']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/all_65.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['enable',['Enable',['../classns3_1_1PLC__NoiseSource.html#a1753484062d53fe249c9a28f9db1ae1d',1,'ns3::PLC_NoiseSource::Enable()'],['../classns3_1_1PLC__ImpulsiveNoiseSource.html#ab0f6587b0abb04afcebf6d9a1407a833',1,'ns3::PLC_ImpulsiveNoiseSource::Enable()']]], 4 | ['endcca',['EndCca',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#af33d069bbe8515210d3d4417dd5bccbd',1,'ns3::PLC_HalfDuplexOfdmPhy']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/functions_65.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['enable',['Enable',['../classns3_1_1PLC__NoiseSource.html#a1753484062d53fe249c9a28f9db1ae1d',1,'ns3::PLC_NoiseSource::Enable()'],['../classns3_1_1PLC__ImpulsiveNoiseSource.html#ab0f6587b0abb04afcebf6d9a1407a833',1,'ns3::PLC_ImpulsiveNoiseSource::Enable()']]], 4 | ['endcca',['EndCca',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#af33d069bbe8515210d3d4417dd5bccbd',1,'ns3::PLC_HalfDuplexOfdmPhy']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /doc/latex/Makefile: -------------------------------------------------------------------------------- 1 | all: refman.pdf 2 | 3 | pdf: refman.pdf 4 | 5 | refman.pdf: clean refman.tex 6 | pdflatex refman 7 | makeindex refman.tex 8 | pdflatex refman 9 | latex_count=5 ; \ 10 | while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ 11 | do \ 12 | echo "Rerunning latex...." ;\ 13 | pdflatex refman ;\ 14 | latex_count=`expr $$latex_count - 1` ;\ 15 | done 16 | 17 | 18 | clean: 19 | rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf 20 | -------------------------------------------------------------------------------- /doc/html/search/functions_72.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['registerbackbonebranch',['RegisterBackboneBranch',['../classns3_1_1PLC__Graph.html#a0715ae252ce170c59ffe5325ef8bcd56',1,'ns3::PLC_Graph::RegisterBackboneBranch()'],['../classns3_1_1PLC__Outlet.html#a0c15b46c212ab77c95a9d18c1ce47726',1,'ns3::PLC_Outlet::RegisterBackboneBranch()']]], 4 | ['rxpsdchanged',['RxPsdChanged',['../classns3_1_1PLC__RxInterface.html#a5ed074ad9563a148975b3b5b3e15eb40',1,'ns3::PLC_RxInterface::RxPsdChanged()'],['../classns3_1_1PLC__Phy.html#a37c13147b5d5cb71843be91c1654fc18',1,'ns3::PLC_Phy::RxPsdChanged()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/functions_6e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['notifydataframesent',['NotifyDataFrameSent',['../classns3_1_1PLC__Phy.html#a51e432fe0945a6b810e0f5d240b2ff55',1,'ns3::PLC_Phy']]], 4 | ['notifyreceptionendok',['NotifyReceptionEndOk',['../classns3_1_1PLC__Mac.html#ab32011008a9fa556f61b7a0b31f5c082',1,'ns3::PLC_Mac']]], 5 | ['notifytransmissionend',['NotifyTransmissionEnd',['../classns3_1_1PLC__Mac.html#ab082c6f7b324f3262c8e2da835deac00',1,'ns3::PLC_Mac::NotifyTransmissionEnd()'],['../classns3_1_1PLC__ArqMac.html#ac77a56684c784493baa9bb2fec7c5fb6',1,'ns3::PLC_ArqMac::NotifyTransmissionEnd()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/all_64.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['deleteoutofdatepsds',['DeleteOutOfDatePSDs',['../classns3_1_1PLC__Channel.html#adcb2c90b76ee9555e22ac717df870a61',1,'ns3::PLC_Channel']]], 4 | ['disable',['Disable',['../classns3_1_1PLC__NoiseSource.html#a73fae674a603ed0da7845cbdba4845f1',1,'ns3::PLC_NoiseSource']]], 5 | ['discoverbackbonebranches',['DiscoverBackboneBranches',['../classns3_1_1PLC__ChannelTransferImpl.html#a7b46950025353634deb5cd0e239b1da4',1,'ns3::PLC_ChannelTransferImpl']]], 6 | ['discoveroutlets',['DiscoverOutlets',['../classns3_1_1PLC__BackboneBranch.html#af026ecb7063aa1214155fab86c909710',1,'ns3::PLC_BackboneBranch']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /doc/html/search/functions_64.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['deleteoutofdatepsds',['DeleteOutOfDatePSDs',['../classns3_1_1PLC__Channel.html#adcb2c90b76ee9555e22ac717df870a61',1,'ns3::PLC_Channel']]], 4 | ['disable',['Disable',['../classns3_1_1PLC__NoiseSource.html#a73fae674a603ed0da7845cbdba4845f1',1,'ns3::PLC_NoiseSource']]], 5 | ['discoverbackbonebranches',['DiscoverBackboneBranches',['../classns3_1_1PLC__ChannelTransferImpl.html#a7b46950025353634deb5cd0e239b1da4',1,'ns3::PLC_ChannelTransferImpl']]], 6 | ['discoveroutlets',['DiscoverOutlets',['../classns3_1_1PLC__BackboneBranch.html#af026ecb7063aa1214155fab86c909710',1,'ns3::PLC_BackboneBranch']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /doc/html/search/all_75.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['unlock',['Unlock',['../classns3_1_1PLC__Edge.html#a43e39fe1abb80ca4af68218cf5de99f7',1,'ns3::PLC_Edge::Unlock()'],['../classns3_1_1PLC__Graph.html#a42e820f44e236404054f5c9245d404a5',1,'ns3::PLC_Graph::Unlock()'],['../classns3_1_1PLC__Node.html#ab1c0af5debda14870430089e4522dca4',1,'ns3::PLC_Node::Unlock()']]], 4 | ['updateimmediately',['UpdateImmediately',['../classns3_1_1PLC__ChannelTransferImpl.html#af5fa36c7ec01d2bfc16f8f83da0657ed',1,'ns3::PLC_ChannelTransferImpl']]], 5 | ['updatereceivepsds',['UpdateReceivePSDs',['../classns3_1_1PLC__Channel.html#abd286d90c5e534bd30284dec68d9a5b0',1,'ns3::PLC_Channel']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/functions_75.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['unlock',['Unlock',['../classns3_1_1PLC__Edge.html#a43e39fe1abb80ca4af68218cf5de99f7',1,'ns3::PLC_Edge::Unlock()'],['../classns3_1_1PLC__Graph.html#a42e820f44e236404054f5c9245d404a5',1,'ns3::PLC_Graph::Unlock()'],['../classns3_1_1PLC__Node.html#ab1c0af5debda14870430089e4522dca4',1,'ns3::PLC_Node::Unlock()']]], 4 | ['updateimmediately',['UpdateImmediately',['../classns3_1_1PLC__ChannelTransferImpl.html#af5fa36c7ec01d2bfc16f8f83da0657ed',1,'ns3::PLC_ChannelTransferImpl']]], 5 | ['updatereceivepsds',['UpdateReceivePSDs',['../classns3_1_1PLC__Channel.html#abd286d90c5e534bd30284dec68d9a5b0',1,'ns3::PLC_Channel']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/all_72.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['r',['R',['../classns3_1_1PLC__Cable.html#a1770f66065636bde27fa4d8e35c8a534',1,'ns3::PLC_Cable']]], 4 | ['registerbackbonebranch',['RegisterBackboneBranch',['../classns3_1_1PLC__Graph.html#a0715ae252ce170c59ffe5325ef8bcd56',1,'ns3::PLC_Graph::RegisterBackboneBranch()'],['../classns3_1_1PLC__Outlet.html#a0c15b46c212ab77c95a9d18c1ce47726',1,'ns3::PLC_Outlet::RegisterBackboneBranch()']]], 5 | ['rxpsdchanged',['RxPsdChanged',['../classns3_1_1PLC__RxInterface.html#a5ed074ad9563a148975b3b5b3e15eb40',1,'ns3::PLC_RxInterface::RxPsdChanged()'],['../classns3_1_1PLC__Phy.html#a37c13147b5d5cb71843be91c1654fc18',1,'ns3::PLC_Phy::RxPsdChanged()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/all_6e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['noisesourcetype',['NoiseSourceType',['../classns3_1_1PLC__NoiseSource.html#a3f5751ed7e0ffe2f0c9ad37d2c75ff2b',1,'ns3::PLC_NoiseSource']]], 4 | ['notifydataframesent',['NotifyDataFrameSent',['../classns3_1_1PLC__Phy.html#a51e432fe0945a6b810e0f5d240b2ff55',1,'ns3::PLC_Phy']]], 5 | ['notifyreceptionendok',['NotifyReceptionEndOk',['../classns3_1_1PLC__Mac.html#ab32011008a9fa556f61b7a0b31f5c082',1,'ns3::PLC_Mac']]], 6 | ['notifytransmissionend',['NotifyTransmissionEnd',['../classns3_1_1PLC__Mac.html#ab082c6f7b324f3262c8e2da835deac00',1,'ns3::PLC_Mac::NotifyTransmissionEnd()'],['../classns3_1_1PLC__ArqMac.html#ac77a56684c784493baa9bb2fec7c5fb6',1,'ns3::PLC_ArqMac::NotifyTransmissionEnd()']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /doc/html/search/functions_62.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['backbonebranchexists',['BackboneBranchExists',['../classns3_1_1PLC__Graph.html#a39b4b9720fc281cd55c1ff29d1f03552',1,'ns3::PLC_Graph']]], 4 | ['backbonepathbegin',['BackbonePathBegin',['../classns3_1_1PLC__ChannelTransferImpl.html#ab3d728667ee846163ba56e925736cca6',1,'ns3::PLC_ChannelTransferImpl::BackbonePathBegin()'],['../classns3_1_1PLC__TxInterface.html#a7a0f421716fa2999885f3dfa9e00649e',1,'ns3::PLC_TxInterface::BackbonePathBegin()']]], 5 | ['backbonepathend',['BackbonePathEnd',['../classns3_1_1PLC__ChannelTransferImpl.html#a950a1d1c561995e923ab9e3f95bb58d8',1,'ns3::PLC_ChannelTransferImpl::BackbonePathEnd()'],['../classns3_1_1PLC__TxInterface.html#abef68692750f3bb5a11bf6c37d1b3af6',1,'ns3::PLC_TxInterface::BackbonePathEnd()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__IncrementalRedundancyPhy.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__IncrementalRedundancyPhy}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Incremental\-Redundancy\-Phy \-Class \-Reference} 2 | \label{classns3_1_1PLC__IncrementalRedundancyPhy}\index{ns3\-::\-P\-L\-C\-\_\-\-Incremental\-Redundancy\-Phy@{ns3\-::\-P\-L\-C\-\_\-\-Incremental\-Redundancy\-Phy}} 3 | } 4 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-Incremental\-Redundancy\-Phy\-:\begin{figure}[H] 5 | \begin{center} 6 | \leavevmode 7 | \includegraphics[height=4.000000cm]{classns3_1_1PLC__IncrementalRedundancyPhy} 8 | \end{center} 9 | \end{figure} 10 | 11 | 12 | \-The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize} 13 | \item 14 | model/plc-\/phy.\-h\end{DoxyCompactItemize} 15 | -------------------------------------------------------------------------------- /examples/wscript: -------------------------------------------------------------------------------- 1 | # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- 2 | 3 | def build(bld): 4 | obj = bld.create_ns3_program('plc-phy-example', ['plc', 'spectrum']) 5 | obj.source = 'plc-phy-example.cc' 6 | 7 | obj = bld.create_ns3_program('plc-mac-example', ['plc', 'spectrum']) 8 | obj.source = 'plc-mac-example.cc' 9 | 10 | obj = bld.create_ns3_program('plc-netdevice-example', ['plc', 'spectrum']) 11 | obj.source = 'plc-netdevice-example.cc' 12 | 13 | obj = bld.create_ns3_program('plc-test', ['plc', 'spectrum']) 14 | obj.source = 'plc-test.cc' 15 | 16 | obj = bld.create_ns3_program('plc-test-ami', ['plc', 'spectrum']) 17 | obj.source = 'plc-test-ami.cc' 18 | 19 | obj = bld.create_ns3_program('plc-psd-example', ['plc', 'spectrum']) 20 | obj.source = 'plc-psd-example.cc' 21 | 22 | -------------------------------------------------------------------------------- /doc/latex/structns3_1_1PLC__Mutex.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structns3_1_1PLC__Mutex}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Mutex \-Struct \-Reference} 2 | \label{structns3_1_1PLC__Mutex}\index{ns3\-::\-P\-L\-C\-\_\-\-Mutex@{ns3\-::\-P\-L\-C\-\_\-\-Mutex}} 3 | } 4 | \subsection*{\-Public \-Member \-Functions} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{structns3_1_1PLC__Mutex_a2eadabbe932b62f2bac324316155f8de}{void {\bfseries \-Lock} ()}\label{structns3_1_1PLC__Mutex_a2eadabbe932b62f2bac324316155f8de} 8 | 9 | \item 10 | \hypertarget{structns3_1_1PLC__Mutex_a363ac7621b809db5e18a8e45adddcf47}{void {\bfseries \-Unlock} ()}\label{structns3_1_1PLC__Mutex_a363ac7621b809db5e18a8e45adddcf47} 11 | 12 | \end{DoxyCompactItemize} 13 | 14 | 15 | \-The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 16 | \item 17 | model/plc-\/defs.\-h\end{DoxyCompactItemize} 18 | -------------------------------------------------------------------------------- /doc/html/search/all_61.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['adddevice',['AddDevice',['../classns3_1_1PLC__Channel.html#ad89f6779ad4976cd5acfbe072996eff6',1,'ns3::PLC_Channel']]], 4 | ['addedge',['AddEdge',['../classns3_1_1PLC__Node.html#aaa44f0ecd5020c1a7017a3481d6f7210',1,'ns3::PLC_Node']]], 5 | ['addinterfacepair',['AddInterfacePair',['../classns3_1_1PLC__BackboneBranch.html#afbf5d1cd2a13916d7a4cf6057b7cd81c',1,'ns3::PLC_BackboneBranch']]], 6 | ['addnode',['AddNode',['../classns3_1_1PLC__Graph.html#a1bdc6900ab0e1744bde930c67f13b561',1,'ns3::PLC_Graph']]], 7 | ['addrxinterface',['AddRxInterface',['../classns3_1_1PLC__Channel.html#ac0726a9b7366e2ab59808ec7f055bc7d',1,'ns3::PLC_Channel']]], 8 | ['addtxinterface',['AddTxInterface',['../classns3_1_1PLC__Channel.html#a73a5536b841a92523150328bd2b85aea',1,'ns3::PLC_Channel']]], 9 | ['associatebackbonebranch',['AssociateBackboneBranch',['../classns3_1_1PLC__Node.html#a46df7d06f7ee78a6c676571b62049f07',1,'ns3::PLC_Node']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /doc/html/search/functions_61.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['adddevice',['AddDevice',['../classns3_1_1PLC__Channel.html#ad89f6779ad4976cd5acfbe072996eff6',1,'ns3::PLC_Channel']]], 4 | ['addedge',['AddEdge',['../classns3_1_1PLC__Node.html#aaa44f0ecd5020c1a7017a3481d6f7210',1,'ns3::PLC_Node']]], 5 | ['addinterfacepair',['AddInterfacePair',['../classns3_1_1PLC__BackboneBranch.html#afbf5d1cd2a13916d7a4cf6057b7cd81c',1,'ns3::PLC_BackboneBranch']]], 6 | ['addnode',['AddNode',['../classns3_1_1PLC__Graph.html#a1bdc6900ab0e1744bde930c67f13b561',1,'ns3::PLC_Graph']]], 7 | ['addrxinterface',['AddRxInterface',['../classns3_1_1PLC__Channel.html#ac0726a9b7366e2ab59808ec7f055bc7d',1,'ns3::PLC_Channel']]], 8 | ['addtxinterface',['AddTxInterface',['../classns3_1_1PLC__Channel.html#a73a5536b841a92523150328bd2b85aea',1,'ns3::PLC_Channel']]], 9 | ['associatebackbonebranch',['AssociateBackboneBranch',['../classns3_1_1PLC__Node.html#a46df7d06f7ee78a6c676571b62049f07',1,'ns3::PLC_Node']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /doc/latex/structns3_1_1boostgraph__copy__t.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structns3_1_1boostgraph__copy__t}{\section{ns3\-:\-:boostgraph\-\_\-copy\-\_\-t \-Struct \-Reference} 2 | \label{structns3_1_1boostgraph__copy__t}\index{ns3\-::boostgraph\-\_\-copy\-\_\-t@{ns3\-::boostgraph\-\_\-copy\-\_\-t}} 3 | } 4 | \subsection*{\-Public \-Attributes} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{structns3_1_1boostgraph__copy__t_a8e64818702f182ab02e666352dd88299}{boost\-::\-U\-Graph {\bfseries graph}}\label{structns3_1_1boostgraph__copy__t_a8e64818702f182ab02e666352dd88299} 8 | 9 | \item 10 | \hypertarget{structns3_1_1boostgraph__copy__t_a12387d3134753137a7e72d7ffb212193}{\hyperlink{structns3_1_1PLC__Mutex}{\-P\-L\-C\-\_\-\-Mutex} {\bfseries graph\-\_\-mutex}}\label{structns3_1_1boostgraph__copy__t_a12387d3134753137a7e72d7ffb212193} 11 | 12 | \end{DoxyCompactItemize} 13 | 14 | 15 | \-The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 16 | \item 17 | model/plc-\/defs.\-h\end{DoxyCompactItemize} 18 | -------------------------------------------------------------------------------- /doc/html/search/all_62.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['backbone_5fbranch_5fdiscover_5fthread_5farg_5ft',['backbone_branch_discover_thread_arg_t',['../structns3_1_1backbone__branch__discover__thread__arg__t.html',1,'ns3']]], 4 | ['backbonebranchexists',['BackboneBranchExists',['../classns3_1_1PLC__Graph.html#a39b4b9720fc281cd55c1ff29d1f03552',1,'ns3::PLC_Graph']]], 5 | ['backbonepathbegin',['BackbonePathBegin',['../classns3_1_1PLC__ChannelTransferImpl.html#ab3d728667ee846163ba56e925736cca6',1,'ns3::PLC_ChannelTransferImpl::BackbonePathBegin()'],['../classns3_1_1PLC__TxInterface.html#a7a0f421716fa2999885f3dfa9e00649e',1,'ns3::PLC_TxInterface::BackbonePathBegin()']]], 6 | ['backbonepathend',['BackbonePathEnd',['../classns3_1_1PLC__ChannelTransferImpl.html#a950a1d1c561995e923ab9e3f95bb58d8',1,'ns3::PLC_ChannelTransferImpl::BackbonePathEnd()'],['../classns3_1_1PLC__TxInterface.html#abef68692750f3bb5a11bf6c37d1b3af6',1,'ns3::PLC_TxInterface::BackbonePathEnd()']]], 7 | ['boostgraph_5fcopy_5ft',['boostgraph_copy_t',['../structns3_1_1boostgraph__copy__t.html',1,'ns3']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /doc/latex/structns3_1_1PLC__ImpedanceIndicator__t.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structns3_1_1PLC__ImpedanceIndicator__t}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Impedance\-Indicator\-\_\-t \-Struct \-Reference} 2 | \label{structns3_1_1PLC__ImpedanceIndicator__t}\index{ns3\-::\-P\-L\-C\-\_\-\-Impedance\-Indicator\-\_\-t@{ns3\-::\-P\-L\-C\-\_\-\-Impedance\-Indicator\-\_\-t}} 3 | } 4 | \subsection*{\-Public \-Attributes} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{structns3_1_1PLC__ImpedanceIndicator__t_a0fff84f807082989bf302f3c444ecc4d}{bool {\bfseries \-Is\-Up2\-Date}}\label{structns3_1_1PLC__ImpedanceIndicator__t_a0fff84f807082989bf302f3c444ecc4d} 8 | 9 | \item 10 | \hypertarget{structns3_1_1PLC__ImpedanceIndicator__t_ae8dfc52f535fefa24f633516db500cda}{bool {\bfseries \-Is\-Time\-Variant}}\label{structns3_1_1PLC__ImpedanceIndicator__t_ae8dfc52f535fefa24f633516db500cda} 11 | 12 | \end{DoxyCompactItemize} 13 | 14 | 15 | \-The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 16 | \item 17 | model/plc-\/defs.\-h\end{DoxyCompactItemize} 18 | -------------------------------------------------------------------------------- /doc/html/search/all_61.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_62.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_64.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_65.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_68.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_6c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_6d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_6f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_72.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_74.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_76.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_7a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_7e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/enums_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/enums_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/classes_62.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/classes_6d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/classes_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/classes_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/classes_74.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_6c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['lock',['Lock',['../classns3_1_1PLC__BackboneBranch.html#aa9081c674aa58e212d27b611ef04b6e7',1,'ns3::PLC_BackboneBranch::Lock()'],['../classns3_1_1PLC__Cable.html#a684124d04e51bb5129a40eb91acd9325',1,'ns3::PLC_Cable::Lock()'],['../classns3_1_1PLC__EdgeTransferUnit.html#a904d5e7b7c64ed14e6c4fff27453f4d9',1,'ns3::PLC_EdgeTransferUnit::Lock()'],['../classns3_1_1PLC__ChannelTransferImpl.html#a259a5f13bdbfed36bc21b47407eec734',1,'ns3::PLC_ChannelTransferImpl::Lock()'],['../classns3_1_1PLC__Channel.html#a61b0040978135b9c6368bf4cd1bb7561',1,'ns3::PLC_Channel::Lock()'],['../classns3_1_1PLC__Edge.html#a01a3d9a0a340ef3c012bc7961fdbb489',1,'ns3::PLC_Edge::Lock()'],['../classns3_1_1PLC__Graph.html#acf2804c3aeefe4d619d337c88676f288',1,'ns3::PLC_Graph::Lock()'],['../classns3_1_1PLC__Interface.html#aaa45cf03953a3989bf3dae3a423b5c99',1,'ns3::PLC_Interface::Lock()'],['../classns3_1_1PLC__Node.html#afd5af9d69a6611cbd9bab8598cce37fb',1,'ns3::PLC_Node::Lock()'],['../classns3_1_1PLC__Outlet.html#a13c9901ccfd9a557ad8bea25451e961b',1,'ns3::PLC_Outlet::Lock()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_61.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_62.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_64.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_65.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_68.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_6c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_6f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_72.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_74.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_7e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/variables_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/variables_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/variables_6c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/variables_72.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/variables_76.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/variables_7a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/latex/structns3_1_1sub__thread__arg__t.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structns3_1_1sub__thread__arg__t}{\section{ns3\-:\-:sub\-\_\-thread\-\_\-arg\-\_\-t \-Struct \-Reference} 2 | \label{structns3_1_1sub__thread__arg__t}\index{ns3\-::sub\-\_\-thread\-\_\-arg\-\_\-t@{ns3\-::sub\-\_\-thread\-\_\-arg\-\_\-t}} 3 | } 4 | \subsection*{\-Public \-Attributes} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{structns3_1_1sub__thread__arg__t_a1767834eae4930097df5a3866f7b75df}{\hyperlink{structns3_1_1boostgraph__copy__t}{boostgraph\-\_\-copy} $\ast$ {\bfseries graph\-\_\-copy}}\label{structns3_1_1sub__thread__arg__t_a1767834eae4930097df5a3866f7b75df} 8 | 9 | \item 10 | \hypertarget{structns3_1_1sub__thread__arg__t_af5c285efd455ae2b145b6e1b2d01ae42}{\hyperlink{classns3_1_1PLC__BackboneBranch}{\-P\-L\-C\-\_\-\-Backbone\-Branch} $\ast$ {\bfseries bb}}\label{structns3_1_1sub__thread__arg__t_af5c285efd455ae2b145b6e1b2d01ae42} 11 | 12 | \end{DoxyCompactItemize} 13 | 14 | 15 | \-The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 16 | \item 17 | model/plc-\/defs.\-h\end{DoxyCompactItemize} 18 | -------------------------------------------------------------------------------- /doc/html/search/all_6c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['l',['L',['../classns3_1_1PLC__Cable.html#a721d49ba4225f914d773d085c2d1f911',1,'ns3::PLC_Cable']]], 4 | ['lock',['Lock',['../classns3_1_1PLC__BackboneBranch.html#aa9081c674aa58e212d27b611ef04b6e7',1,'ns3::PLC_BackboneBranch::Lock()'],['../classns3_1_1PLC__Cable.html#a684124d04e51bb5129a40eb91acd9325',1,'ns3::PLC_Cable::Lock()'],['../classns3_1_1PLC__EdgeTransferUnit.html#a904d5e7b7c64ed14e6c4fff27453f4d9',1,'ns3::PLC_EdgeTransferUnit::Lock()'],['../classns3_1_1PLC__ChannelTransferImpl.html#a259a5f13bdbfed36bc21b47407eec734',1,'ns3::PLC_ChannelTransferImpl::Lock()'],['../classns3_1_1PLC__Channel.html#a61b0040978135b9c6368bf4cd1bb7561',1,'ns3::PLC_Channel::Lock()'],['../classns3_1_1PLC__Edge.html#a01a3d9a0a340ef3c012bc7961fdbb489',1,'ns3::PLC_Edge::Lock()'],['../classns3_1_1PLC__Graph.html#acf2804c3aeefe4d619d337c88676f288',1,'ns3::PLC_Graph::Lock()'],['../classns3_1_1PLC__Interface.html#aaa45cf03953a3989bf3dae3a423b5c99',1,'ns3::PLC_Interface::Lock()'],['../classns3_1_1PLC__Node.html#afd5af9d69a6611cbd9bab8598cce37fb',1,'ns3::PLC_Node::Lock()'],['../classns3_1_1PLC__Outlet.html#a13c9901ccfd9a557ad8bea25451e961b',1,'ns3::PLC_Outlet::Lock()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/latex/structns3_1_1thread__arg__t.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structns3_1_1thread__arg__t}{\section{ns3\-:\-:thread\-\_\-arg\-\_\-t \-Struct \-Reference} 2 | \label{structns3_1_1thread__arg__t}\index{ns3\-::thread\-\_\-arg\-\_\-t@{ns3\-::thread\-\_\-arg\-\_\-t}} 3 | } 4 | \subsection*{\-Public \-Attributes} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{structns3_1_1thread__arg__t_afb1fa8ace0f9b44a18acde5e07618855}{\hyperlink{structns3_1_1boostgraph__copy__t}{boostgraph\-\_\-copy} $\ast$ {\bfseries graph\-\_\-copy}}\label{structns3_1_1thread__arg__t_afb1fa8ace0f9b44a18acde5e07618855} 8 | 9 | \item 10 | \hypertarget{structns3_1_1thread__arg__t_a3786cfc3ef15ebf241a495fc7357d5ff}{\hyperlink{classns3_1_1PLC__TxInterface}{\-P\-L\-C\-\_\-\-Tx\-Interface} $\ast$ {\bfseries tx\-Interface}}\label{structns3_1_1thread__arg__t_a3786cfc3ef15ebf241a495fc7357d5ff} 11 | 12 | \item 13 | \hypertarget{structns3_1_1thread__arg__t_a97a3a9964f435efa8d9be12a5bb99bdc}{\hyperlink{classns3_1_1PLC__RxInterface}{\-P\-L\-C\-\_\-\-Rx\-Interface} $\ast$ {\bfseries rx\-Interface}}\label{structns3_1_1thread__arg__t_a97a3a9964f435efa8d9be12a5bb99bdc} 14 | 15 | \end{DoxyCompactItemize} 16 | 17 | 18 | \-The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 19 | \item 20 | model/plc-\/defs.\-h\end{DoxyCompactItemize} 21 | -------------------------------------------------------------------------------- /doc/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | } 7 | 8 | .tabs2 { 9 | font-size: 10px; 10 | } 11 | .tabs3 { 12 | font-size: 9px; 13 | } 14 | 15 | .tablist { 16 | margin: 0; 17 | padding: 0; 18 | display: table; 19 | } 20 | 21 | .tablist li { 22 | float: left; 23 | display: table-cell; 24 | background-image: url('tab_b.png'); 25 | line-height: 36px; 26 | list-style: none; 27 | } 28 | 29 | .tablist a { 30 | display: block; 31 | padding: 0 20px; 32 | font-weight: bold; 33 | background-image:url('tab_s.png'); 34 | background-repeat:no-repeat; 35 | background-position:right; 36 | color: #283A5D; 37 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 38 | text-decoration: none; 39 | outline: none; 40 | } 41 | 42 | .tabs3 .tablist a { 43 | padding: 0 10px; 44 | } 45 | 46 | .tablist a:hover { 47 | background-image: url('tab_h.png'); 48 | background-repeat:repeat-x; 49 | color: #fff; 50 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 51 | text-decoration: none; 52 | } 53 | 54 | .tablist li.current a { 55 | background-image: url('tab_a.png'); 56 | background-repeat:repeat-x; 57 | color: #fff; 58 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 59 | } 60 | -------------------------------------------------------------------------------- /doc/latex/structns3_1_1PLC__InformationRateModel_1_1McsInfo.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structns3_1_1PLC__InformationRateModel_1_1McsInfo}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Information\-Rate\-Model\-:\-:\-Mcs\-Info \-Struct \-Reference} 2 | \label{structns3_1_1PLC__InformationRateModel_1_1McsInfo}\index{ns3\-::\-P\-L\-C\-\_\-\-Information\-Rate\-Model\-::\-Mcs\-Info@{ns3\-::\-P\-L\-C\-\_\-\-Information\-Rate\-Model\-::\-Mcs\-Info}} 3 | } 4 | \subsection*{\-Public \-Attributes} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{structns3_1_1PLC__InformationRateModel_1_1McsInfo_a2fdac4660b70edc484fa1bae5ed8bc46}{\-Modulation {\bfseries mod}}\label{structns3_1_1PLC__InformationRateModel_1_1McsInfo_a2fdac4660b70edc484fa1bae5ed8bc46} 8 | 9 | \item 10 | \hypertarget{structns3_1_1PLC__InformationRateModel_1_1McsInfo_a698c5da7aad3597c92d37aa543f4836a}{short {\bfseries cardinality}}\label{structns3_1_1PLC__InformationRateModel_1_1McsInfo_a698c5da7aad3597c92d37aa543f4836a} 11 | 12 | \item 13 | \hypertarget{structns3_1_1PLC__InformationRateModel_1_1McsInfo_a30886bd72659c48e26a5811ec05fc1a2}{double {\bfseries code\-\_\-rate}}\label{structns3_1_1PLC__InformationRateModel_1_1McsInfo_a30886bd72659c48e26a5811ec05fc1a2} 14 | 15 | \end{DoxyCompactItemize} 16 | 17 | 18 | \-The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 19 | \item 20 | model/plc-\/link-\/performance-\/model.\-h\end{DoxyCompactItemize} 21 | -------------------------------------------------------------------------------- /model/plc-thread-dispatcher.cc: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ 2 | /* 3 | * Copyright (c) 2012 4 | * 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 7 | * published by the Free Software Foundation; 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | * 18 | * Author: Alexander Schloegl 19 | */ 20 | 21 | #include "plc-thread-dispatcher.h" 22 | 23 | namespace ns3 { 24 | 25 | PLC_ThreadDispatcher::PLC_ThreadDispatcher (void) 26 | { 27 | m_multithreading_enabled = false; 28 | m_max_threads = 8; 29 | } 30 | 31 | void 32 | PLC_ThreadDispatcher::Run (std::vector > callbacks) 33 | { 34 | if (MultithreadingEnabled ()) 35 | { 36 | 37 | } 38 | else 39 | { 40 | std::vector >::iterator it; 41 | for (it = callbacks.begin (); it != callbacks.end (); it++) 42 | { 43 | (*it) (); 44 | } 45 | } 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__OutletDiscoverVisitor.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__OutletDiscoverVisitor}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Outlet\-Discover\-Visitor \-Class \-Reference} 2 | \label{classns3_1_1PLC__OutletDiscoverVisitor}\index{ns3\-::\-P\-L\-C\-\_\-\-Outlet\-Discover\-Visitor@{ns3\-::\-P\-L\-C\-\_\-\-Outlet\-Discover\-Visitor}} 3 | } 4 | 5 | 6 | {\ttfamily \#include $<$plc-\/visitor.\-h$>$} 7 | 8 | \subsection*{\-Public \-Member \-Functions} 9 | \begin{DoxyCompactItemize} 10 | \item 11 | \hypertarget{classns3_1_1PLC__OutletDiscoverVisitor_a30753d6d80e5e7672018e0bbef7cfceb}{{\bfseries \-P\-L\-C\-\_\-\-Outlet\-Discover\-Visitor} (\hyperlink{classns3_1_1PLC__BackboneBranch}{\-P\-L\-C\-\_\-\-Backbone\-Branch} $\ast$bb\-\_\-branch)}\label{classns3_1_1PLC__OutletDiscoverVisitor_a30753d6d80e5e7672018e0bbef7cfceb} 12 | 13 | \item 14 | \hypertarget{classns3_1_1PLC__OutletDiscoverVisitor_a96641182228ce918073789700bafd5ff}{{\footnotesize template$<$typename Vertex , typename Graph $>$ }\\void {\bfseries finish\-\_\-vertex} (\-Vertex u, const \-Graph \&g)}\label{classns3_1_1PLC__OutletDiscoverVisitor_a96641182228ce918073789700bafd5ff} 15 | 16 | \end{DoxyCompactItemize} 17 | 18 | 19 | \subsection{\-Detailed \-Description} 20 | \-Visitor implementation for boost depth first search to discover outlets seen from the bridge tap of the backbone branch 21 | 22 | \-The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize} 23 | \item 24 | model/plc-\/visitor.\-h\end{DoxyCompactItemize} 25 | -------------------------------------------------------------------------------- /model/plc-visitor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * plc-visitor.h 3 | * 4 | * Created on: 2012-01-06 5 | * Author: Alexander Schloegl 6 | */ 7 | 8 | #ifndef PLC_VISITOR_H_ 9 | #define PLC_VISITOR_H_ 10 | 11 | 12 | #include "plc-defs.h" 13 | #include "plc-time.h" 14 | #include "plc-outlet.h" 15 | #include "plc-backbone.h" 16 | 17 | namespace ns3 { 18 | 19 | /** 20 | * Visitor implementation for boost depth first search 21 | * to discover outlets seen from the bridge tap of the backbone 22 | * branch 23 | */ 24 | class PLC_OutletDiscoverVisitor : public boost::default_dfs_visitor 25 | { 26 | public: 27 | PLC_OutletDiscoverVisitor(PLC_BackboneBranch *bb_branch) : m_bb_branch(bb_branch) {} 28 | 29 | ~PLC_OutletDiscoverVisitor() {} 30 | 31 | template < typename Vertex, typename Graph > 32 | void finish_vertex(Vertex u, const Graph & g) 33 | { 34 | // this->m_bb_branch->GetNodePeekPtr()->GetGraph()->Lock(); 35 | PLC_Node *node = this->m_bb_branch->GetNodePeekPtr()->GetGraph()->GetNodePeekPtr(u); 36 | // this->m_bb_branch->GetNodePeekPtr()->GetGraph()->Unlock(); 37 | 38 | // node->Lock(); 39 | if (node->HasOutlet()) { 40 | 41 | // register outlet on backbone branch 42 | PLC_Outlet *outlet = node->GetOutletPeekPtr(); 43 | outlet->RegisterBackboneBranch(this->m_bb_branch); 44 | 45 | if (node->IsTimeVariant()) 46 | { 47 | this->m_bb_branch->SetTimeVariant(); 48 | } 49 | } 50 | // node->Unlock(); 51 | } 52 | 53 | private: 54 | PLC_BackboneBranch *m_bb_branch; 55 | }; 56 | 57 | } 58 | 59 | #endif /* PLC_VISITOR_H_ */ 60 | -------------------------------------------------------------------------------- /helper/plc-output-helper.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 | /* 3 | * Copyright (c) 2013 University of British Columbia, Vancouver 4 | * 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 7 | * published by the Free Software Foundation; 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | * 18 | * Author: Alexander Schloegl 19 | */ 20 | 21 | #ifndef PLC_OUTPUT_HELPER_H_ 22 | #define PLC_OUTPUT_HELPER_H_ 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | 29 | namespace ns3 { 30 | 31 | class PLC_OutputHelper 32 | { 33 | public: 34 | void PrintComplex(std::string name, Ptr value); 35 | void PrintAbsolute(std::string name, Ptr value); 36 | void PrintBode(std::string name, Ptr value); 37 | void PrintSeparatedBode(std::string name, Ptr value); 38 | }; 39 | 40 | } 41 | 42 | #endif /* PLC_OUTPUT_HELPER_H_ */ 43 | -------------------------------------------------------------------------------- /doc/latex/structns3_1_1backbone__branch__discover__thread__arg__t.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structns3_1_1backbone__branch__discover__thread__arg__t}{\section{ns3\-:\-:backbone\-\_\-branch\-\_\-discover\-\_\-thread\-\_\-arg\-\_\-t \-Struct \-Reference} 2 | \label{structns3_1_1backbone__branch__discover__thread__arg__t}\index{ns3\-::backbone\-\_\-branch\-\_\-discover\-\_\-thread\-\_\-arg\-\_\-t@{ns3\-::backbone\-\_\-branch\-\_\-discover\-\_\-thread\-\_\-arg\-\_\-t}} 3 | } 4 | \subsection*{\-Public \-Attributes} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{structns3_1_1backbone__branch__discover__thread__arg__t_ab4317ea3e51c1e7036318b20b28b3e81}{boost\-::\-U\-Graph $\ast$ {\bfseries graph\-\_\-copy}}\label{structns3_1_1backbone__branch__discover__thread__arg__t_ab4317ea3e51c1e7036318b20b28b3e81} 8 | 9 | \item 10 | \hypertarget{structns3_1_1backbone__branch__discover__thread__arg__t_aebda45110313b30a94deffe5b3654e5a}{\hyperlink{structns3_1_1PLC__Mutex}{\-P\-L\-C\-\_\-\-Mutex} $\ast$ {\bfseries graph\-\_\-copy\-\_\-mutex}}\label{structns3_1_1backbone__branch__discover__thread__arg__t_aebda45110313b30a94deffe5b3654e5a} 11 | 12 | \item 13 | \hypertarget{structns3_1_1backbone__branch__discover__thread__arg__t_ad109c6cdc036fc71b2d7b1be22bfd141}{\hyperlink{classns3_1_1PLC__BackboneBranch}{\-P\-L\-C\-\_\-\-Backbone\-Branch} $\ast$ {\bfseries bb}}\label{structns3_1_1backbone__branch__discover__thread__arg__t_ad109c6cdc036fc71b2d7b1be22bfd141} 14 | 15 | \end{DoxyCompactItemize} 16 | 17 | 18 | \-The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 19 | \item 20 | model/plc-\/defs.\-h\end{DoxyCompactItemize} 21 | -------------------------------------------------------------------------------- /doc/latex/structns3_1_1PLC__EdgeTransferData__t.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structns3_1_1PLC__EdgeTransferData__t}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Edge\-Transfer\-Data\-\_\-t \-Struct \-Reference} 2 | \label{structns3_1_1PLC__EdgeTransferData__t}\index{ns3\-::\-P\-L\-C\-\_\-\-Edge\-Transfer\-Data\-\_\-t@{ns3\-::\-P\-L\-C\-\_\-\-Edge\-Transfer\-Data\-\_\-t}} 3 | } 4 | \subsection*{\-Public \-Attributes} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{structns3_1_1PLC__EdgeTransferData__t_a5220b323aa355fa61c36e024c68a0312}{\-P\-L\-C\-\_\-\-Input\-Impedance {\bfseries input\-\_\-impedance}}\label{structns3_1_1PLC__EdgeTransferData__t_a5220b323aa355fa61c36e024c68a0312} 8 | 9 | \item 10 | \hypertarget{structns3_1_1PLC__EdgeTransferData__t_adca030f2a70e3f5df97857d940c420e2}{\-Ptr$<$ \hyperlink{classns3_1_1PLC__ValueBase}{\-P\-L\-C\-\_\-\-Impedance} $>$ {\bfseries load\-\_\-impedance}}\label{structns3_1_1PLC__EdgeTransferData__t_adca030f2a70e3f5df97857d940c420e2} 11 | 12 | \item 13 | \hypertarget{structns3_1_1PLC__EdgeTransferData__t_ade37b1cd647ade8e19c56a48f45e651f}{\-Ptr$<$ \hyperlink{classns3_1_1PLC__EdgeTransferUnit}{\-P\-L\-C\-\_\-\-Edge\-Transfer\-Unit} $>$ {\bfseries edge\-\_\-transfer\-\_\-unit}}\label{structns3_1_1PLC__EdgeTransferData__t_ade37b1cd647ade8e19c56a48f45e651f} 14 | 15 | \item 16 | \hypertarget{structns3_1_1PLC__EdgeTransferData__t_a9d746651e8c2a8ef5b85fc6e7d2d0bca}{bool {\bfseries etf\-\_\-initialized}}\label{structns3_1_1PLC__EdgeTransferData__t_a9d746651e8c2a8ef5b85fc6e7d2d0bca} 17 | 18 | \end{DoxyCompactItemize} 19 | 20 | 21 | \-The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 22 | \item 23 | model/plc-\/defs.\-h\end{DoxyCompactItemize} 24 | -------------------------------------------------------------------------------- /model/plc-thread-dispatcher.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ 2 | /* 3 | * Copyright (c) 2012 4 | * 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 7 | * published by the Free Software Foundation; 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | * 18 | * Author: Alexander Schloegl 19 | */ 20 | 21 | #ifndef PLC_ThreadDispatcher_H_ 22 | #define PLC_ThreadDispatcher_H_ 23 | 24 | #include 25 | #include 26 | 27 | namespace ns3 { 28 | 29 | class PLC_ThreadDispatcher 30 | { 31 | PLC_ThreadDispatcher (); 32 | 33 | void EnableMultithreadind (void) { m_multithreading_enabled = true; } 34 | void DisableMultithreading (void) { m_multithreading_enabled = false; } 35 | bool MultithreadingEnabled (void) { return m_multithreading_enabled; } 36 | 37 | void SetMaxThreads (size_t max) { m_max_threads = max; } 38 | size_t GetMaxThreads (void) { return m_max_threads; } 39 | 40 | void Run (std::vector > callbacks); 41 | 42 | private: 43 | bool m_multithreading_enabled; 44 | size_t m_max_threads; 45 | std::vector > m_threads; 46 | }; 47 | 48 | } 49 | 50 | #endif /* PLC_ThreadDispatcher_H_ */ 51 | -------------------------------------------------------------------------------- /model/plc-time.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 | /* 3 | * Copyright (c) 2012 University of British Columbia, Vancouver 4 | * 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 7 | * published by the Free Software Foundation; 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | * 18 | * Author: Alexander Schloegl 19 | */ 20 | 21 | #ifndef PLC_TIME_H_ 22 | #define PLC_TIME_H_ 23 | 24 | #include 25 | #include "plc-defs.h" 26 | 27 | namespace ns3 { 28 | 29 | class PLC_Time 30 | { 31 | public: 32 | 33 | static void SetTimeModel(double mainsFreq, size_t timeslots); 34 | static void SetTimeModel(double mainsFreq, Time tSymbol); 35 | static void SetTimeModel(double mainsFreq, size_t timeslots, Time tSymbol); 36 | static Time GetMainsPeriod(void) { return g_period; } 37 | static size_t GetNumTimeslots(void) { return g_timeslots; } 38 | static Timeslot GetTimeslot(Time t); 39 | static double GetResolutionS(void) { return g_resolution_s; } 40 | static double GetPeriodS(void) { return g_period_s; } 41 | 42 | private: 43 | static double g_mainsFreq; 44 | static size_t g_timeslots; 45 | static Time g_period; 46 | static Time g_resolution; 47 | static double g_resolution_s; 48 | static double g_period_s; 49 | }; 50 | 51 | } 52 | 53 | #endif /* PLC_TIME_H_ */ 54 | -------------------------------------------------------------------------------- /model/plc.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 | /* 3 | * Copyright (c) 2012 University of British Columbia, Vancouver 4 | * 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 7 | * published by the Free Software Foundation; 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | * 18 | * Author: Alexander Schloegl 19 | */ 20 | 21 | /** 22 | * Common Includes for PLC simulations 23 | */ 24 | 25 | #ifndef PLC_H_ 26 | #define PLC_H_ 27 | 28 | // stl includes 29 | #include 30 | #include 31 | 32 | // ns-3 includes 33 | #include 34 | #include 35 | #include 36 | 37 | // plc model includes 38 | #include "ns3/plc-defs.h" 39 | #include "ns3/plc-time.h" 40 | #include "ns3/plc-value.h" 41 | #include "ns3/plc-cable.h" 42 | #include "ns3/plc-edge.h" 43 | #include "ns3/plc-node.h" 44 | #include "ns3/plc-graph.h" 45 | #include "ns3/plc-channel.h" 46 | #include "ns3/plc-backbone.h" 47 | #include "ns3/plc-outlet.h" 48 | #include "ns3/plc-noise.h" 49 | #include "ns3/plc-phy.h" 50 | #include "ns3/plc-mac.h" 51 | #include "ns3/plc-net-device.h" 52 | 53 | // plc helper includes 54 | #include "ns3/plc-helper.h" 55 | #include "ns3/plc-device-helper.h" 56 | #include "ns3/plc-spectrum-helper.h" 57 | #include "ns3/plc-output-helper.h" 58 | 59 | #endif /* PLC_H_ */ 60 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__NAYY50SE__Cable.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__NAYY50SE__Cable}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-N\-A\-Y\-Y50\-S\-E\-\_\-\-Cable \-Class \-Reference} 2 | \label{classns3_1_1PLC__NAYY50SE__Cable}\index{ns3\-::\-P\-L\-C\-\_\-\-N\-A\-Y\-Y50\-S\-E\-\_\-\-Cable@{ns3\-::\-P\-L\-C\-\_\-\-N\-A\-Y\-Y50\-S\-E\-\_\-\-Cable}} 3 | } 4 | 5 | 6 | {\ttfamily \#include $<$plc-\/cable.\-h$>$} 7 | 8 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-N\-A\-Y\-Y50\-S\-E\-\_\-\-Cable\-:\begin{figure}[H] 9 | \begin{center} 10 | \leavevmode 11 | \includegraphics[height=3.000000cm]{classns3_1_1PLC__NAYY50SE__Cable} 12 | \end{center} 13 | \end{figure} 14 | \subsection*{\-Public \-Member \-Functions} 15 | \begin{DoxyCompactItemize} 16 | \item 17 | \hypertarget{classns3_1_1PLC__NAYY50SE__Cable_a00c27114314fb3c45618d08fdf96ea0e}{{\bfseries \-P\-L\-C\-\_\-\-N\-A\-Y\-Y50\-S\-E\-\_\-\-Cable} (\-Ptr$<$ const \-Spectrum\-Model $>$ sm)}\label{classns3_1_1PLC__NAYY50SE__Cable_a00c27114314fb3c45618d08fdf96ea0e} 18 | 19 | \item 20 | \hypertarget{classns3_1_1PLC__NAYY50SE__Cable_acbb0079a0edd3011b67887d1952d91d8}{void {\bfseries \-Calculate} ()}\label{classns3_1_1PLC__NAYY50SE__Cable_acbb0079a0edd3011b67887d1952d91d8} 21 | 22 | \end{DoxyCompactItemize} 23 | \subsection*{\-Static \-Public \-Member \-Functions} 24 | \begin{DoxyCompactItemize} 25 | \item 26 | \hypertarget{classns3_1_1PLC__NAYY50SE__Cable_ab8e35f2257eaa44fa413b4260f86a9a3}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__NAYY50SE__Cable_ab8e35f2257eaa44fa413b4260f86a9a3} 27 | 28 | \end{DoxyCompactItemize} 29 | 30 | 31 | \subsection{\-Detailed \-Description} 32 | \-Parameter model for the power supply cable \-N\-A\-Y\-Y50\-S\-E 33 | 34 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 35 | \item 36 | model/plc-\/cable.\-h\item 37 | model/plc-\/cable.\-cc\end{DoxyCompactItemize} 38 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__NAYY150SE__Cable.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__NAYY150SE__Cable}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-N\-A\-Y\-Y150\-S\-E\-\_\-\-Cable \-Class \-Reference} 2 | \label{classns3_1_1PLC__NAYY150SE__Cable}\index{ns3\-::\-P\-L\-C\-\_\-\-N\-A\-Y\-Y150\-S\-E\-\_\-\-Cable@{ns3\-::\-P\-L\-C\-\_\-\-N\-A\-Y\-Y150\-S\-E\-\_\-\-Cable}} 3 | } 4 | 5 | 6 | {\ttfamily \#include $<$plc-\/cable.\-h$>$} 7 | 8 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-N\-A\-Y\-Y150\-S\-E\-\_\-\-Cable\-:\begin{figure}[H] 9 | \begin{center} 10 | \leavevmode 11 | \includegraphics[height=3.000000cm]{classns3_1_1PLC__NAYY150SE__Cable} 12 | \end{center} 13 | \end{figure} 14 | \subsection*{\-Public \-Member \-Functions} 15 | \begin{DoxyCompactItemize} 16 | \item 17 | \hypertarget{classns3_1_1PLC__NAYY150SE__Cable_a270c1f0c8c35b725a01e2e5753393ba7}{{\bfseries \-P\-L\-C\-\_\-\-N\-A\-Y\-Y150\-S\-E\-\_\-\-Cable} (\-Ptr$<$ const \-Spectrum\-Model $>$ sm)}\label{classns3_1_1PLC__NAYY150SE__Cable_a270c1f0c8c35b725a01e2e5753393ba7} 18 | 19 | \item 20 | \hypertarget{classns3_1_1PLC__NAYY150SE__Cable_a52a09bc86c85a4898971752b532257e7}{void {\bfseries \-Calculate} ()}\label{classns3_1_1PLC__NAYY150SE__Cable_a52a09bc86c85a4898971752b532257e7} 21 | 22 | \end{DoxyCompactItemize} 23 | \subsection*{\-Static \-Public \-Member \-Functions} 24 | \begin{DoxyCompactItemize} 25 | \item 26 | \hypertarget{classns3_1_1PLC__NAYY150SE__Cable_a12eca9c6aa8c7c029e12d322a420f42f}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__NAYY150SE__Cable_a12eca9c6aa8c7c029e12d322a420f42f} 27 | 28 | \end{DoxyCompactItemize} 29 | 30 | 31 | \subsection{\-Detailed \-Description} 32 | \-Parameter model for the power supply cable \-N\-A\-Y\-Y150\-S\-E 33 | 34 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 35 | \item 36 | model/plc-\/cable.\-h\item 37 | model/plc-\/cable.\-cc\end{DoxyCompactItemize} 38 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__AL3x95XLPE__Cable.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__AL3x95XLPE__Cable}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-A\-L3x95\-X\-L\-P\-E\-\_\-\-Cable \-Class \-Reference} 2 | \label{classns3_1_1PLC__AL3x95XLPE__Cable}\index{ns3\-::\-P\-L\-C\-\_\-\-A\-L3x95\-X\-L\-P\-E\-\_\-\-Cable@{ns3\-::\-P\-L\-C\-\_\-\-A\-L3x95\-X\-L\-P\-E\-\_\-\-Cable}} 3 | } 4 | 5 | 6 | {\ttfamily \#include $<$plc-\/cable.\-h$>$} 7 | 8 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-A\-L3x95\-X\-L\-P\-E\-\_\-\-Cable\-:\begin{figure}[H] 9 | \begin{center} 10 | \leavevmode 11 | \includegraphics[height=3.000000cm]{classns3_1_1PLC__AL3x95XLPE__Cable} 12 | \end{center} 13 | \end{figure} 14 | \subsection*{\-Public \-Member \-Functions} 15 | \begin{DoxyCompactItemize} 16 | \item 17 | \hypertarget{classns3_1_1PLC__AL3x95XLPE__Cable_a7417323df95911e34f8a52aa5b502950}{{\bfseries \-P\-L\-C\-\_\-\-A\-L3x95\-X\-L\-P\-E\-\_\-\-Cable} (\-Ptr$<$ const \-Spectrum\-Model $>$ sm)}\label{classns3_1_1PLC__AL3x95XLPE__Cable_a7417323df95911e34f8a52aa5b502950} 18 | 19 | \item 20 | \hypertarget{classns3_1_1PLC__AL3x95XLPE__Cable_acfbdd88b01ef3ea3e6f89a892d3b1919}{void {\bfseries \-Calculate} ()}\label{classns3_1_1PLC__AL3x95XLPE__Cable_acfbdd88b01ef3ea3e6f89a892d3b1919} 21 | 22 | \end{DoxyCompactItemize} 23 | \subsection*{\-Static \-Public \-Member \-Functions} 24 | \begin{DoxyCompactItemize} 25 | \item 26 | \hypertarget{classns3_1_1PLC__AL3x95XLPE__Cable_a8c2cffd33730a5e137f8595a36dfe7d4}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__AL3x95XLPE__Cable_a8c2cffd33730a5e137f8595a36dfe7d4} 27 | 28 | \end{DoxyCompactItemize} 29 | 30 | 31 | \subsection{\-Detailed \-Description} 32 | \-Parameter model for the power supply cable \-A\-L3x95\-X\-L\-P\-E 33 | 34 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 35 | \item 36 | model/plc-\/cable.\-h\item 37 | model/plc-\/cable.\-cc\end{DoxyCompactItemize} 38 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__NYCY70SM35__Cable.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__NYCY70SM35__Cable}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-N\-Y\-C\-Y70\-S\-M35\-\_\-\-Cable \-Class \-Reference} 2 | \label{classns3_1_1PLC__NYCY70SM35__Cable}\index{ns3\-::\-P\-L\-C\-\_\-\-N\-Y\-C\-Y70\-S\-M35\-\_\-\-Cable@{ns3\-::\-P\-L\-C\-\_\-\-N\-Y\-C\-Y70\-S\-M35\-\_\-\-Cable}} 3 | } 4 | 5 | 6 | {\ttfamily \#include $<$plc-\/cable.\-h$>$} 7 | 8 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-N\-Y\-C\-Y70\-S\-M35\-\_\-\-Cable\-:\begin{figure}[H] 9 | \begin{center} 10 | \leavevmode 11 | \includegraphics[height=3.000000cm]{classns3_1_1PLC__NYCY70SM35__Cable} 12 | \end{center} 13 | \end{figure} 14 | \subsection*{\-Public \-Member \-Functions} 15 | \begin{DoxyCompactItemize} 16 | \item 17 | \hypertarget{classns3_1_1PLC__NYCY70SM35__Cable_ab12266d3fe12224c6dc233907f946040}{{\bfseries \-P\-L\-C\-\_\-\-N\-Y\-C\-Y70\-S\-M35\-\_\-\-Cable} (\-Ptr$<$ const \-Spectrum\-Model $>$ sm)}\label{classns3_1_1PLC__NYCY70SM35__Cable_ab12266d3fe12224c6dc233907f946040} 18 | 19 | \item 20 | \hypertarget{classns3_1_1PLC__NYCY70SM35__Cable_a04cf23915258c264964a0918c8f478c8}{void {\bfseries \-Calculate} ()}\label{classns3_1_1PLC__NYCY70SM35__Cable_a04cf23915258c264964a0918c8f478c8} 21 | 22 | \end{DoxyCompactItemize} 23 | \subsection*{\-Static \-Public \-Member \-Functions} 24 | \begin{DoxyCompactItemize} 25 | \item 26 | \hypertarget{classns3_1_1PLC__NYCY70SM35__Cable_adc117987437e652706f8686469607fec}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__NYCY70SM35__Cable_adc117987437e652706f8686469607fec} 27 | 28 | \end{DoxyCompactItemize} 29 | 30 | 31 | \subsection{\-Detailed \-Description} 32 | \-Parameter model for the power supply cable \-N\-Y\-C\-Y70\-S\-M/35 33 | 34 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 35 | \item 36 | model/plc-\/cable.\-h\item 37 | model/plc-\/cable.\-cc\end{DoxyCompactItemize} 38 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__InformationRateModel.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__InformationRateModel}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Information\-Rate\-Model \-Class \-Reference} 2 | \label{classns3_1_1PLC__InformationRateModel}\index{ns3\-::\-P\-L\-C\-\_\-\-Information\-Rate\-Model@{ns3\-::\-P\-L\-C\-\_\-\-Information\-Rate\-Model}} 3 | } 4 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-Information\-Rate\-Model\-:\begin{figure}[H] 5 | \begin{center} 6 | \leavevmode 7 | \includegraphics[height=2.000000cm]{classns3_1_1PLC__InformationRateModel} 8 | \end{center} 9 | \end{figure} 10 | \subsection*{\-Classes} 11 | \begin{DoxyCompactItemize} 12 | \item 13 | struct \hyperlink{structns3_1_1PLC__InformationRateModel_1_1McsInfo}{\-Mcs\-Info} 14 | \end{DoxyCompactItemize} 15 | \subsection*{\-Public \-Member \-Functions} 16 | \begin{DoxyCompactItemize} 17 | \item 18 | \hypertarget{classns3_1_1PLC__InformationRateModel_a71cd6b53dfc6cbbbd8e77bd13cda3156}{void {\bfseries \-Set\-Ineffective\-Time\-Proportion} (double prop)}\label{classns3_1_1PLC__InformationRateModel_a71cd6b53dfc6cbbbd8e77bd13cda3156} 19 | 20 | \item 21 | \hypertarget{classns3_1_1PLC__InformationRateModel_a8c4bb07a41da6731de7b135082a985ef}{double {\bfseries \-Get\-Gathered\-Mutual\-Information} (void)}\label{classns3_1_1PLC__InformationRateModel_a8c4bb07a41da6731de7b135082a985ef} 22 | 23 | \end{DoxyCompactItemize} 24 | \subsection*{\-Static \-Public \-Member \-Functions} 25 | \begin{DoxyCompactItemize} 26 | \item 27 | \hypertarget{classns3_1_1PLC__InformationRateModel_a4d419a2322b18a49f471c9b4392770e2}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__InformationRateModel_a4d419a2322b18a49f471c9b4392770e2} 28 | 29 | \end{DoxyCompactItemize} 30 | 31 | 32 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 33 | \item 34 | model/plc-\/link-\/performance-\/model.\-h\item 35 | model/plc-\/link-\/performance-\/model.\-cc\end{DoxyCompactItemize} 36 | -------------------------------------------------------------------------------- /test/plc-test-suite.cc: -------------------------------------------------------------------------------- 1 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 | 3 | // Include a header file from your module to test. 4 | #include "ns3/plc.h" 5 | 6 | // An essential include is test.h 7 | #include "ns3/test.h" 8 | 9 | // Do not put your test classes in namespace ns3. You may find it useful 10 | // to use the using directive to access the ns3 namespace directly 11 | using namespace ns3; 12 | 13 | // This is an example TestCase. 14 | class PlcTestCase1 : public TestCase 15 | { 16 | public: 17 | PlcTestCase1 (); 18 | virtual ~PlcTestCase1 (); 19 | 20 | private: 21 | virtual void DoRun (void); 22 | }; 23 | 24 | // Add some help text to this case to describe what it is intended to test 25 | PlcTestCase1::PlcTestCase1 () 26 | : TestCase ("Plc test case (does nothing)") 27 | { 28 | } 29 | 30 | // This destructor does nothing but we include it as a reminder that 31 | // the test case should clean up after itself 32 | PlcTestCase1::~PlcTestCase1 () 33 | { 34 | } 35 | 36 | // 37 | // This method is the pure virtual method from class TestCase that every 38 | // TestCase must implement 39 | // 40 | void 41 | PlcTestCase1::DoRun (void) 42 | { 43 | // A wide variety of test macros are available in src/core/test.h 44 | NS_TEST_ASSERT_MSG_EQ (true, true, "true doesn't equal true for some reason"); 45 | // Use this one for floating point comparisons 46 | NS_TEST_ASSERT_MSG_EQ_TOL (0.01, 0.01, 0.001, "Numbers are not equal within tolerance"); 47 | } 48 | 49 | // The TestSuite class names the TestSuite, identifies what type of TestSuite, 50 | // and enables the TestCases to be run. Typically, only the constructor for 51 | // this class must be defined 52 | // 53 | class PlcTestSuite : public TestSuite 54 | { 55 | public: 56 | PlcTestSuite (); 57 | }; 58 | 59 | PlcTestSuite::PlcTestSuite () 60 | : TestSuite ("plc", UNIT) 61 | { 62 | AddTestCase (new PlcTestCase1, EXTENSIVE); 63 | } 64 | 65 | // Do not forget to allocate an instance of this TestSuite 66 | static PlcTestSuite plcTestSuite; 67 | 68 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ColoredNoiseFloor.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__ColoredNoiseFloor}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Colored\-Noise\-Floor \-Class \-Reference} 2 | \label{classns3_1_1PLC__ColoredNoiseFloor}\index{ns3\-::\-P\-L\-C\-\_\-\-Colored\-Noise\-Floor@{ns3\-::\-P\-L\-C\-\_\-\-Colored\-Noise\-Floor}} 3 | } 4 | 5 | 6 | {\ttfamily \#include $<$plc-\/noise.\-h$>$} 7 | 8 | \subsection*{\-Public \-Member \-Functions} 9 | \begin{DoxyCompactItemize} 10 | \item 11 | \hypertarget{classns3_1_1PLC__ColoredNoiseFloor_ab858fcfc40d2125f8689445ede999b30}{{\bfseries \-P\-L\-C\-\_\-\-Colored\-Noise\-Floor} (double a, double b, double c, \-Ptr$<$ const \-Spectrum\-Model $>$ sm)}\label{classns3_1_1PLC__ColoredNoiseFloor_ab858fcfc40d2125f8689445ede999b30} 12 | 13 | \item 14 | \hypertarget{classns3_1_1PLC__ColoredNoiseFloor_a2aa0978aca331068e4cbb36a2d521d4d}{\-Ptr$<$ \-Spectrum\-Value $>$ {\bfseries \-Get\-Noise\-Psd} (void)}\label{classns3_1_1PLC__ColoredNoiseFloor_a2aa0978aca331068e4cbb36a2d521d4d} 15 | 16 | \end{DoxyCompactItemize} 17 | \subsection*{\-Protected \-Attributes} 18 | \begin{DoxyCompactItemize} 19 | \item 20 | \hypertarget{classns3_1_1PLC__ColoredNoiseFloor_a2da0e6d409fb21fcc291b8067d9e7526}{\-Ptr$<$ \-Spectrum\-Value $>$ {\bfseries m\-\_\-noise\-Psd}}\label{classns3_1_1PLC__ColoredNoiseFloor_a2da0e6d409fb21fcc291b8067d9e7526} 21 | 22 | \end{DoxyCompactItemize} 23 | 24 | 25 | \subsection{\-Detailed \-Description} 26 | \-Helper class for colored noise generation with a simple three parameter model proposed in\-: 27 | 28 | \char`\"{}\-On Noise Modeling for Power Line Communications\char`\"{} by \-Luca \-Di \-Bert, ..., \-Andrea \-M. \-Tonello 2011 \-I\-E\-E\-E \-International \-Symposium on \-Power \-Line \-Communications and \-Its \-Applications 29 | 30 | \-Noise\-Psd = a + b$|$f$|$$^\wedge$c \mbox{[}d\-Bm/\-Hz\mbox{]} 31 | 32 | with f in \-Mhz 33 | 34 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 35 | \item 36 | model/plc-\/noise.\-h\item 37 | model/plc-\/noise.\-cc\end{DoxyCompactItemize} 38 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__Time.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__Time}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Time \-Class \-Reference} 2 | \label{classns3_1_1PLC__Time}\index{ns3\-::\-P\-L\-C\-\_\-\-Time@{ns3\-::\-P\-L\-C\-\_\-\-Time}} 3 | } 4 | \subsection*{\-Static \-Public \-Member \-Functions} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{classns3_1_1PLC__Time_a35823a5873068e49ca0a736834ca85f6}{static void {\bfseries \-Set\-Time\-Model} (double mains\-Freq, \-Time t\-Symbol)}\label{classns3_1_1PLC__Time_a35823a5873068e49ca0a736834ca85f6} 8 | 9 | \item 10 | \hypertarget{classns3_1_1PLC__Time_aef58f3ce26761a3ddd96a3319a93d6ae}{static void {\bfseries \-Set\-Time\-Model} (double mains\-Freq, size\-\_\-t timeslots, \-Time t\-Symbol)}\label{classns3_1_1PLC__Time_aef58f3ce26761a3ddd96a3319a93d6ae} 11 | 12 | \item 13 | \hypertarget{classns3_1_1PLC__Time_ad443cebbce29e54cafdb5d896c6cd4fa}{static \-Time {\bfseries \-Get\-Mains\-Period} (void)}\label{classns3_1_1PLC__Time_ad443cebbce29e54cafdb5d896c6cd4fa} 14 | 15 | \item 16 | \hypertarget{classns3_1_1PLC__Time_ac1992dc1a3aff7c18345cf896f8c73cb}{static size\-\_\-t {\bfseries \-Get\-Num\-Timeslots} (void)}\label{classns3_1_1PLC__Time_ac1992dc1a3aff7c18345cf896f8c73cb} 17 | 18 | \item 19 | \hypertarget{classns3_1_1PLC__Time_a1a883e09be6fe4c5586b831e426fd602}{static \-Timeslot {\bfseries \-Get\-Timeslot} (\-Time t)}\label{classns3_1_1PLC__Time_a1a883e09be6fe4c5586b831e426fd602} 20 | 21 | \item 22 | \hypertarget{classns3_1_1PLC__Time_a4e075d2ddc9c00873b859c5b54117c81}{static double {\bfseries \-Get\-Resolution\-S} (void)}\label{classns3_1_1PLC__Time_a4e075d2ddc9c00873b859c5b54117c81} 23 | 24 | \item 25 | \hypertarget{classns3_1_1PLC__Time_a125b207782e20bba3b4b2017caa96ccc}{static double {\bfseries \-Get\-Period\-S} (void)}\label{classns3_1_1PLC__Time_a125b207782e20bba3b4b2017caa96ccc} 26 | 27 | \end{DoxyCompactItemize} 28 | 29 | 30 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 31 | \item 32 | model/plc-\/time.\-h\item 33 | model/plc-\/time.\-cc\end{DoxyCompactItemize} 34 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__PhyHeader.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__PhyHeader}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Phy\-Header \-Class \-Reference} 2 | \label{classns3_1_1PLC__PhyHeader}\index{ns3\-::\-P\-L\-C\-\_\-\-Phy\-Header@{ns3\-::\-P\-L\-C\-\_\-\-Phy\-Header}} 3 | } 4 | \subsection*{\-Public \-Member \-Functions} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{classns3_1_1PLC__PhyHeader_ab1f4537f97df7a8e81372fad277053ca}{virtual uint32\-\_\-t {\bfseries \-Get\-Serialized\-Size} (void) const }\label{classns3_1_1PLC__PhyHeader_ab1f4537f97df7a8e81372fad277053ca} 8 | 9 | \item 10 | \hypertarget{classns3_1_1PLC__PhyHeader_abbb96f40da1f89c7b27b60f929bf6e0d}{virtual \-Type\-Id {\bfseries \-Get\-Instance\-Type\-Id} (void) const }\label{classns3_1_1PLC__PhyHeader_abbb96f40da1f89c7b27b60f929bf6e0d} 11 | 12 | \item 13 | \hypertarget{classns3_1_1PLC__PhyHeader_a12eb375964529e3a7ff395947bb2297a}{virtual void {\bfseries \-Serialize} (\-Buffer\-::\-Iterator start) const }\label{classns3_1_1PLC__PhyHeader_a12eb375964529e3a7ff395947bb2297a} 14 | 15 | \item 16 | \hypertarget{classns3_1_1PLC__PhyHeader_a33ab90866a2e16b238dde2322007b9e2}{virtual uint32\-\_\-t {\bfseries \-Deserialize} (\-Buffer\-::\-Iterator start)}\label{classns3_1_1PLC__PhyHeader_a33ab90866a2e16b238dde2322007b9e2} 17 | 18 | \item 19 | \hypertarget{classns3_1_1PLC__PhyHeader_ad0a6ac60838555c71b124840f963ba4f}{virtual void {\bfseries \-Print} (std\-::ostream \&os) const }\label{classns3_1_1PLC__PhyHeader_ad0a6ac60838555c71b124840f963ba4f} 20 | 21 | \end{DoxyCompactItemize} 22 | \subsection*{\-Static \-Public \-Member \-Functions} 23 | \begin{DoxyCompactItemize} 24 | \item 25 | \hypertarget{classns3_1_1PLC__PhyHeader_a020d616c80972ce17b309cb886371fed}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__PhyHeader_a020d616c80972ce17b309cb886371fed} 26 | 27 | \end{DoxyCompactItemize} 28 | 29 | 30 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 31 | \item 32 | model/plc-\/header.\-h\item 33 | model/plc-\/header.\-cc\end{DoxyCompactItemize} 34 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__StaticNoiseSource.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__StaticNoiseSource}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Static\-Noise\-Source \-Class \-Reference} 2 | \label{classns3_1_1PLC__StaticNoiseSource}\index{ns3\-::\-P\-L\-C\-\_\-\-Static\-Noise\-Source@{ns3\-::\-P\-L\-C\-\_\-\-Static\-Noise\-Source}} 3 | } 4 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-Static\-Noise\-Source\-:\begin{figure}[H] 5 | \begin{center} 6 | \leavevmode 7 | \includegraphics[height=2.000000cm]{classns3_1_1PLC__StaticNoiseSource} 8 | \end{center} 9 | \end{figure} 10 | \subsection*{\-Public \-Member \-Functions} 11 | \begin{DoxyCompactItemize} 12 | \item 13 | \hypertarget{classns3_1_1PLC__StaticNoiseSource_a6ff8b14ea53478865d3718011960c8a4}{{\bfseries \-P\-L\-C\-\_\-\-Static\-Noise\-Source} (\-Ptr$<$ \hyperlink{classns3_1_1PLC__Node}{\-P\-L\-C\-\_\-\-Node} $>$ src\-\_\-node, \-Ptr$<$ \-Spectrum\-Value $>$ noise\-Psd)}\label{classns3_1_1PLC__StaticNoiseSource_a6ff8b14ea53478865d3718011960c8a4} 14 | 15 | \item 16 | \hypertarget{classns3_1_1PLC__StaticNoiseSource_a2cdc9f92c961795126a7db193e929e6b}{void {\bfseries \-Initialize} (\-Time duration)}\label{classns3_1_1PLC__StaticNoiseSource_a2cdc9f92c961795126a7db193e929e6b} 17 | 18 | \end{DoxyCompactItemize} 19 | \subsection*{\-Static \-Public \-Member \-Functions} 20 | \begin{DoxyCompactItemize} 21 | \item 22 | \hypertarget{classns3_1_1PLC__StaticNoiseSource_a268a19f26e7f6c5d25782ffb2f7341a5}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__StaticNoiseSource_a268a19f26e7f6c5d25782ffb2f7341a5} 23 | 24 | \end{DoxyCompactItemize} 25 | \subsection*{\-Protected \-Member \-Functions} 26 | \begin{DoxyCompactItemize} 27 | \item 28 | \hypertarget{classns3_1_1PLC__StaticNoiseSource_addaa95a59db7402ca0b52d404b2ba4fe}{virtual void {\bfseries pure\-Virtual\-Dummy} (void)}\label{classns3_1_1PLC__StaticNoiseSource_addaa95a59db7402ca0b52d404b2ba4fe} 29 | 30 | \end{DoxyCompactItemize} 31 | 32 | 33 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 34 | \item 35 | model/plc-\/noise.\-h\item 36 | model/plc-\/noise.\-cc\end{DoxyCompactItemize} 37 | -------------------------------------------------------------------------------- /bindings/callbacks_list.py: -------------------------------------------------------------------------------- 1 | callback_classes = [ 2 | ['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], 3 | ['void', 'ns3::Ptr', 'unsigned short', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], 4 | ['void', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], 5 | ['void', 'ns3::Mac48Address', 'unsigned short', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], 6 | ['void', 'ns3::Ptr', 'ns3::Mac48Address', 'ns3::Mac48Address', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], 7 | ['void', 'ns3::PLC_PhyCcaResult', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], 8 | ['void', 'bool', 'ns3::Ptr', 'std::vector >, std::allocator > > >', 'std::vector >, std::allocator > > >', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], 9 | ['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], 10 | ['bool', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], 11 | ['bool', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], 12 | ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], 13 | ] 14 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ImpulseNoiseSource.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__ImpulseNoiseSource}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Impulse\-Noise\-Source \-Class \-Reference} 2 | \label{classns3_1_1PLC__ImpulseNoiseSource}\index{ns3\-::\-P\-L\-C\-\_\-\-Impulse\-Noise\-Source@{ns3\-::\-P\-L\-C\-\_\-\-Impulse\-Noise\-Source}} 3 | } 4 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-Impulse\-Noise\-Source\-:\begin{figure}[H] 5 | \begin{center} 6 | \leavevmode 7 | \includegraphics[height=2.000000cm]{classns3_1_1PLC__ImpulseNoiseSource} 8 | \end{center} 9 | \end{figure} 10 | \subsection*{\-Public \-Member \-Functions} 11 | \begin{DoxyCompactItemize} 12 | \item 13 | \hypertarget{classns3_1_1PLC__ImpulseNoiseSource_a7027fcf2ad3cf9442e3207112cbb0f9b}{{\bfseries \-P\-L\-C\-\_\-\-Impulse\-Noise\-Source} (\-Ptr$<$ \hyperlink{classns3_1_1PLC__Node}{\-P\-L\-C\-\_\-\-Node} $>$ m\-\_\-src\-\_\-node, \-Ptr$<$ \-Spectrum\-Value $>$ noise\-Psd, double p)}\label{classns3_1_1PLC__ImpulseNoiseSource_a7027fcf2ad3cf9442e3207112cbb0f9b} 14 | 15 | \item 16 | \hypertarget{classns3_1_1PLC__ImpulseNoiseSource_ad16655e5287e7144e8e02aa95fce0134}{void {\bfseries \-Set\-Probability} (double p)}\label{classns3_1_1PLC__ImpulseNoiseSource_ad16655e5287e7144e8e02aa95fce0134} 17 | 18 | \item 19 | \hypertarget{classns3_1_1PLC__ImpulseNoiseSource_a8b5d15fb465aeaa71947e3e8f16567fc}{double {\bfseries \-Get\-Probability} (void)}\label{classns3_1_1PLC__ImpulseNoiseSource_a8b5d15fb465aeaa71947e3e8f16567fc} 20 | 21 | \end{DoxyCompactItemize} 22 | \subsection*{\-Static \-Public \-Member \-Functions} 23 | \begin{DoxyCompactItemize} 24 | \item 25 | \hypertarget{classns3_1_1PLC__ImpulseNoiseSource_a3bc892efc4cd33d4fc67f201b51bc3f9}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__ImpulseNoiseSource_a3bc892efc4cd33d4fc67f201b51bc3f9} 26 | 27 | \end{DoxyCompactItemize} 28 | \subsection*{\-Protected \-Member \-Functions} 29 | \begin{DoxyCompactItemize} 30 | \item 31 | \hypertarget{classns3_1_1PLC__ImpulseNoiseSource_a81d066efc456ef85ddd5117fab8493ec}{virtual void {\bfseries pure\-Virtual\-Dummy} (void)}\label{classns3_1_1PLC__ImpulseNoiseSource_a81d066efc456ef85ddd5117fab8493ec} 32 | 33 | \end{DoxyCompactItemize} 34 | 35 | 36 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 37 | \item 38 | model/plc-\/noise.\-h\item 39 | model/plc-\/noise.\-cc\end{DoxyCompactItemize} 40 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__Preamble.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__Preamble}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Preamble \-Class \-Reference} 2 | \label{classns3_1_1PLC__Preamble}\index{ns3\-::\-P\-L\-C\-\_\-\-Preamble@{ns3\-::\-P\-L\-C\-\_\-\-Preamble}} 3 | } 4 | \subsection*{\-Public \-Member \-Functions} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{classns3_1_1PLC__Preamble_a8867887b148f9527a3168a159ca717e9}{virtual uint32\-\_\-t {\bfseries \-Get\-Serialized\-Size} (void) const }\label{classns3_1_1PLC__Preamble_a8867887b148f9527a3168a159ca717e9} 8 | 9 | \item 10 | \hypertarget{classns3_1_1PLC__Preamble_ace7e8a62cb91c513946274162ef3c5ba}{virtual \-Type\-Id {\bfseries \-Get\-Instance\-Type\-Id} (void) const }\label{classns3_1_1PLC__Preamble_ace7e8a62cb91c513946274162ef3c5ba} 11 | 12 | \item 13 | \hypertarget{classns3_1_1PLC__Preamble_a0901cdbe23e7d78371c89fd8bb06cc6f}{virtual void {\bfseries \-Serialize} (\-Buffer\-::\-Iterator start) const }\label{classns3_1_1PLC__Preamble_a0901cdbe23e7d78371c89fd8bb06cc6f} 14 | 15 | \item 16 | \hypertarget{classns3_1_1PLC__Preamble_aa9ac92d12a82c15f2691ea306a5cd714}{virtual uint32\-\_\-t {\bfseries \-Deserialize} (\-Buffer\-::\-Iterator start)}\label{classns3_1_1PLC__Preamble_aa9ac92d12a82c15f2691ea306a5cd714} 17 | 18 | \item 19 | \hypertarget{classns3_1_1PLC__Preamble_a28a95f6dfc0e6fcf939e8e882ae6f3ff}{virtual void {\bfseries \-Print} (std\-::ostream \&os) const }\label{classns3_1_1PLC__Preamble_a28a95f6dfc0e6fcf939e8e882ae6f3ff} 20 | 21 | \end{DoxyCompactItemize} 22 | \subsection*{\-Static \-Public \-Member \-Functions} 23 | \begin{DoxyCompactItemize} 24 | \item 25 | \hypertarget{classns3_1_1PLC__Preamble_ae0b0339a24edbf4067b5c0f5f2c680e7}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__Preamble_ae0b0339a24edbf4067b5c0f5f2c680e7} 26 | 27 | \item 28 | \hypertarget{classns3_1_1PLC__Preamble_ab306dc0c7f41b9d64950c8bbdfe8a2ce}{static void {\bfseries \-Set\-Duration} (\-Time duration)}\label{classns3_1_1PLC__Preamble_ab306dc0c7f41b9d64950c8bbdfe8a2ce} 29 | 30 | \item 31 | \hypertarget{classns3_1_1PLC__Preamble_a7fdd5365617ef74a57d68d901a2fcd0c}{static \-Time {\bfseries \-Get\-Duration} (void)}\label{classns3_1_1PLC__Preamble_a7fdd5365617ef74a57d68d901a2fcd0c} 32 | 33 | \end{DoxyCompactItemize} 34 | 35 | 36 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 37 | \item 38 | model/plc-\/header.\-h\item 39 | model/plc-\/header.\-cc\end{DoxyCompactItemize} 40 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__NoiseFloor.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__NoiseFloor}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Noise\-Floor \-Class \-Reference} 2 | \label{classns3_1_1PLC__NoiseFloor}\index{ns3\-::\-P\-L\-C\-\_\-\-Noise\-Floor@{ns3\-::\-P\-L\-C\-\_\-\-Noise\-Floor}} 3 | } 4 | 5 | 6 | {\ttfamily \#include $<$plc-\/noise.\-h$>$} 7 | 8 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-Noise\-Floor\-:\begin{figure}[H] 9 | \begin{center} 10 | \leavevmode 11 | \includegraphics[height=2.000000cm]{classns3_1_1PLC__NoiseFloor} 12 | \end{center} 13 | \end{figure} 14 | \subsection*{\-Public \-Member \-Functions} 15 | \begin{DoxyCompactItemize} 16 | \item 17 | \hypertarget{classns3_1_1PLC__NoiseFloor_a929e11a1b98a75fe779d710102a8e5ad}{{\bfseries \-P\-L\-C\-\_\-\-Noise\-Floor} (\-Ptr$<$ const \-Spectrum\-Model $>$ sm)}\label{classns3_1_1PLC__NoiseFloor_a929e11a1b98a75fe779d710102a8e5ad} 18 | 19 | \item 20 | \hypertarget{classns3_1_1PLC__NoiseFloor_a83c4f01ccfcd295490e7b80bed8edd20}{{\bfseries \-P\-L\-C\-\_\-\-Noise\-Floor} (\-Ptr$<$ const \-Spectrum\-Model $>$ sm, double const\-\_\-value)}\label{classns3_1_1PLC__NoiseFloor_a83c4f01ccfcd295490e7b80bed8edd20} 21 | 22 | \item 23 | \hypertarget{classns3_1_1PLC__NoiseFloor_a95dd4d649df4e9a200fea6e4789ab51e}{{\bfseries \-P\-L\-C\-\_\-\-Noise\-Floor} (\-Ptr$<$ \-Spectrum\-Value $>$ noise\-Psd)}\label{classns3_1_1PLC__NoiseFloor_a95dd4d649df4e9a200fea6e4789ab51e} 24 | 25 | \item 26 | \hypertarget{classns3_1_1PLC__NoiseFloor_aeceb1c5d56a20c44fec0714861ae81ef}{\-Ptr$<$ \-Spectrum\-Value $>$ {\bfseries \-Get\-Noise\-Psd} (void)}\label{classns3_1_1PLC__NoiseFloor_aeceb1c5d56a20c44fec0714861ae81ef} 27 | 28 | \item 29 | \hypertarget{classns3_1_1PLC__NoiseFloor_acbac0d9043687dd2fc66260a01e642ec}{void {\bfseries \-Set\-Noise\-Psd} (\-Ptr$<$ \-Spectrum\-Value $>$ noise\-Psd)}\label{classns3_1_1PLC__NoiseFloor_acbac0d9043687dd2fc66260a01e642ec} 30 | 31 | \end{DoxyCompactItemize} 32 | \subsection*{\-Protected \-Attributes} 33 | \begin{DoxyCompactItemize} 34 | \item 35 | \hypertarget{classns3_1_1PLC__NoiseFloor_af46ff8903a05607566f42262dfd80d13}{\-Ptr$<$ \-Spectrum\-Value $>$ {\bfseries m\-\_\-noise\-Psd}}\label{classns3_1_1PLC__NoiseFloor_af46ff8903a05607566f42262dfd80d13} 36 | 37 | \end{DoxyCompactItemize} 38 | 39 | 40 | \subsection{\-Detailed \-Description} 41 | \-Helper class for noise floor generation 42 | 43 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 44 | \item 45 | model/plc-\/noise.\-h\item 46 | model/plc-\/noise.\-cc\end{DoxyCompactItemize} 47 | -------------------------------------------------------------------------------- /doc/html/search/all_69.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['init',['Init',['../classns3_1_1PLC__NoiseSource.html#a3ab9d89fc6110f80ba8771bd65813f94',1,'ns3::PLC_NoiseSource']]], 4 | ['initedgetransferfactor',['InitEdgeTransferFactor',['../classns3_1_1PLC__Edge.html#a99a343e65fcbc15350c8deb977535c5c',1,'ns3::PLC_Edge']]], 5 | ['initializechanneltransferimpls',['InitializeChannelTransferImpls',['../classns3_1_1PLC__TxInterface.html#ad6c95936608eeb3b081f9b8eb5e46c87',1,'ns3::PLC_TxInterface']]], 6 | ['initializechanneltransfervector',['InitializeChannelTransferVector',['../classns3_1_1PLC__ChannelTransferImpl.html#ae91aa6f04d300ad7c246e797540aed69',1,'ns3::PLC_ChannelTransferImpl']]], 7 | ['inittransmissionchannels',['InitTransmissionChannels',['../classns3_1_1PLC__Channel.html#a9210af0d915d96817f77e21000deb5a5',1,'ns3::PLC_Channel']]], 8 | ['isbusy',['IsBusy',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#a39ba28f6194b993dbc5b688a419a820d',1,'ns3::PLC_HalfDuplexOfdmPhy']]], 9 | ['isedgetransferfactorup2date',['IsEdgeTransferFactorUp2Date',['../classns3_1_1PLC__Edge.html#a32ee8533ac45cf7de4a8dbcf6ea082c3',1,'ns3::PLC_Edge']]], 10 | ['isenabled',['IsEnabled',['../classns3_1_1PLC__NoiseSource.html#a4c3b2917a7f6ccd83b1f1db98d3b4d8b',1,'ns3::PLC_NoiseSource']]], 11 | ['isinputimpedanceup2date',['IsInputImpedanceUp2Date',['../classns3_1_1PLC__Edge.html#ace741bd174171405f05cc8f67aa12464',1,'ns3::PLC_Edge']]], 12 | ['isopencircuit',['IsOpenCircuit',['../classns3_1_1PLC__Node.html#a6298bba852b3af995dcc7cfc63ffd290',1,'ns3::PLC_Node']]], 13 | ['istimevariant',['IsTimeVariant',['../classns3_1_1PLC__BackboneBranch.html#a0d7422e7b9c34586641d5ac3724aa77d',1,'ns3::PLC_BackboneBranch::IsTimeVariant()'],['../classns3_1_1PLC__EdgeTransferUnit.html#a720b5892580b59087166d65ee9047521',1,'ns3::PLC_EdgeTransferUnit::IsTimeVariant()'],['../classns3_1_1PLC__ChannelTransferImpl.html#a0df21d5b8842358a4f8e23ee07dc0fdd',1,'ns3::PLC_ChannelTransferImpl::IsTimeVariant()'],['../classns3_1_1PLC__Node.html#a07aa4b7127953ab3285c50d00ebd550d',1,'ns3::PLC_Node::IsTimeVariant()'],['../classns3_1_1PLC__Outlet.html#a36a30f5393c98fb09da8b97b74bb50d3',1,'ns3::PLC_Outlet::IsTimeVariant()']]], 14 | ['isup2date',['IsUp2Date',['../classns3_1_1PLC__BackboneBranch.html#acdb29c19ea9a36c0078cb4f46e09ac97',1,'ns3::PLC_BackboneBranch::IsUp2Date()'],['../classns3_1_1PLC__EdgeTransferUnit.html#ad71b374a26276cf8187e14e25642f4e9',1,'ns3::PLC_EdgeTransferUnit::IsUp2Date()'],['../classns3_1_1PLC__ChannelTransferImpl.html#a1c2c55cbc8fee287bb9957f7280ba06c',1,'ns3::PLC_ChannelTransferImpl::IsUp2Date()']]] 15 | ]; 16 | -------------------------------------------------------------------------------- /doc/html/search/functions_69.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['init',['Init',['../classns3_1_1PLC__NoiseSource.html#a3ab9d89fc6110f80ba8771bd65813f94',1,'ns3::PLC_NoiseSource']]], 4 | ['initedgetransferfactor',['InitEdgeTransferFactor',['../classns3_1_1PLC__Edge.html#a99a343e65fcbc15350c8deb977535c5c',1,'ns3::PLC_Edge']]], 5 | ['initializechanneltransferimpls',['InitializeChannelTransferImpls',['../classns3_1_1PLC__TxInterface.html#ad6c95936608eeb3b081f9b8eb5e46c87',1,'ns3::PLC_TxInterface']]], 6 | ['initializechanneltransfervector',['InitializeChannelTransferVector',['../classns3_1_1PLC__ChannelTransferImpl.html#ae91aa6f04d300ad7c246e797540aed69',1,'ns3::PLC_ChannelTransferImpl']]], 7 | ['inittransmissionchannels',['InitTransmissionChannels',['../classns3_1_1PLC__Channel.html#a9210af0d915d96817f77e21000deb5a5',1,'ns3::PLC_Channel']]], 8 | ['isbusy',['IsBusy',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#a39ba28f6194b993dbc5b688a419a820d',1,'ns3::PLC_HalfDuplexOfdmPhy']]], 9 | ['isedgetransferfactorup2date',['IsEdgeTransferFactorUp2Date',['../classns3_1_1PLC__Edge.html#a32ee8533ac45cf7de4a8dbcf6ea082c3',1,'ns3::PLC_Edge']]], 10 | ['isenabled',['IsEnabled',['../classns3_1_1PLC__NoiseSource.html#a4c3b2917a7f6ccd83b1f1db98d3b4d8b',1,'ns3::PLC_NoiseSource']]], 11 | ['isinputimpedanceup2date',['IsInputImpedanceUp2Date',['../classns3_1_1PLC__Edge.html#ace741bd174171405f05cc8f67aa12464',1,'ns3::PLC_Edge']]], 12 | ['isopencircuit',['IsOpenCircuit',['../classns3_1_1PLC__Node.html#a6298bba852b3af995dcc7cfc63ffd290',1,'ns3::PLC_Node']]], 13 | ['istimevariant',['IsTimeVariant',['../classns3_1_1PLC__BackboneBranch.html#a0d7422e7b9c34586641d5ac3724aa77d',1,'ns3::PLC_BackboneBranch::IsTimeVariant()'],['../classns3_1_1PLC__EdgeTransferUnit.html#a720b5892580b59087166d65ee9047521',1,'ns3::PLC_EdgeTransferUnit::IsTimeVariant()'],['../classns3_1_1PLC__ChannelTransferImpl.html#a0df21d5b8842358a4f8e23ee07dc0fdd',1,'ns3::PLC_ChannelTransferImpl::IsTimeVariant()'],['../classns3_1_1PLC__Node.html#a07aa4b7127953ab3285c50d00ebd550d',1,'ns3::PLC_Node::IsTimeVariant()'],['../classns3_1_1PLC__Outlet.html#a36a30f5393c98fb09da8b97b74bb50d3',1,'ns3::PLC_Outlet::IsTimeVariant()']]], 14 | ['isup2date',['IsUp2Date',['../classns3_1_1PLC__BackboneBranch.html#acdb29c19ea9a36c0078cb4f46e09ac97',1,'ns3::PLC_BackboneBranch::IsUp2Date()'],['../classns3_1_1PLC__EdgeTransferUnit.html#ad71b374a26276cf8187e14e25642f4e9',1,'ns3::PLC_EdgeTransferUnit::IsUp2Date()'],['../classns3_1_1PLC__ChannelTransferImpl.html#a1c2c55cbc8fee287bb9957f7280ba06c',1,'ns3::PLC_ChannelTransferImpl::IsUp2Date()']]] 15 | ]; 16 | -------------------------------------------------------------------------------- /doc/plc.rst: -------------------------------------------------------------------------------- 1 | Example Module Documentation 2 | ---------------------------- 3 | 4 | .. heading hierarchy: 5 | ------------- Chapter 6 | ************* Section (#.#) 7 | ============= Subsection (#.#.#) 8 | ############# Paragraph (no number) 9 | 10 | This is a suggested outline for adding new module documentation to ns-3. 11 | See ``src/click/doc/click.rst`` for an example. 12 | 13 | The introductory paragraph is for describing what this code is trying to 14 | model. 15 | 16 | Model Description 17 | ***************** 18 | 19 | The source code for the new module lives in the directory ``src/plc``. 20 | 21 | Add here a basic description of what is being modeled. 22 | 23 | Design 24 | ====== 25 | 26 | Briefly describe the software design of the model and how it fits into 27 | the existing ns-3 architecture. 28 | 29 | Scope and Limitations 30 | ===================== 31 | 32 | What can the model do? What can it not do? Please use this section to 33 | describe the scope and limitations of the model. 34 | 35 | References 36 | ========== 37 | 38 | Add academic citations here, such as if you published a paper on this 39 | model, or if readers should read a particular specification or other work. 40 | 41 | Usage 42 | ***** 43 | 44 | This section is principally concerned with the usage of your model, using 45 | the public API. Focus first on most common usage patterns, then go 46 | into more advanced topics. 47 | 48 | Building New Module 49 | =================== 50 | 51 | Include this subsection only if there are special build instructions or 52 | platform limitations. 53 | 54 | Helpers 55 | ======= 56 | 57 | What helper API will users typically use? Describe it here. 58 | 59 | Attributes 60 | ========== 61 | 62 | What classes hold attributes, and what are the key ones worth mentioning? 63 | 64 | Output 65 | ====== 66 | 67 | What kind of data does the model generate? What are the key trace 68 | sources? What kind of logging output can be enabled? 69 | 70 | Advanced Usage 71 | ============== 72 | 73 | Go into further details (such as using the API outside of the helpers) 74 | in additional sections, as needed. 75 | 76 | Examples 77 | ======== 78 | 79 | What examples using this new code are available? Describe them here. 80 | 81 | Troubleshooting 82 | =============== 83 | 84 | Add any tips for avoiding pitfalls, etc. 85 | 86 | Validation 87 | ********** 88 | 89 | Describe how the model has been tested/validated. What tests run in the 90 | test suite? How much API and code is covered by the tests? Again, 91 | references to outside published work may help here. 92 | -------------------------------------------------------------------------------- /wscript: -------------------------------------------------------------------------------- 1 | # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- 2 | 3 | # def options(opt): 4 | # pass 5 | 6 | def configure(conf): 7 | # conf.check_nonfatal(header_name='stdint.h', define_name='HAVE_STDINT_H') 8 | conf.env.append_value('INCLUDES', ['/usr/local/boost_1_61_0']) 9 | 10 | def build(bld): 11 | module = bld.create_ns3_module('plc', ['core', 'spectrum', 'network']) 12 | module.source = [ 13 | 'model/plc-thread-dispatcher.cc', 14 | 'model/plc-simulator-impl.cc', 15 | 'model/plc-defs.cc', 16 | 'model/plc-time.cc', 17 | 'model/plc-value.cc', 18 | 'model/plc-cable.cc', 19 | 'model/plc-edge.cc', 20 | 'model/plc-node.cc', 21 | 'model/plc-graph.cc', 22 | 'model/plc-channel.cc', 23 | 'model/plc-backbone.cc', 24 | 'model/plc-outlet.cc', 25 | 'model/plc-interface.cc', 26 | 'model/plc-noise.cc', 27 | 'model/plc-dcmc-capacity.cc', 28 | 'model/plc-link-performance-model.cc', 29 | 'model/plc-interference.cc', 30 | 'model/plc-header.cc', 31 | 'model/plc-phy.cc', 32 | 'model/plc-mac.cc', 33 | 'model/plc-net-device.cc', 34 | 'helper/plc-helper.cc', 35 | 'helper/plc-spectrum-helper.cc', 36 | 'helper/plc-device-helper.cc', 37 | 'helper/plc-output-helper.cc', 38 | 'helper/plc-trace-helper.cc', 39 | ] 40 | 41 | module_test = bld.create_ns3_module_test_library('plc') 42 | module_test.source = [ 43 | 'test/plc-test-suite.cc', 44 | ] 45 | 46 | # Enable multiprocessing 47 | module.env.append_value('CXXFLAGS', ['-fopenmp']) 48 | module.env.append_value('LINKFLAGS', ['-fopenmp']) 49 | 50 | headers = bld(features='ns3header') 51 | headers.module = 'plc' 52 | headers.source = [ 53 | 'model/plc-thread-dispatcher.h', 54 | 'model/plc-simulator-impl.h', 55 | 'model/plc.h', 56 | 'model/plc-defs.h', 57 | 'model/plc-time.h', 58 | 'model/plc-value.h', 59 | 'model/plc-cable.h', 60 | 'model/plc-edge.h', 61 | 'model/plc-node.h', 62 | 'model/plc-graph.h', 63 | 'model/plc-visitor.h', 64 | 'model/plc-channel.h', 65 | 'model/plc-backbone.h', 66 | 'model/plc-outlet.h', 67 | 'model/plc-interface.h', 68 | 'model/plc-undirected-dfs.h', 69 | 'model/plc-noise.h', 70 | 'model/plc-dcmc-capacity.h', 71 | 'model/plc-link-performance-model.h', 72 | 'model/plc-interference.h', 73 | 'model/plc-header.h', 74 | 'model/plc-phy.h', 75 | 'model/plc-mac.h', 76 | 'model/plc-net-device.h', 77 | 'helper/plc-spectrum-helper.h', 78 | 'helper/plc-helper.h', 79 | 'helper/plc-device-helper.h', 80 | 'helper/plc-output-helper.h', 81 | 'helper/plc-trace-helper.h', 82 | ] 83 | 84 | if bld.env.ENABLE_EXAMPLES: 85 | bld.recurse('examples') 86 | 87 | bld.ns3_python_bindings() 88 | 89 | 90 | -------------------------------------------------------------------------------- /model/plc-interference.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 | /* 3 | * Copyright (c) 2012 University of British Columbia, Vancouver 4 | * 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 7 | * published by the Free Software Foundation; 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | * 18 | * Author: Alexander Schloegl 19 | */ 20 | 21 | #ifndef PLC_INTERFERENCE_H_ 22 | #define PLC_INTERFERENCE_H_ 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | 29 | namespace ns3 { 30 | 31 | /** 32 | * This class implements a gaussian interference model, i.e., all 33 | * incoming signals are added to the total interference. 34 | */ 35 | class PLC_Interference : public Object 36 | { 37 | public: 38 | static TypeId GetTypeId(void); 39 | 40 | PLC_Interference(); 41 | 42 | void SetNoiseFloor(Ptr noiseFloor); 43 | Ptr GetNoiseFloor(void) { return m_noiseFloor; } 44 | 45 | void InitializeRx (Ptr rxPsd); 46 | void AlterRxSignal (Ptr rxSignal); 47 | void EndRx(void); 48 | 49 | void AddInterferenceSignal (Ptr spd); 50 | void RemoveInterferenceSignal (Ptr spd); 51 | 52 | Ptr GetSinr(void); 53 | double GetTotalRxPower(void); 54 | double GetMeanRxPower(void); 55 | double GetTotalNoisePower(void); 56 | 57 | void SetSinrBase(Ptr baseSinr); 58 | Ptr GetSinrBase(void); 59 | 60 | private: 61 | void DoDispose (); 62 | 63 | void CalcSinr(void); 64 | 65 | bool m_receiving; 66 | 67 | Ptr m_allSignals; 68 | Ptr m_rxSignal; 69 | Ptr m_noiseSignals; 70 | Ptr m_noiseFloor; 71 | Ptr m_sinr; 72 | Ptr m_sinr_base; 73 | 74 | TracedCallback > m_sumSignalTracer; 75 | TracedCallback > m_rxSignalTracer; 76 | TracedCallback > m_noiseSignalTracer; 77 | TracedCallback > m_SinrTracer; 78 | }; 79 | 80 | } 81 | 82 | #endif /* PLC_INTERFERENCE_H_ */ 83 | -------------------------------------------------------------------------------- /doc/latex/structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Time\-Variant\-Freq\-Selective\-Value\-:\-:\-P\-L\-C\-\_\-\-Time\-Variant\-Param\-Set \-Struct \-Reference} 2 | \label{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet}\index{ns3\-::\-P\-L\-C\-\_\-\-Time\-Variant\-Freq\-Selective\-Value\-::\-P\-L\-C\-\_\-\-Time\-Variant\-Param\-Set@{ns3\-::\-P\-L\-C\-\_\-\-Time\-Variant\-Freq\-Selective\-Value\-::\-P\-L\-C\-\_\-\-Time\-Variant\-Param\-Set}} 3 | } 4 | \subsection*{\-Public \-Attributes} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_a8be3dd19c13e1141f8a17376c8a9278a}{double {\bfseries \-R\-\_\-offset}}\label{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_a8be3dd19c13e1141f8a17376c8a9278a} 8 | 9 | \item 10 | \hypertarget{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_a178a0d2a00a4dc11521994d2c756c725}{double {\bfseries \-Q\-\_\-offset}}\label{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_a178a0d2a00a4dc11521994d2c756c725} 11 | 12 | \item 13 | \hypertarget{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_acd2b28b34a38dc02c6b172072cbd04ef}{double {\bfseries f\-\_\-0\-\_\-offset}}\label{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_acd2b28b34a38dc02c6b172072cbd04ef} 14 | 15 | \item 16 | \hypertarget{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_a42127b0f9695ec6447ff34ba49aff62f}{double {\bfseries \-R\-\_\-amplitude}}\label{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_a42127b0f9695ec6447ff34ba49aff62f} 17 | 18 | \item 19 | \hypertarget{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_a6a54a6b9b3b261cc63c6dcaa5a540345}{double {\bfseries \-Q\-\_\-amplitude}}\label{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_a6a54a6b9b3b261cc63c6dcaa5a540345} 20 | 21 | \item 22 | \hypertarget{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_ae624277aaa5a8c3c442e2a7c65d9dce1}{double {\bfseries f0\-\_\-amplitude}}\label{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_ae624277aaa5a8c3c442e2a7c65d9dce1} 23 | 24 | \item 25 | \hypertarget{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_a7d867ab0f9d8855f6141b233973cfbaa}{double {\bfseries phi}}\label{structns3_1_1PLC__TimeVariantFreqSelectiveValue_1_1PLC__TimeVariantParamSet_a7d867ab0f9d8855f6141b233973cfbaa} 26 | 27 | \end{DoxyCompactItemize} 28 | 29 | 30 | \-The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 31 | \item 32 | model/plc-\/value.\-h\end{DoxyCompactItemize} 33 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ChaseCombiningPhy.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__ChaseCombiningPhy}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Chase\-Combining\-Phy \-Class \-Reference} 2 | \label{classns3_1_1PLC__ChaseCombiningPhy}\index{ns3\-::\-P\-L\-C\-\_\-\-Chase\-Combining\-Phy@{ns3\-::\-P\-L\-C\-\_\-\-Chase\-Combining\-Phy}} 3 | } 4 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-Chase\-Combining\-Phy\-:\begin{figure}[H] 5 | \begin{center} 6 | \leavevmode 7 | \includegraphics[height=4.000000cm]{classns3_1_1PLC__ChaseCombiningPhy} 8 | \end{center} 9 | \end{figure} 10 | \subsection*{\-Public \-Member \-Functions} 11 | \begin{DoxyCompactItemize} 12 | \item 13 | \hypertarget{classns3_1_1PLC__ChaseCombiningPhy_a3f6ef56bfe7ca596b7cea28d55062b6e}{void {\bfseries \-Update\-Sinr\-Base} (\-Ptr$<$ const \-Spectrum\-Value $>$ new\-Sinr\-Base)}\label{classns3_1_1PLC__ChaseCombiningPhy_a3f6ef56bfe7ca596b7cea28d55062b6e} 14 | 15 | \item 16 | \hypertarget{classns3_1_1PLC__ChaseCombiningPhy_ad0e1aff9fda496009bb40443ddcc9f65}{void {\bfseries \-Trace\-Sinr} (\-Time t, \-Ptr$<$ const \-Spectrum\-Value $>$ sinr)}\label{classns3_1_1PLC__ChaseCombiningPhy_ad0e1aff9fda496009bb40443ddcc9f65} 17 | 18 | \end{DoxyCompactItemize} 19 | \subsection*{\-Static \-Public \-Member \-Functions} 20 | \begin{DoxyCompactItemize} 21 | \item 22 | \hypertarget{classns3_1_1PLC__ChaseCombiningPhy_a5353e7770f41b5bb42bc4b8c769b0b35}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__ChaseCombiningPhy_a5353e7770f41b5bb42bc4b8c769b0b35} 23 | 24 | \end{DoxyCompactItemize} 25 | \subsection*{\-Protected \-Member \-Functions} 26 | \begin{DoxyCompactItemize} 27 | \item 28 | \hypertarget{classns3_1_1PLC__ChaseCombiningPhy_a97c506d8c8d1aa3a0d5ad87c4b4390e0}{virtual void {\bfseries \-Do\-Initialize} (void)}\label{classns3_1_1PLC__ChaseCombiningPhy_a97c506d8c8d1aa3a0d5ad87c4b4390e0} 29 | 30 | \item 31 | \hypertarget{classns3_1_1PLC__ChaseCombiningPhy_a63f2e7dc5bd8afa62741894b71ba5494}{virtual void {\bfseries \-Do\-Dispose} (void)}\label{classns3_1_1PLC__ChaseCombiningPhy_a63f2e7dc5bd8afa62741894b71ba5494} 32 | 33 | \item 34 | \hypertarget{classns3_1_1PLC__ChaseCombiningPhy_ae411682ccc0a51fa2e99bf222f7a0132}{virtual void {\bfseries \-Initialize\-Reception} (\-Ptr$<$ const \-Packet $>$ p, uint32\-\_\-t tx\-Id, \-Ptr$<$ \-Spectrum\-Value $>$ \&rx\-Psd, \-Time duration, \-Ptr$<$ const \hyperlink{classns3_1_1PLC__TrxMetaInfo}{\-P\-L\-C\-\_\-\-Trx\-Meta\-Info} $>$ meta\-Info)}\label{classns3_1_1PLC__ChaseCombiningPhy_ae411682ccc0a51fa2e99bf222f7a0132} 35 | 36 | \item 37 | \hypertarget{classns3_1_1PLC__ChaseCombiningPhy_ab6099530bb694ab9e6912fc5ff6fef2c}{virtual void {\bfseries \-Notify\-Successful\-Reception} (void)}\label{classns3_1_1PLC__ChaseCombiningPhy_ab6099530bb694ab9e6912fc5ff6fef2c} 38 | 39 | \end{DoxyCompactItemize} 40 | 41 | 42 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 43 | \item 44 | model/plc-\/phy.\-h\item 45 | model/plc-\/phy.\-cc\end{DoxyCompactItemize} 46 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ErrorRateModel.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__ErrorRateModel}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Error\-Rate\-Model \-Class \-Reference} 2 | \label{classns3_1_1PLC__ErrorRateModel}\index{ns3\-::\-P\-L\-C\-\_\-\-Error\-Rate\-Model@{ns3\-::\-P\-L\-C\-\_\-\-Error\-Rate\-Model}} 3 | } 4 | 5 | 6 | \-An empirical \-P\-H\-Y abstraction model for emulating block error rates. 7 | 8 | 9 | 10 | 11 | {\ttfamily \#include $<$plc-\/link-\/performance-\/model.\-h$>$} 12 | 13 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-Error\-Rate\-Model\-:\begin{figure}[H] 14 | \begin{center} 15 | \leavevmode 16 | \includegraphics[height=2.000000cm]{classns3_1_1PLC__ErrorRateModel} 17 | \end{center} 18 | \end{figure} 19 | \subsection*{\-Public \-Types} 20 | \begin{DoxyCompactItemize} 21 | \item 22 | enum {\bfseries \-Channel\-Condition} \{ {\bfseries \-E\-X\-C\-E\-L\-L\-E\-N\-T} = 0, 23 | {\bfseries \-G\-O\-O\-D} = 1, 24 | {\bfseries \-M\-E\-D\-I\-U\-M} = 2, 25 | {\bfseries \-B\-A\-D} = 3 26 | \} 27 | \end{DoxyCompactItemize} 28 | \subsection*{\-Public \-Member \-Functions} 29 | \begin{DoxyCompactItemize} 30 | \item 31 | \hypertarget{classns3_1_1PLC__ErrorRateModel_a6daa76899816af728fe3bb6a6006a10f}{{\bfseries \-P\-L\-C\-\_\-\-Error\-Rate\-Model} (\-Time block\-\_\-duration)}\label{classns3_1_1PLC__ErrorRateModel_a6daa76899816af728fe3bb6a6006a10f} 32 | 33 | \item 34 | \hypertarget{classns3_1_1PLC__ErrorRateModel_a4068e6be60a824441ab51663eb73ae8a}{void {\bfseries \-Set\-Channel\-Condition} (\-Channel\-Condition cond)}\label{classns3_1_1PLC__ErrorRateModel_a4068e6be60a824441ab51663eb73ae8a} 35 | 36 | \item 37 | \hypertarget{classns3_1_1PLC__ErrorRateModel_ab96e29d66ba5c8dbd45c19b3730b1aeb}{void {\bfseries \-Set\-Block\-Duration} (\-Time duration)}\label{classns3_1_1PLC__ErrorRateModel_ab96e29d66ba5c8dbd45c19b3730b1aeb} 38 | 39 | \item 40 | \hypertarget{classns3_1_1PLC__ErrorRateModel_abc04c11dbeb086f2e2c056cf657b28df}{\-Time {\bfseries \-Get\-Block\-Duration} (void)}\label{classns3_1_1PLC__ErrorRateModel_abc04c11dbeb086f2e2c056cf657b28df} 41 | 42 | \end{DoxyCompactItemize} 43 | \subsection*{\-Static \-Public \-Member \-Functions} 44 | \begin{DoxyCompactItemize} 45 | \item 46 | \hypertarget{classns3_1_1PLC__ErrorRateModel_af3398bec61b891d0ec93a3eae4aad540}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__ErrorRateModel_af3398bec61b891d0ec93a3eae4aad540} 47 | 48 | \end{DoxyCompactItemize} 49 | 50 | 51 | \subsection{\-Detailed \-Description} 52 | \-An empirical \-P\-H\-Y abstraction model for emulating block error rates. 53 | 54 | \-The implementation is based on the publication\-: \char`\"{}\-P\-H\-Y Abstraction Methology for Performance Evaluation of P\-L\-C Channels\char`\"{}, \-I\-E\-E\-E 2010 by \-K. \-Kim, \-H. \-Lee, \-Y.\-Lee, \-S. \-Kim 55 | 56 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 57 | \item 58 | model/plc-\/link-\/performance-\/model.\-h\item 59 | model/plc-\/link-\/performance-\/model.\-cc\end{DoxyCompactItemize} 60 | -------------------------------------------------------------------------------- /doc/html/installdox: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | %subst = ( ); 4 | $quiet = 0; 5 | 6 | while ( @ARGV ) { 7 | $_ = shift @ARGV; 8 | if ( s/^-// ) { 9 | if ( /^l(.*)/ ) { 10 | $v = ($1 eq "") ? shift @ARGV : $1; 11 | ($v =~ /\/$/) || ($v .= "/"); 12 | $_ = $v; 13 | if ( /(.+)\@(.+)/ ) { 14 | if ( exists $subst{$1} ) { 15 | $subst{$1} = $2; 16 | } else { 17 | print STDERR "Unknown tag file $1 given with option -l\n"; 18 | &usage(); 19 | } 20 | } else { 21 | print STDERR "Argument $_ is invalid for option -l\n"; 22 | &usage(); 23 | } 24 | } 25 | elsif ( /^q/ ) { 26 | $quiet = 1; 27 | } 28 | elsif ( /^\?|^h/ ) { 29 | &usage(); 30 | } 31 | else { 32 | print STDERR "Illegal option -$_\n"; 33 | &usage(); 34 | } 35 | } 36 | else { 37 | push (@files, $_ ); 38 | } 39 | } 40 | 41 | foreach $sub (keys %subst) 42 | { 43 | if ( $subst{$sub} eq "" ) 44 | { 45 | print STDERR "No substitute given for tag file `$sub'\n"; 46 | &usage(); 47 | } 48 | elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) 49 | { 50 | print "Substituting $subst{$sub} for each occurrence of tag file $sub\n"; 51 | } 52 | } 53 | 54 | if ( ! @files ) { 55 | if (opendir(D,".")) { 56 | foreach $file ( readdir(D) ) { 57 | $match = ".html"; 58 | next if ( $file =~ /^\.\.?$/ ); 59 | ($file =~ /$match/) && (push @files, $file); 60 | ($file =~ /\.svg/) && (push @files, $file); 61 | ($file =~ "navtree.js") && (push @files, $file); 62 | } 63 | closedir(D); 64 | } 65 | } 66 | 67 | if ( ! @files ) { 68 | print STDERR "Warning: No input files given and none found!\n"; 69 | } 70 | 71 | foreach $f (@files) 72 | { 73 | if ( ! $quiet ) { 74 | print "Editing: $f...\n"; 75 | } 76 | $oldf = $f; 77 | $f .= ".bak"; 78 | unless (rename $oldf,$f) { 79 | print STDERR "Error: cannot rename file $oldf\n"; 80 | exit 1; 81 | } 82 | if (open(F,"<$f")) { 83 | unless (open(G,">$oldf")) { 84 | print STDERR "Error: opening file $oldf for writing\n"; 85 | exit 1; 86 | } 87 | if ($oldf ne "tree.js") { 88 | while () { 89 | s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (xlink:href|href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; 90 | print G "$_"; 91 | } 92 | } 93 | else { 94 | while () { 95 | s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; 96 | print G "$_"; 97 | } 98 | } 99 | } 100 | else { 101 | print STDERR "Warning file $f does not exist\n"; 102 | } 103 | unlink $f; 104 | } 105 | 106 | sub usage { 107 | print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; 108 | print STDERR "Options:\n"; 109 | print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; 110 | print STDERR " -q Quiet mode\n\n"; 111 | exit 1; 112 | } 113 | -------------------------------------------------------------------------------- /doc/html/search/functions_63.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cacheimpedances',['CacheImpedances',['../classns3_1_1PLC__Edge.html#af260164445e2242de25261b185f62f90',1,'ns3::PLC_Edge']]], 4 | ['calccharimp',['CalcCharImp',['../classns3_1_1PLC__Cable.html#a7496b6ac6c63ce30273bdec71a1bc98b',1,'ns3::PLC_Cable']]], 5 | ['calclineinputimpedance',['CalcLineInputImpedance',['../classns3_1_1PLC__Line.html#aaff1b993c3d103d52dde53155fcb1787',1,'ns3::PLC_Line']]], 6 | ['calctransconst',['CalcTransConst',['../classns3_1_1PLC__Cable.html#a7747327635fcafdbbe8abe9b0db2e3b0',1,'ns3::PLC_Cable']]], 7 | ['calctransmissionchannels',['CalcTransmissionChannels',['../classns3_1_1PLC__Channel.html#a2bb68af9c30a3d0c4f7a264c4e90ddab',1,'ns3::PLC_Channel']]], 8 | ['calculatechannels',['CalculateChannels',['../classns3_1_1PLC__TxInterface.html#a9d5e237a329135b8f73178200f94bbc9',1,'ns3::PLC_TxInterface']]], 9 | ['calculatechanneltransfervector',['CalculateChannelTransferVector',['../classns3_1_1PLC__ChannelTransferImpl.html#ae2d8f97c7f06512573f6c2ee6df8c89f',1,'ns3::PLC_ChannelTransferImpl']]], 10 | ['calculateedgetransferfactor',['CalculateEdgeTransferFactor',['../classns3_1_1PLC__Edge.html#ae2f1a73e1388daf1c98dd0647fed52fd',1,'ns3::PLC_Edge::CalculateEdgeTransferFactor()'],['../classns3_1_1PLC__Line.html#a10f17c1ab8e3d6b32b26886df64259da',1,'ns3::PLC_Line::CalculateEdgeTransferFactor()']]], 11 | ['calculateequivalentbridgetapimpedance',['CalculateEquivalentBridgeTapImpedance',['../classns3_1_1PLC__BackboneBranch.html#adfe4499983e8d55525aacb70a69ffb49',1,'ns3::PLC_BackboneBranch']]], 12 | ['calculateinputimpedance',['CalculateInputImpedance',['../classns3_1_1PLC__Edge.html#a0ad990652f55b19e05ff5dbf7a76b568',1,'ns3::PLC_Edge::CalculateInputImpedance()'],['../classns3_1_1PLC__Line.html#a8e6afa7dbbc769b9dcae32b3929c3c7c',1,'ns3::PLC_Line::CalculateInputImpedance()']]], 13 | ['calculaterxpowerspectraldensity',['CalculateRxPowerSpectralDensity',['../classns3_1_1PLC__ChannelTransferImpl.html#ae57dedf11484bf8dae9519b7736c37db',1,'ns3::PLC_ChannelTransferImpl']]], 14 | ['cancelcca',['CancelCca',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#a16299517e55127bc575d52d6f809ed7b',1,'ns3::PLC_HalfDuplexOfdmPhy']]], 15 | ['ccaconfirm',['CcaConfirm',['../classns3_1_1PLC__CsmaCa.html#afeb3613648b3a99a4aac46443487bc70',1,'ns3::PLC_CsmaCa']]], 16 | ['ccarequest',['CcaRequest',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#aedcd8f1a9400e8a671736fb62fafd340',1,'ns3::PLC_HalfDuplexOfdmPhy']]], 17 | ['changestate',['ChangeState',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#a180d9f91b00a180c05a806b5b65d7e35',1,'ns3::PLC_HalfDuplexOfdmPhy']]], 18 | ['closecircuit',['CloseCircuit',['../classns3_1_1PLC__Node.html#af6560be99ff6e16d432a0e41faed79ea',1,'ns3::PLC_Node']]], 19 | ['createbackbonepath',['CreateBackbonePath',['../classns3_1_1PLC__ChannelTransferImpl.html#a582253c799d69225502e5ac42b982124',1,'ns3::PLC_ChannelTransferImpl']]], 20 | ['createinterfaces',['CreateInterfaces',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#aa8188f7d1e0a2f97486764f372dd3ec5',1,'ns3::PLC_HalfDuplexOfdmPhy']]], 21 | ['createplcgraph',['CreatePLCGraph',['../classns3_1_1PLC__Graph.html#ae319e64246156050fd7c19f165db1993',1,'ns3::PLC_Graph']]] 22 | ]; 23 | -------------------------------------------------------------------------------- /model/plc-time.cc: -------------------------------------------------------------------------------- 1 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 | /* 3 | * Copyright (c) 2012 University of British Columbia, Vancouver 4 | * 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 7 | * published by the Free Software Foundation; 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | * 18 | * Author: Alexander Schloegl 19 | */ 20 | 21 | #include 22 | #include "plc-time.h" 23 | #include "plc-phy.h" 24 | #include "plc-simulator-impl.h" 25 | 26 | namespace ns3 { 27 | 28 | double PLC_Time::g_mainsFreq = 50; 29 | double PLC_Time::g_period_s = 0.02; 30 | double PLC_Time::g_resolution_s = 100e-6; 31 | Time PLC_Time::g_period = MilliSeconds(20); 32 | size_t PLC_Time::g_timeslots = 200; 33 | Time PLC_Time::g_resolution = MicroSeconds(100); 34 | 35 | void 36 | PLC_Time::SetTimeModel(double mainsFreq, size_t timeslots) 37 | { 38 | g_mainsFreq = mainsFreq; 39 | g_timeslots = timeslots; 40 | 41 | g_period_s = 1 / mainsFreq; 42 | g_period = Time::FromDouble(g_period_s, Time::S); 43 | NS_ASSERT(g_period > 0); 44 | 45 | g_resolution_s = g_period_s / timeslots; 46 | Time g_resolution = Time::FromDouble(g_resolution_s, Time::S); 47 | 48 | // Ptr simImpl = CreateObject (); 49 | // Simulator::SetImplementation(simImpl); 50 | PLC_Phy::SetSymbolDuration(g_resolution); 51 | } 52 | 53 | void 54 | PLC_Time::SetTimeModel(double mainsFreq, Time tSymbol) 55 | { 56 | g_mainsFreq = mainsFreq; 57 | g_period_s = 1 / mainsFreq; 58 | g_timeslots = ceil(g_period_s / tSymbol.GetSeconds()); 59 | 60 | g_period = Time::FromDouble(g_period_s, Time::S); 61 | NS_ASSERT(g_period > 0); 62 | 63 | g_resolution_s = tSymbol.GetDouble(); 64 | 65 | // Ptr simImpl = CreateObject (); 66 | // Simulator::SetImplementation(simImpl); 67 | PLC_Phy::SetSymbolDuration(tSymbol); 68 | } 69 | 70 | void 71 | PLC_Time::SetTimeModel(double mainsFreq, size_t timeslots, Time tSymbol) 72 | { 73 | g_mainsFreq = mainsFreq; 74 | g_timeslots = timeslots; 75 | 76 | g_period_s = 1 / mainsFreq; 77 | g_period = Time::FromDouble(g_period_s, Time::S); 78 | NS_ASSERT(g_period > 0); 79 | 80 | g_resolution_s = g_period_s / timeslots; 81 | Time g_resolution = Time::FromDouble(g_resolution_s, Time::S); 82 | NS_ASSERT(tSymbol >= g_resolution); 83 | 84 | // Ptr simImpl = CreateObject (); 85 | // Simulator::SetImplementation(simImpl); 86 | PLC_Phy::SetSymbolDuration(tSymbol); 87 | } 88 | 89 | Timeslot 90 | PLC_Time::GetTimeslot(Time t) 91 | { 92 | Timeslot ret = (Timeslot) floor(fmod(t.GetSeconds(), g_period_s) / g_resolution_s); 93 | NS_ASSERT(ret < g_timeslots); 94 | return ret; 95 | } 96 | 97 | } 98 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__TrxMetaInfo.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__TrxMetaInfo}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Trx\-Meta\-Info \-Class \-Reference} 2 | \label{classns3_1_1PLC__TrxMetaInfo}\index{ns3\-::\-P\-L\-C\-\_\-\-Trx\-Meta\-Info@{ns3\-::\-P\-L\-C\-\_\-\-Trx\-Meta\-Info}} 3 | } 4 | \subsection*{\-Public \-Member \-Functions} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{classns3_1_1PLC__TrxMetaInfo_a402652c9d491f4031b5398dfd0abc5ca}{void {\bfseries \-Set\-Uncoded\-Packet} (\-Ptr$<$ const \-Packet $>$ p)}\label{classns3_1_1PLC__TrxMetaInfo_a402652c9d491f4031b5398dfd0abc5ca} 8 | 9 | \item 10 | \hypertarget{classns3_1_1PLC__TrxMetaInfo_a140172d44065273da021a45c0fb91c00}{\-Ptr$<$ const \-Packet $>$ {\bfseries \-Get\-Uncoded\-Packet} (void) const }\label{classns3_1_1PLC__TrxMetaInfo_a140172d44065273da021a45c0fb91c00} 11 | 12 | \item 13 | \hypertarget{classns3_1_1PLC__TrxMetaInfo_a88c8d81c8aedb3146052f6f1caf31fc1}{void {\bfseries \-Set\-Header\-Mcs} (\-Modulation\-And\-Coding\-Type mcs)}\label{classns3_1_1PLC__TrxMetaInfo_a88c8d81c8aedb3146052f6f1caf31fc1} 14 | 15 | \item 16 | \hypertarget{classns3_1_1PLC__TrxMetaInfo_a05f0faf3b7efd534863952652658b29b}{\-Modulation\-And\-Coding\-Type {\bfseries \-Get\-Header\-Mcs} (void) const }\label{classns3_1_1PLC__TrxMetaInfo_a05f0faf3b7efd534863952652658b29b} 17 | 18 | \item 19 | \hypertarget{classns3_1_1PLC__TrxMetaInfo_a747656c0bcf8b7eb03c4485122052c53}{void {\bfseries \-Set\-Payload\-Mcs} (\-Modulation\-And\-Coding\-Type mcs)}\label{classns3_1_1PLC__TrxMetaInfo_a747656c0bcf8b7eb03c4485122052c53} 20 | 21 | \item 22 | \hypertarget{classns3_1_1PLC__TrxMetaInfo_a430eb4934e82ee8678b6168d97c9639a}{\-Modulation\-And\-Coding\-Type {\bfseries \-Get\-Payload\-Mcs} (void) const }\label{classns3_1_1PLC__TrxMetaInfo_a430eb4934e82ee8678b6168d97c9639a} 23 | 24 | \item 25 | \hypertarget{classns3_1_1PLC__TrxMetaInfo_a1210dfb0c748932aafa45c1db399016b}{void {\bfseries \-Set\-Header\-Duration} (\-Time duration)}\label{classns3_1_1PLC__TrxMetaInfo_a1210dfb0c748932aafa45c1db399016b} 26 | 27 | \item 28 | \hypertarget{classns3_1_1PLC__TrxMetaInfo_a7ca57747bbd5c2fcea961067cdd6bd6e}{\-Time {\bfseries \-Get\-Header\-Duration} (void) const }\label{classns3_1_1PLC__TrxMetaInfo_a7ca57747bbd5c2fcea961067cdd6bd6e} 29 | 30 | \item 31 | \hypertarget{classns3_1_1PLC__TrxMetaInfo_ac854a6d532d03c310af7986bef052008}{void {\bfseries \-Set\-Payload\-Duration} (\-Time duration)}\label{classns3_1_1PLC__TrxMetaInfo_ac854a6d532d03c310af7986bef052008} 32 | 33 | \item 34 | \hypertarget{classns3_1_1PLC__TrxMetaInfo_af41e702d75de8518661fc4a019dd211b}{\-Time {\bfseries \-Get\-Payload\-Duration} (void) const }\label{classns3_1_1PLC__TrxMetaInfo_af41e702d75de8518661fc4a019dd211b} 35 | 36 | \end{DoxyCompactItemize} 37 | \subsection*{\-Static \-Public \-Member \-Functions} 38 | \begin{DoxyCompactItemize} 39 | \item 40 | \hypertarget{classns3_1_1PLC__TrxMetaInfo_acfa8aebc59d7723a5666c2696efd83a3}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__TrxMetaInfo_acfa8aebc59d7723a5666c2696efd83a3} 41 | 42 | \end{DoxyCompactItemize} 43 | 44 | 45 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 46 | \item 47 | model/plc-\/channel.\-h\item 48 | model/plc-\/channel.\-cc\end{DoxyCompactItemize} 49 | -------------------------------------------------------------------------------- /doc/html/search/all_63.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['c',['C',['../classns3_1_1PLC__Cable.html#a2443b8723d75123547011498d535fe48',1,'ns3::PLC_Cable']]], 4 | ['cacheimpedances',['CacheImpedances',['../classns3_1_1PLC__Edge.html#af260164445e2242de25261b185f62f90',1,'ns3::PLC_Edge']]], 5 | ['calccharimp',['CalcCharImp',['../classns3_1_1PLC__Cable.html#a7496b6ac6c63ce30273bdec71a1bc98b',1,'ns3::PLC_Cable']]], 6 | ['calclineinputimpedance',['CalcLineInputImpedance',['../classns3_1_1PLC__Line.html#aaff1b993c3d103d52dde53155fcb1787',1,'ns3::PLC_Line']]], 7 | ['calctransconst',['CalcTransConst',['../classns3_1_1PLC__Cable.html#a7747327635fcafdbbe8abe9b0db2e3b0',1,'ns3::PLC_Cable']]], 8 | ['calctransmissionchannels',['CalcTransmissionChannels',['../classns3_1_1PLC__Channel.html#a2bb68af9c30a3d0c4f7a264c4e90ddab',1,'ns3::PLC_Channel']]], 9 | ['calculatechannels',['CalculateChannels',['../classns3_1_1PLC__TxInterface.html#a9d5e237a329135b8f73178200f94bbc9',1,'ns3::PLC_TxInterface']]], 10 | ['calculatechanneltransfervector',['CalculateChannelTransferVector',['../classns3_1_1PLC__ChannelTransferImpl.html#ae2d8f97c7f06512573f6c2ee6df8c89f',1,'ns3::PLC_ChannelTransferImpl']]], 11 | ['calculateedgetransferfactor',['CalculateEdgeTransferFactor',['../classns3_1_1PLC__Edge.html#ae2f1a73e1388daf1c98dd0647fed52fd',1,'ns3::PLC_Edge::CalculateEdgeTransferFactor()'],['../classns3_1_1PLC__Line.html#a10f17c1ab8e3d6b32b26886df64259da',1,'ns3::PLC_Line::CalculateEdgeTransferFactor()']]], 12 | ['calculateequivalentbridgetapimpedance',['CalculateEquivalentBridgeTapImpedance',['../classns3_1_1PLC__BackboneBranch.html#adfe4499983e8d55525aacb70a69ffb49',1,'ns3::PLC_BackboneBranch']]], 13 | ['calculateinputimpedance',['CalculateInputImpedance',['../classns3_1_1PLC__Edge.html#a0ad990652f55b19e05ff5dbf7a76b568',1,'ns3::PLC_Edge::CalculateInputImpedance()'],['../classns3_1_1PLC__Line.html#a8e6afa7dbbc769b9dcae32b3929c3c7c',1,'ns3::PLC_Line::CalculateInputImpedance()']]], 14 | ['calculaterxpowerspectraldensity',['CalculateRxPowerSpectralDensity',['../classns3_1_1PLC__ChannelTransferImpl.html#ae57dedf11484bf8dae9519b7736c37db',1,'ns3::PLC_ChannelTransferImpl']]], 15 | ['cancelcca',['CancelCca',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#a16299517e55127bc575d52d6f809ed7b',1,'ns3::PLC_HalfDuplexOfdmPhy']]], 16 | ['ccaconfirm',['CcaConfirm',['../classns3_1_1PLC__CsmaCa.html#afeb3613648b3a99a4aac46443487bc70',1,'ns3::PLC_CsmaCa']]], 17 | ['ccarequest',['CcaRequest',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#aedcd8f1a9400e8a671736fb62fafd340',1,'ns3::PLC_HalfDuplexOfdmPhy']]], 18 | ['changestate',['ChangeState',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#a180d9f91b00a180c05a806b5b65d7e35',1,'ns3::PLC_HalfDuplexOfdmPhy']]], 19 | ['closecircuit',['CloseCircuit',['../classns3_1_1PLC__Node.html#af6560be99ff6e16d432a0e41faed79ea',1,'ns3::PLC_Node']]], 20 | ['createbackbonepath',['CreateBackbonePath',['../classns3_1_1PLC__ChannelTransferImpl.html#a582253c799d69225502e5ac42b982124',1,'ns3::PLC_ChannelTransferImpl']]], 21 | ['createinterfaces',['CreateInterfaces',['../classns3_1_1PLC__HalfDuplexOfdmPhy.html#aa8188f7d1e0a2f97486764f372dd3ec5',1,'ns3::PLC_HalfDuplexOfdmPhy']]], 22 | ['createplcgraph',['CreatePLCGraph',['../classns3_1_1PLC__Graph.html#ae319e64246156050fd7c19f165db1993',1,'ns3::PLC_Graph']]] 23 | ]; 24 | -------------------------------------------------------------------------------- /helper/plc-device-helper.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 | /* 3 | * Copyright (c) 2012 University of British Columbia, Vancouver 4 | * 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 7 | * published by the Free Software Foundation; 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | * 18 | * Author: Alexander Schloegl 19 | */ 20 | 21 | #ifndef PLC_DEVICE_HELPER_H_ 22 | #define PLC_DEVICE_HELPER_H_ 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include "ns3/net-device-container.h" 29 | #include "ns3/plc-node.h" 30 | #include "ns3/plc-outlet.h" 31 | #include "ns3/plc-noise.h" 32 | #include "ns3/plc-edge.h" 33 | #include "ns3/plc-net-device.h" 34 | #include "ns3/plc-channel.h" 35 | #include "ns3/plc-link-performance-model.h" 36 | #include "ns3/plc-phy.h" 37 | #include "ns3/plc-mac.h" 38 | 39 | namespace ns3 { 40 | 41 | class PLC_NetDeviceHelper : public Object 42 | { 43 | public: 44 | static TypeId GetTypeId(void); 45 | 46 | PLC_NetDeviceHelper(Ptr sm, Ptr txPsd, PLC_NodeList& netdevices); 47 | 48 | void DefinePhyType(TypeId tid); 49 | void DefineMacType(TypeId tid); 50 | 51 | void SetNoiseFloor(Ptr psd) { m_noiseFloor = psd; } 52 | void SetTxPowerSpectralDensity(Ptr txPsd) { m_txPsd = txPsd; } 53 | void SetRxImpedance(Ptr rxImpedance); 54 | void SetTxImpedance(Ptr txImpedance); 55 | Ptr GetRxImpedance(void) { return m_rxImpedance; } 56 | Ptr GetTxImpedance(void) { return m_txImpedance; } 57 | void SetHeaderModulationAndCodingScheme(ModulationAndCodingScheme mcs) { m_header_mcs = mcs; } 58 | void SetPayloadModulationAndCodingScheme(ModulationAndCodingScheme mcs) { m_payload_mcs = mcs; } 59 | 60 | void Setup(void); 61 | 62 | void CreateNodes(bool create) { m_create_nodes = create; } 63 | 64 | Ptr GetDevice(std::string name); 65 | 66 | NodeContainer GetNS3Nodes (void); 67 | NetDeviceContainer GetNetDevices (void); 68 | 69 | PLC_NetdeviceMap GetNetdeviceMap(void) { return m_netdeviceMap; } 70 | 71 | private: 72 | Ptr m_spectrum_model; 73 | Ptr m_channel; 74 | Ptr m_txPsd; 75 | PLC_NodeList m_netdevice_nodes; 76 | Ptr m_noiseFloor; 77 | Ptr m_rxImpedance; 78 | Ptr m_txImpedance; 79 | ModulationAndCodingScheme m_header_mcs; 80 | ModulationAndCodingScheme m_payload_mcs; 81 | TypeId m_phyTid; 82 | TypeId m_macTid; 83 | bool m_create_nodes; 84 | 85 | PLC_NetdeviceMap m_netdeviceMap; 86 | }; 87 | 88 | } 89 | 90 | #endif /* PLC_DEVICE_HELPER_H_ */ 91 | -------------------------------------------------------------------------------- /model/plc-simulator-impl.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 | /* 3 | * Copyright (c) 2012 University of British Columbia, Vancouver 4 | * 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 7 | * published by the Free Software Foundation; 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | * 18 | * Author: Mathieu Lacage 19 | * Modified by: Alexander Schloegl 20 | */ 21 | 22 | #ifndef PLC_SIMULATOR_IMPL_H_ 23 | #define PLC_SIMULATOR_IMPL_H_ 24 | 25 | #include "ns3/simulator-impl.h" 26 | #include "ns3/scheduler.h" 27 | #include "ns3/event-impl.h" 28 | 29 | #include "ns3/ptr.h" 30 | 31 | #include 32 | 33 | namespace ns3 { 34 | 35 | class PLC_SimulatorImpl : public SimulatorImpl 36 | { 37 | public: 38 | static TypeId GetTypeId (void); 39 | 40 | PLC_SimulatorImpl (); 41 | ~PLC_SimulatorImpl (); 42 | 43 | // Added to support simulation time granularity other than ns3::Time::Unit 44 | void SetGranularity(Time granularity); 45 | Time GetGranularity(void) { return m_granularity; } 46 | uint64_t GetQuantizedTicks(Time time); 47 | 48 | virtual void Destroy (); 49 | virtual bool IsFinished (void) const; 50 | virtual Time Next (void) const; 51 | virtual void Stop (void); 52 | virtual void Stop (Time const &time); 53 | virtual EventId Schedule (Time const &time, EventImpl *event); 54 | virtual void ScheduleWithContext (uint32_t context, Time const &time, EventImpl *event); 55 | virtual EventId ScheduleNow (EventImpl *event); 56 | virtual EventId ScheduleDestroy (EventImpl *event); 57 | virtual void Remove (const EventId &ev); 58 | virtual void Cancel (const EventId &ev); 59 | virtual bool IsExpired (const EventId &ev) const; 60 | virtual void Run (void); 61 | virtual void RunOneEvent (void); 62 | virtual Time Now (void) const; 63 | virtual Time GetDelayLeft (const EventId &id) const; 64 | virtual Time GetMaximumSimulationTime (void) const; 65 | virtual void SetScheduler (ObjectFactory schedulerFactory); 66 | virtual uint32_t GetSystemId (void) const; 67 | virtual uint32_t GetContext (void) const; 68 | 69 | private: 70 | virtual void DoDispose (void); 71 | void ProcessOneEvent (void); 72 | uint64_t NextTs (void) const; 73 | typedef std::list DestroyEvents; 74 | 75 | DestroyEvents m_destroyEvents; 76 | bool m_stop; 77 | Ptr m_events; 78 | uint32_t m_uid; 79 | uint32_t m_currentUid; 80 | uint64_t m_currentTs; 81 | uint32_t m_currentContext; 82 | // number of events that have been inserted but not yet scheduled, 83 | // not counting the "destroy" events; this is used for validation 84 | int m_unscheduledEvents; 85 | 86 | Time m_granularity; 87 | int64_t m_tick_ts; 88 | }; 89 | 90 | } // namespace ns3 91 | 92 | #endif /* PLC_SIMULATOR_IMPL_H_ */ 93 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__ErrorRatePhy.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__ErrorRatePhy}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Error\-Rate\-Phy \-Class \-Reference} 2 | \label{classns3_1_1PLC__ErrorRatePhy}\index{ns3\-::\-P\-L\-C\-\_\-\-Error\-Rate\-Phy@{ns3\-::\-P\-L\-C\-\_\-\-Error\-Rate\-Phy}} 3 | } 4 | 5 | 6 | {\ttfamily \#include $<$plc-\/phy.\-h$>$} 7 | 8 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-Error\-Rate\-Phy\-:\begin{figure}[H] 9 | \begin{center} 10 | \leavevmode 11 | \includegraphics[height=3.000000cm]{classns3_1_1PLC__ErrorRatePhy} 12 | \end{center} 13 | \end{figure} 14 | \subsection*{\-Public \-Member \-Functions} 15 | \begin{DoxyCompactItemize} 16 | \item 17 | virtual void \hyperlink{classns3_1_1PLC__ErrorRatePhy_a108a0f187ead3c1a8aa90d03f95bd653}{\-Set\-Modulation\-And\-Coding\-Scheme} (\-Modulation\-And\-Coding\-Type mcs) 18 | \item 19 | \hypertarget{classns3_1_1PLC__ErrorRatePhy_a158678f9689b9111992c3137f6a0ed57}{\-Modulation\-And\-Coding\-Type {\bfseries \-Get\-Modulation\-And\-Coding\-Scheme} (void)}\label{classns3_1_1PLC__ErrorRatePhy_a158678f9689b9111992c3137f6a0ed57} 20 | 21 | \item 22 | \hypertarget{classns3_1_1PLC__ErrorRatePhy_ab7bdbe350667587e50ce06413ae2df7b}{virtual void {\bfseries \-Preamble\-Detection\-Successful} (\-Ptr$<$ const \-Packet $>$ p, uint32\-\_\-t tx\-Id, \-Ptr$<$ \-Spectrum\-Value $>$ \&rx\-Psd, \-Time duration, \-Ptr$<$ const \hyperlink{classns3_1_1PLC__TrxMetaInfo}{\-P\-L\-C\-\_\-\-Trx\-Meta\-Info} $>$ meta\-Info)}\label{classns3_1_1PLC__ErrorRatePhy_ab7bdbe350667587e50ce06413ae2df7b} 23 | 24 | \item 25 | \hypertarget{classns3_1_1PLC__ErrorRatePhy_a1441d74fc6df47217973c0d9411333f5}{virtual void {\bfseries \-End\-Rx} (uint32\-\_\-t tx\-Id)}\label{classns3_1_1PLC__ErrorRatePhy_a1441d74fc6df47217973c0d9411333f5} 26 | 27 | \end{DoxyCompactItemize} 28 | \subsection*{\-Static \-Public \-Member \-Functions} 29 | \begin{DoxyCompactItemize} 30 | \item 31 | \hypertarget{classns3_1_1PLC__ErrorRatePhy_ade327ba03915e38532f318ea2ed9b0e0}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__ErrorRatePhy_ade327ba03915e38532f318ea2ed9b0e0} 32 | 33 | \end{DoxyCompactItemize} 34 | 35 | 36 | \subsection{\-Detailed \-Description} 37 | \-Simple implementation of a half duplex phy using the error rate model 38 | 39 | \subsection{\-Member \-Function \-Documentation} 40 | \hypertarget{classns3_1_1PLC__ErrorRatePhy_a108a0f187ead3c1a8aa90d03f95bd653}{\index{ns3\-::\-P\-L\-C\-\_\-\-Error\-Rate\-Phy@{ns3\-::\-P\-L\-C\-\_\-\-Error\-Rate\-Phy}!\-Set\-Modulation\-And\-Coding\-Scheme@{\-Set\-Modulation\-And\-Coding\-Scheme}} 41 | \index{\-Set\-Modulation\-And\-Coding\-Scheme@{\-Set\-Modulation\-And\-Coding\-Scheme}!ns3::PLC_ErrorRatePhy@{ns3\-::\-P\-L\-C\-\_\-\-Error\-Rate\-Phy}} 42 | \subsubsection[{\-Set\-Modulation\-And\-Coding\-Scheme}]{\setlength{\rightskip}{0pt plus 5cm}void {\bf ns3\-::\-P\-L\-C\-\_\-\-Error\-Rate\-Phy\-::\-Set\-Modulation\-And\-Coding\-Scheme} ( 43 | \begin{DoxyParamCaption} 44 | \item[{\-Modulation\-And\-Coding\-Type}]{mcs} 45 | \end{DoxyParamCaption} 46 | )\hspace{0.3cm}{\ttfamily \mbox{[}virtual\mbox{]}}}}\label{classns3_1_1PLC__ErrorRatePhy_a108a0f187ead3c1a8aa90d03f95bd653} 47 | \-Define the \-Modulation and \-Coding \-Scheme to be used 48 | \begin{DoxyParams}{\-Parameters} 49 | {\em mcs} & \\ 50 | \hline 51 | \end{DoxyParams} 52 | 53 | 54 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 55 | \item 56 | model/plc-\/phy.\-h\item 57 | model/plc-\/phy.\-cc\end{DoxyCompactItemize} 58 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__PhyPacketTag.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__PhyPacketTag}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Phy\-Packet\-Tag \-Class \-Reference} 2 | \label{classns3_1_1PLC__PhyPacketTag}\index{ns3\-::\-P\-L\-C\-\_\-\-Phy\-Packet\-Tag@{ns3\-::\-P\-L\-C\-\_\-\-Phy\-Packet\-Tag}} 3 | } 4 | \subsection*{\-Public \-Member \-Functions} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{classns3_1_1PLC__PhyPacketTag_ae1990cc46b4be3dbf04a9b48c426f91b}{virtual \-Type\-Id {\bfseries \-Get\-Instance\-Type\-Id} (void) const }\label{classns3_1_1PLC__PhyPacketTag_ae1990cc46b4be3dbf04a9b48c426f91b} 8 | 9 | \item 10 | \hypertarget{classns3_1_1PLC__PhyPacketTag_a357496cd46c7207530bd7c6939011d7c}{void {\bfseries \-Set\-Payload\-Mcs} (\-Modulation\-And\-Coding\-Type mcs)}\label{classns3_1_1PLC__PhyPacketTag_a357496cd46c7207530bd7c6939011d7c} 11 | 12 | \item 13 | \hypertarget{classns3_1_1PLC__PhyPacketTag_aef30cea671ca643c742fb415c156abac}{\-Modulation\-And\-Coding\-Type {\bfseries \-Get\-Payload\-Mcs} (void) const }\label{classns3_1_1PLC__PhyPacketTag_aef30cea671ca643c742fb415c156abac} 14 | 15 | \item 16 | \hypertarget{classns3_1_1PLC__PhyPacketTag_a2a6984ab4e2400bc0cf945e0f02df552}{void {\bfseries \-Set\-Payload\-Duration} (\-Time duration)}\label{classns3_1_1PLC__PhyPacketTag_a2a6984ab4e2400bc0cf945e0f02df552} 17 | 18 | \item 19 | \hypertarget{classns3_1_1PLC__PhyPacketTag_a2e142fe1af78aef7e33a284adbb343e0}{\-Time {\bfseries \-Get\-Payload\-Duration} (void) const }\label{classns3_1_1PLC__PhyPacketTag_a2e142fe1af78aef7e33a284adbb343e0} 20 | 21 | \item 22 | \hypertarget{classns3_1_1PLC__PhyPacketTag_af959b778ffe4548f266b00fe0f0963d8}{void {\bfseries \-Set\-Uncoded\-Bits} (uint32\-\_\-t uncoded\-\_\-bits)}\label{classns3_1_1PLC__PhyPacketTag_af959b778ffe4548f266b00fe0f0963d8} 23 | 24 | \item 25 | \hypertarget{classns3_1_1PLC__PhyPacketTag_adb5c5262203f0a97e797c92cc0f759c0}{uint32\-\_\-t {\bfseries \-Get\-Uncoded\-Bits} (void)}\label{classns3_1_1PLC__PhyPacketTag_adb5c5262203f0a97e797c92cc0f759c0} 26 | 27 | \item 28 | \hypertarget{classns3_1_1PLC__PhyPacketTag_a32ef3f15cdae2c28ac6042a7de697b67}{virtual uint32\-\_\-t {\bfseries \-Get\-Serialized\-Size} (void) const }\label{classns3_1_1PLC__PhyPacketTag_a32ef3f15cdae2c28ac6042a7de697b67} 29 | 30 | \item 31 | \hypertarget{classns3_1_1PLC__PhyPacketTag_a8ff0e437889399f2490b76d144d1664f}{virtual void {\bfseries \-Serialize} (\-Tag\-Buffer i) const }\label{classns3_1_1PLC__PhyPacketTag_a8ff0e437889399f2490b76d144d1664f} 32 | 33 | \item 34 | \hypertarget{classns3_1_1PLC__PhyPacketTag_ae7424b79098d93f06aea526d242b42e2}{virtual void {\bfseries \-Deserialize} (\-Tag\-Buffer i)}\label{classns3_1_1PLC__PhyPacketTag_ae7424b79098d93f06aea526d242b42e2} 35 | 36 | \item 37 | \hypertarget{classns3_1_1PLC__PhyPacketTag_a2f7bb901070912e27055a303ee07669a}{virtual void {\bfseries \-Print} (std\-::ostream \&os) const }\label{classns3_1_1PLC__PhyPacketTag_a2f7bb901070912e27055a303ee07669a} 38 | 39 | \end{DoxyCompactItemize} 40 | \subsection*{\-Static \-Public \-Member \-Functions} 41 | \begin{DoxyCompactItemize} 42 | \item 43 | \hypertarget{classns3_1_1PLC__PhyPacketTag_a3c48873dbf36614c3dddc651b8ec3e46}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__PhyPacketTag_a3c48873dbf36614c3dddc651b8ec3e46} 44 | 45 | \end{DoxyCompactItemize} 46 | 47 | 48 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 49 | \item 50 | model/plc-\/header.\-h\item 51 | model/plc-\/header.\-cc\end{DoxyCompactItemize} 52 | -------------------------------------------------------------------------------- /model/plc-dcmc-capacity.cc: -------------------------------------------------------------------------------- 1 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 | /* 3 | * Copyright (c) 2012 University of British Columbia, Vancouver 4 | * 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 7 | * published by the Free Software Foundation; 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | * 18 | * Author: Alexander Schloegl 19 | */ 20 | 21 | #include 22 | #include 23 | #include "plc-dcmc-capacity.h" 24 | 25 | namespace ns3 { 26 | 27 | SpectrumValue GetCapacity(const SpectrumValue& SINR_dB, Modulation mod, short cardinality) 28 | { 29 | SpectrumValue capacityPerHertz(SINR_dB.GetSpectrumModel()); 30 | 31 | const double *cap; 32 | if (mod == QAM) 33 | { 34 | switch (cardinality) 35 | { 36 | case 2: 37 | { 38 | cap = qamCap[0]; 39 | break; 40 | } 41 | case 4: 42 | { 43 | cap = qamCap[1]; 44 | break; 45 | } 46 | case 8: 47 | { 48 | cap = qamCap[2]; 49 | break; 50 | } 51 | case 16: 52 | { 53 | cap = qamCap[3]; 54 | break; 55 | } 56 | case 32: 57 | { 58 | cap = qamCap[4]; 59 | break; 60 | } 61 | case 64: 62 | { 63 | cap = qamCap[5]; 64 | break; 65 | } 66 | default: 67 | { 68 | NS_FATAL_ERROR("QAM" << cardinality << " not supported"); 69 | break; 70 | } 71 | } 72 | } 73 | else if (mod == PSK) 74 | { 75 | switch (cardinality) 76 | { 77 | case 16: 78 | { 79 | cap = pskCap[0]; 80 | break; 81 | } 82 | case 32: 83 | { 84 | cap = pskCap[1]; 85 | break; 86 | } 87 | case 64: 88 | { 89 | cap = pskCap[2]; 90 | break; 91 | } 92 | default: 93 | { 94 | NS_FATAL_ERROR("PSK" << cardinality << " not supported"); 95 | break; 96 | } 97 | } 98 | } 99 | else 100 | { 101 | NS_FATAL_ERROR("Unsupported modulation type"); 102 | } 103 | 104 | Values::const_iterator SINR_dB_it = SINR_dB.ConstValuesBegin(); 105 | Values::iterator cit = capacityPerHertz.ValuesBegin(); 106 | while (SINR_dB_it != SINR_dB.ConstValuesEnd() && cit != capacityPerHertz.ValuesEnd()) 107 | { 108 | // subchannel SINR_dB 109 | double sc_SINR_dB = *SINR_dB_it; 110 | if (sc_SINR_dB < -10) 111 | { 112 | *cit = log2(1+pow(10, sc_SINR_dB/10)); 113 | } 114 | else if (sc_SINR_dB >= 40) 115 | { 116 | *cit = log2(cardinality); 117 | } 118 | else 119 | { 120 | short x1 = floor(sc_SINR_dB+10); 121 | short x2 = ceil(sc_SINR_dB+10); 122 | 123 | if (x1 == x2) 124 | { 125 | *cit = cap[x1]; 126 | } 127 | else 128 | { 129 | double y1 = cap[x1]; 130 | double y2 = cap[x2]; 131 | 132 | // linear interpolation 133 | *cit = y1 + (sc_SINR_dB-x1+10)*((y2-y1)/(x2-x1)); 134 | } 135 | } 136 | ++SINR_dB_it; 137 | ++cit; 138 | } 139 | 140 | return capacityPerHertz; 141 | } 142 | 143 | } // namespace ns3 144 | -------------------------------------------------------------------------------- /helper/plc-spectrum-helper.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 | /* 3 | * Copyright (c) 2012 University of British Columbia, Vancouver 4 | * 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 7 | * published by the Free Software Foundation; 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | * 18 | * Author: Alexander Schloegl 19 | */ 20 | 21 | #ifndef PLC_SPECTRUM_HELPER_H 22 | #define PLC_SPECTRUM_HELPER_H 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | namespace ns3 { 32 | 33 | #define CELENEC_A_LOW 9e3 34 | #define CELENEC_A_HIGH 95e3 35 | #define CELENEC_B_LOW 95e3 36 | #define CELENEC_B_HIGH 125e3 37 | #define CELENEC_C_LOW 125e3 38 | #define CELENEC_C_HIGH 140e3 39 | #define CELENEC_D_LOW 140e3 40 | #define CELENEC_D_HIGH 148.5e3 41 | 42 | #define G3_BAND_LOW 35e3 43 | #define G3_BAND_HIGH 91e3 44 | #define G3_NSUBCARRIER 36 45 | 46 | /** 47 | * Helper class to create spectrum models with equidistant 48 | * frequency samples 49 | */ 50 | class PLC_SpectrumModelHelper : public Object 51 | { 52 | public: 53 | static TypeId GetTypeId(void); 54 | 55 | /** 56 | * Create a spectrum model with lower band limit fl, 57 | * higher band limit fh and numbands of subbands 58 | * 59 | * @param fl 60 | * @param fh 61 | * @param numbands 62 | * @return Spectrum model 63 | */ 64 | Ptr GetSpectrumModel(double fl, double fh, size_t numbands); 65 | 66 | /** 67 | * Get the spectrum model of the G3 standard 68 | * @return 69 | */ 70 | Ptr GetG3SpectrumModel(void); 71 | 72 | /** 73 | * @return The center frequency of a previous created spectrum model 74 | * or 0 if none has been created before 75 | */ 76 | double GetCenterFreq(void); 77 | 78 | private: 79 | void CreateSpectrumModel(void); 80 | 81 | double m_fl, m_fh, m_resolution, m_fc; 82 | size_t m_numbands; 83 | Ptr m_spectrum_model; 84 | }; 85 | 86 | /** 87 | * 88 | */ 89 | class PLC_TimeInvariantSpectrumHelper : public Object 90 | { 91 | public: 92 | static TypeId GetTypeId(void); 93 | 94 | PLC_TimeInvariantSpectrumHelper(Ptr sm); 95 | Ptr GetPowerSpectralDensity(void) { return m_power_spectral_density; } 96 | 97 | protected: 98 | Ptr m_spectrum_model; 99 | Ptr m_power_spectral_density; 100 | }; 101 | 102 | class PLC_SincSpectrumHelper : public PLC_TimeInvariantSpectrumHelper 103 | { 104 | public: 105 | static TypeId GetTypeId(void); 106 | 107 | PLC_SincSpectrumHelper(double f_c, double main_lobe_bw, double peakPwr, Ptr sm); 108 | 109 | private: 110 | double m_f_c, m_main_lobe_bw, m_pwr; 111 | }; 112 | 113 | } 114 | 115 | #endif /* PLC_SPECTRUM_HELPER_H */ 116 | -------------------------------------------------------------------------------- /doc/latex/classns3_1_1PLC__TwoPort.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classns3_1_1PLC__TwoPort}{\section{ns3\-:\-:\-P\-L\-C\-\_\-\-Two\-Port \-Class \-Reference} 2 | \label{classns3_1_1PLC__TwoPort}\index{ns3\-::\-P\-L\-C\-\_\-\-Two\-Port@{ns3\-::\-P\-L\-C\-\_\-\-Two\-Port}} 3 | } 4 | 5 | 6 | \-Characterization of a two port network. 7 | 8 | 9 | 10 | 11 | {\ttfamily \#include $<$plc-\/edge.\-h$>$} 12 | 13 | \-Inheritance diagram for ns3\-:\-:\-P\-L\-C\-\_\-\-Two\-Port\-:\begin{figure}[H] 14 | \begin{center} 15 | \leavevmode 16 | \includegraphics[height=2.000000cm]{classns3_1_1PLC__TwoPort} 17 | \end{center} 18 | \end{figure} 19 | \subsection*{\-Public \-Member \-Functions} 20 | \begin{DoxyCompactItemize} 21 | \item 22 | \hyperlink{classns3_1_1PLC__TwoPort_a6684e0b1a597e1cb5c8dff4fd8f00e6b}{\-P\-L\-C\-\_\-\-Two\-Port} (\-Ptr$<$ const \-Spectrum\-Model $>$ sm, \-Ptr$<$ \hyperlink{classns3_1_1PLC__Node}{\-P\-L\-C\-\_\-\-Node} $>$ from, \-Ptr$<$ \hyperlink{classns3_1_1PLC__Node}{\-P\-L\-C\-\_\-\-Node} $>$ to, \-Ptr$<$ \hyperlink{classns3_1_1PLC__ValueBase}{\-P\-L\-C\-\_\-\-Value\-Base} $>$ \-A, \-Ptr$<$ \hyperlink{classns3_1_1PLC__ValueBase}{\-P\-L\-C\-\_\-\-Value\-Base} $>$ \-B, \-Ptr$<$ \hyperlink{classns3_1_1PLC__ValueBase}{\-P\-L\-C\-\_\-\-Value\-Base} $>$ \-C, \-Ptr$<$ \hyperlink{classns3_1_1PLC__ValueBase}{\-P\-L\-C\-\_\-\-Value\-Base} $>$ \-D) 23 | \end{DoxyCompactItemize} 24 | \subsection*{\-Static \-Public \-Member \-Functions} 25 | \begin{DoxyCompactItemize} 26 | \item 27 | \hypertarget{classns3_1_1PLC__TwoPort_a3ea4c9fc7f48ffc8fb0bc50c7c9197eb}{static \-Type\-Id {\bfseries \-Get\-Type\-Id} (void)}\label{classns3_1_1PLC__TwoPort_a3ea4c9fc7f48ffc8fb0bc50c7c9197eb} 28 | 29 | \end{DoxyCompactItemize} 30 | 31 | 32 | \subsection{\-Detailed \-Description} 33 | \-Characterization of a two port network. 34 | 35 | \-Characterization of a two port network by its \-A,\-B,\-C,\-D parameters 36 | 37 | \subsection{\-Constructor \& \-Destructor \-Documentation} 38 | \hypertarget{classns3_1_1PLC__TwoPort_a6684e0b1a597e1cb5c8dff4fd8f00e6b}{\index{ns3\-::\-P\-L\-C\-\_\-\-Two\-Port@{ns3\-::\-P\-L\-C\-\_\-\-Two\-Port}!\-P\-L\-C\-\_\-\-Two\-Port@{\-P\-L\-C\-\_\-\-Two\-Port}} 39 | \index{\-P\-L\-C\-\_\-\-Two\-Port@{\-P\-L\-C\-\_\-\-Two\-Port}!ns3::PLC_TwoPort@{ns3\-::\-P\-L\-C\-\_\-\-Two\-Port}} 40 | \subsubsection[{\-P\-L\-C\-\_\-\-Two\-Port}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ns3\-::\-P\-L\-C\-\_\-\-Two\-Port\-::\-P\-L\-C\-\_\-\-Two\-Port} ( 41 | \begin{DoxyParamCaption} 42 | \item[{\-Ptr$<$ const \-Spectrum\-Model $>$}]{sm, } 43 | \item[{\-Ptr$<$ {\bf \-P\-L\-C\-\_\-\-Node} $>$}]{from, } 44 | \item[{\-Ptr$<$ {\bf \-P\-L\-C\-\_\-\-Node} $>$}]{to, } 45 | \item[{\-Ptr$<$ {\bf \-P\-L\-C\-\_\-\-Value\-Base} $>$}]{\-A, } 46 | \item[{\-Ptr$<$ {\bf \-P\-L\-C\-\_\-\-Value\-Base} $>$}]{\-B, } 47 | \item[{\-Ptr$<$ {\bf \-P\-L\-C\-\_\-\-Value\-Base} $>$}]{\-C, } 48 | \item[{\-Ptr$<$ {\bf \-P\-L\-C\-\_\-\-Value\-Base} $>$}]{\-D} 49 | \end{DoxyParamCaption} 50 | )}}\label{classns3_1_1PLC__TwoPort_a6684e0b1a597e1cb5c8dff4fd8f00e6b} 51 | \-Constructor 52 | 53 | \-A,\-B,\-C,\-D parameters have to be an instance of \hyperlink{classns3_1_1PLC__ValueBase}{\-P\-L\-C\-\_\-\-Value\-Base} subclasses 54 | 55 | 56 | \begin{DoxyParams}{\-Parameters} 57 | {\em sm} & \-Used spectrum model \\ 58 | \hline 59 | {\em from} & \-First node \\ 60 | \hline 61 | {\em to} & \-Second node \\ 62 | \hline 63 | {\em \-A} & \\ 64 | \hline 65 | {\em \-B} & \\ 66 | \hline 67 | {\em \-C} & \\ 68 | \hline 69 | {\em \-D} & \\ 70 | \hline 71 | \end{DoxyParams} 72 | 73 | 74 | \-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} 75 | \item 76 | model/plc-\/edge.\-h\item 77 | model/plc-\/edge.\-cc\end{DoxyCompactItemize} 78 | --------------------------------------------------------------------------------