0,0 → 1,98 |
// /////////////////////////////////////////////////////////////////////////////// |
// Copyright (C) 2010, Frank Blumenberg |
// |
// See License.txt for complete licensing and attribution information. |
// Permission is hereby granted, free of charge, to any person obtaining a copy |
// of this software and associated documentation files (the "Software"), to deal |
// in the Software without restriction, including without limitation the rights |
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
// copies of the Software, and to permit persons to whom the Software is |
// furnished to do so, subject to the following conditions: |
// |
// The above copyright notice and this permission notice shall be included in all |
// copies or substantial portions of the Software. |
// |
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
// THE SOFTWARE. |
// |
// /////////////////////////////////////////////////////////////////////////////// |
|
#import "OsdValue.h" |
#import "MKConnectionController.h" |
#import "NSData+MKCommandEncode.h" |
#import "MKDatatypes.h" |
#import "MKDataConstants.h" |
|
@interface OsdValue() |
- (void) sendOsdRefreshRequest; |
- (void) osdNotification:(NSNotification *)aNotification; |
@end |
|
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
@implementation OsdValue |
|
@synthesize delegate=_delegate; |
|
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
- (id) init |
{ |
self = [super init]; |
if (self != nil) { |
NSNotificationCenter * nc = [NSNotificationCenter defaultCenter]; |
|
[nc addObserver:self |
selector:@selector(osdNotification:) |
name:MKOsdNotification |
object:nil]; |
|
[self performSelector:@selector(sendOsdRefreshRequest) withObject:self afterDelay:0.1]; |
|
} |
return self; |
} |
|
- (void) dealloc |
{ |
NSNotificationCenter * nc = [NSNotificationCenter defaultCenter]; |
[nc removeObserver:self]; |
|
[super dealloc]; |
} |
|
|
- (void) sendOsdRefreshRequest { |
MKConnectionController * cCtrl = [MKConnectionController sharedMKConnectionController]; |
uint8_t refresh=50; |
|
NSData * data = [NSData dataWithCommand:MKCommandOsdRequest |
forAddress:MKAddressFC |
payloadForByte:refresh]; |
|
[cCtrl sendRequest:data]; |
} |
|
- (void) osdNotification:(NSNotification *)aNotification { |
|
NSData *value = [[aNotification userInfo] objectForKey:kMKDataKeyRawValue]; |
|
NaviData_t data; |
|
memcpy(&data,[value bytes],sizeof(data)); |
|
[self.delegate newValue:&data]; |
|
NSLog(@"osdCount=%d",lcdCount); |
if (lcdCount++ >= 7 ) { |
[self sendOsdRefreshRequest]; |
lcdCount = 0; |
} |
} |
|
@end |