2011-12-06 5 views
1

私は、テキストをモールス符号に変換してiPhoneの懐中電灯を使ってフラッシュするこのアプリケーションを作成しています。私は文字列置換を使用して、NSStringの内容をモールス符号に変換しています。私は、NSTimerを使って調整可能な間隔でiPhoneの懐中電灯をオンとオフにするスクリプトを見つけました。しかし、私は2つの異なる間隔を追加する方法を理解することはできません。一つはモールスのためです。 " 1つはモールス " - "です。誰でも助けてくれますか?2つのNSTimerを使用する

- (void)viewDidLoad { 
[super viewDidLoad]; 

int spaceTime; 
    spaceTime = 1; 

int flashTimePrik; 
    flashTimePrik = 5; 

strobeIsOn = NO; 
strobeActivated = NO; 
strobeFlashOn = NO; 

flashController = [[FlashController alloc] init]; 

self.strobeTimer =   [ 
          NSTimer 
          scheduledTimerWithTimeInterval:spaceTime 
          target:self 
          selector:@selector(strobeTimerCallback:) 
          userInfo:nil 
          repeats:YES 
          ]; 

self.strobeFlashTimer =  [ 
          NSTimer scheduledTimerWithTimeInterval:flashTimePrik 
          target:self 
          selector:@selector(strobeFlashTimerCallback:) 
          userInfo:nil 
          repeats:YES 
          ]; 


} 
- (void)strobeTimerCallback:(id)sender { 
    if (strobeActivated) { 
     strobeIsOn = !strobeIsOn; 
     strobeFlashOn = YES; 

} else { 
     strobeFlashOn = NO; 
} 
} 
- (void)strobeFlashTimerCallback:(id)sender { 
if (strobeFlashOn) { 
    strobeFlashOn = !strobeFlashOn; 
    [self startStopStrobe:strobeIsOn]; 

} else { 
    [self startStopStrobe:NO]; 
} 
} 

答えて

2

1つのタイマーを使用して、ドット、ダッシュまたはスペース間隔に基づいて時間間隔を設定します。ドットスペースダッシュの「A」の場合

  • 点灯させて、タイマーをドット間隔に設定します。
  • タイマーが起動したら、ライトをオフにして、タイマーをスペース間隔に設定します。
  • タイマーが鳴ったら、ライトを点灯し、タイマーをダッシュ​​間隔に設定します。
  • タイマーが起動したら、ライトをオフにします。
+0

実際にこれを使用する方法を私に見せてもらえますか? – ebsp

0

bajillionタイマーを使用してください。すべての単一の発砲モード。短い電話コールを短くしたいですか?次に、タイマーコールバックで、次のダッシュまたはドットの別のタイマーを作成します。アレイに送信する信号がなくなると、完了です。コードはおおよそです....

- (void)lightTimerOffCallback:(id)sender { 
     turnLIGHTOFF 
     [NSTimer scheduledTimer:intervalbeforeStartingNextChar... selector(@startNextDotOrFlash) repeat NO] 
    } 


- (void)startNextDotOrFlash:(id)sender { 
    if (there is a new dot or dash to do) 
     intervalToLeaveThisLightOn = 1.0 : 0.1 ? isDot; 
     turnLIGHTON 
     [NSTimer scheduledTimer:intervalToLeaveThisLightOn... selector(@lightTimerOffCallback) repeat NO] 
    } 

タイマーはiVarには必要ありません。

関連する問題