This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var MyModule = { | |
var self = { | |
buffer : "", | |
defaultSize : 20, | |
carriageReturn : "99" | |
}, | |
setup : function() { | |
// we could remove this function if there is nothing to do | |
}, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Setup join arrays for used joins monitoring and clearing | |
for (var join in gui.allJoins) { | |
joinType = gui.allJoins[join].charCodeAt(0); | |
joinNumber = parseInt(gui.allJoins[join].substr(1)); | |
if ((joinType == 0x64) && (joinNumber >= self.DJoin_Low) && (joinNumber <= self.DJoin_High) && (joinNumber != self.DJoin_connectedFB) && (!self.PageJoins[gui.allJoins[join]])) { //digital | |
self.DJoins.push(gui.allJoins[join]); | |
self.ClearJoins.push({join:gui.allJoins[join], value:0}); | |
} else if ((joinType == 0x61) && (joinNumber >= self.AJoin_Low) && (joinNumber <= self.AJoin_High)) { //analog | |
self.AJoins.push(gui.allJoins[join]); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Scale a value from one range to another | |
* Example of use: | |
* | |
* // Convert 33 from a 0-100 range to a 0-65535 range | |
* var n = scaleValue(33, [0,100], [0,65535]); | |
* | |
* // Ranges don't have to be positive | |
* var n = scaleValue(0, [-50,+50], [0,65535]); | |
* | |
* Ranges are defined as arrays of two values, inclusive |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- (void)logDetailedError:(NSError *)error from:(id)caller selector:(SEL)selector | |
{ | |
#if DEBUG | |
LogMessage(@"coredata", 0, @"*** CORE DATA ERROR: a data store operation failed"); | |
LogMessage(@"coredata", 0, @"*** Caller was: %@ %p %@", [caller class], caller, NSStringFromSelector(selector)); | |
LogMessage(@"coredata", 0, @"*** Error: %@", [error localizedDescription]); | |
NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey]; | |
if ([detailedErrors count] > 0) | |
{ | |
for(NSError* detailedError in detailedErrors) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Example macros that you can leave in production code, and turn on a flag to activate logging | |
#import "LoggerClient.h" | |
extern BOOL gLoggingEnabled; | |
#define LOG_APP(...) if (gLoggingEnabled) LogMessageF(__FILE__,__LINE__,__FUNCTION__,@"app", ##__VA_ARGS__); else do {} while(0) | |
#define LOG_CACHE(...) if (gLoggingEnabled) LogMessageF(__FILE__,__LINE__,__FUNCTION__,@"cache", ##__VA_ARGS__); else do {} while(0) | |
#define LOG_XML_PARSING(...) if (gLoggingEnabled) LogMessageF(__FILE__,__LINE__,__FUNCTION__,@"xml", ##__VA_ARGS__); else do {} while(0) | |
#define LOG_SOUNDS(...) if (gLoggingEnabled) LogMessageF(__FILE__,__LINE__,__FUNCTION__,@"sounds", ##__VA_ARGS__); else do {} while(0) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// If you really want to do this without using a set, you can do it this way | |
NSUInteger count = [marray count]; | |
for (NSUInteger i = 0; i < (count-1); i++) { | |
[marray removeObjectIdenticalTo:[marray objectAtIndex:i] inRange:NSMakeRange(i+1, count-i-1); | |
count = [marray count]; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Base UIViewController subclass for your iPhone applications which automatically | |
* releases your instance variables pointing to UIView objects or UIView-subclassed objects, | |
* limiting the work you have to do in -dealloc and -viewDidUnload | |
* | |
* All you have to do is make your UIViewController subclasses inherit from BaseUIViewController | |
* instead of UIViewController | |
* | |
* The helper function that disposes of objects is generalized and can be used for other | |
* types of objects as well. | |
* |
NewerOlder