Big Mouth Billy Bass automation library
Embed:
(wiki syntax)
Show/hide line numbers
billybass.cpp
00001 00002 #include "billybass.hpp" 00003 #include <string.h> 00004 00005 // class static 00006 BillyBass* BillyBass::fish[ MAX_FISH ]; 00007 unsigned BillyBass::numFish; 00008 char const * BillyBass::mouthName = "mouth"; 00009 char const * BillyBass::bodyName = "body"; 00010 char const * BillyBass::tailName = "tail"; 00011 00012 DigitalOut *BillyBass::outputNamed(char const *_outputName, char const **_pName, float *_pOnDelay, float *_pOffDelay, float *_pMinOnTime) 00013 { 00014 DigitalOut *output = 0; 00015 float onDelay = 0.0, offDelay = 0.0, minOnTime = 0.0; 00016 char const *name = 0; 00017 00018 if (!strcmp(_outputName, mouthName)) { 00019 output = &mouth; 00020 name = mouthName; 00021 onDelay = MOUTH_ON_DELAY; 00022 offDelay = MOUTH_OFF_DELAY; 00023 minOnTime = MOUTH_ON_DELAY / 2; 00024 } else if (!strcmp(_outputName, "head") || !strcmp(_outputName, bodyName)) { 00025 output = &body; 00026 name = bodyName; 00027 minOnTime = onDelay = BODY_ON_DELAY; 00028 offDelay = BODY_OFF_DELAY; 00029 } else if (!strcmp(_outputName, tailName)) { 00030 output = &tail; 00031 name = tailName; 00032 minOnTime = onDelay = TAIL_ON_DELAY; 00033 offDelay = TAIL_OFF_DELAY; 00034 } 00035 if (_pOnDelay) *_pOnDelay = onDelay; 00036 if (_pOffDelay) *_pOffDelay = offDelay; 00037 if (_pMinOnTime) *_pMinOnTime = minOnTime; 00038 if (_pName) *_pName = name; 00039 return output; 00040 } 00041 00042 char const *BillyBass::outputName(DigitalOut const *out) const 00043 { 00044 if (out == &tail) return tailName; 00045 else if (out == &body) return bodyName; 00046 else if (out == &mouth) return mouthName; 00047 else return "unknown"; 00048 }
Generated on Sun Jul 17 2022 08:00:03 by 1.7.2