Now you can download a copy of these docs so you can use them offline! Download now
Module.cpp
00001 /*----------------------------------------------------------------------------*/ 00002 /* Copyright (c) FIRST 2008. All Rights Reserved. */ 00003 /* Open Source Software - may be modified and shared by FRC teams. The code */ 00004 /* must be accompanied by the FIRST BSD license file in $(WIND_BASE)/WPILib. */ 00005 /*----------------------------------------------------------------------------*/ 00006 00007 #include "Module.h" 00008 #include "AnalogModule.h" 00009 #include "DigitalModule.h" 00010 //#include "SolenoidModule.h" 00011 00012 Module* Module::m_modules[kMaxModules] = {NULL}; 00013 00020 Module::Module(nLoadOut::tModuleType type, UINT8 number) 00021 : m_moduleType (type) 00022 , m_moduleNumber (number) 00023 { 00024 m_modules[ToIndex(type, number)] = this; 00025 } 00026 00030 Module::~Module() 00031 { 00032 } 00033 00040 Module* Module::GetModule(nLoadOut::tModuleType type, UINT8 number) 00041 { 00042 if (m_modules[ToIndex(type, number)] == NULL) 00043 { 00044 switch(type) 00045 { 00046 case nLoadOut::kModuleType_Analog: 00047 new AnalogModule(number); 00048 break; 00049 case nLoadOut::kModuleType_Digital: 00050 new DigitalModule(number); 00051 break; 00052 /* 00053 case nLoadOut::kModuleType_Solenoid: 00054 new SolenoidModule(number); 00055 break; 00056 */ 00057 default: 00058 return NULL; 00059 } 00060 } 00061 return m_modules[ToIndex(type, number)]; 00062 } 00063 00071 UINT8 Module::ToIndex(nLoadOut::tModuleType type, UINT8 number) 00072 { 00073 if (number == 0 || number > kMaxModuleNumber) return 0; 00074 if (type < nLoadOut::kModuleType_Analog || type > nLoadOut::kModuleType_Solenoid) return 0; 00075 return (type * kMaxModuleNumber) + (number - 1); 00076 }
Generated on Thu Jan 12 2012 22:35:20 for WPILibC++ by
1.7.1