モーター制御用の複数ビュー (コントローラー) アプリを用意しました。
メインページは機能(モーター)を選択し、別のページ(ビューコントローラー)に移動して、関連するモーターを移動します(プラス範囲、マイナス範囲、各ビューコントローラーの停止と緊急停止)。
初期バージョンには redpark シリアル ケーブルを使用します (後で説明します)。シリアル データを送信するメイン ビュー コントローラーがありますが、データを送信する他のビュー コントローラーを取得できません。
それを行う最良の方法は何ですか?
各View Controllerをredparks rscMgrのデリゲートにしようとしましたが、うまくいきません(可能な本当にばかげたことをしていない限り)
例えば
inviewcontrollerx.h
#import "RscMgr.h"
#define BUFFER_LEN 1024
@interface FBInfoViewController : UIViewController <RscMgrDelegate> {
RscMgr *rscMgr;
UInt8 rxBuffer[BUFFER_LEN];
UInt8 txBuffer[BUFFER_LEN];
BOOL cableConnected;
}
@property (nonatomic, strong) RscMgr *rscMgr;
@end
them in each one viewcontrollerx.m
- (void) viewDidLoad{
[super viewDidLoad];
rscMgr = [[RscMgr alloc] init];
[rscMgr ssetDelegate:self];
//etc
}
- (BOOL) sendMessage:(NSString *)Tmessage {
NSLog(@"sendMSG: ");
NSLog(@"String: %@", Tmessage);
int bytesToWrite = Tmessage.length;
for (int i =0;i < bytesToWrite; i++ ) {
self->txBuffer[i] = (int)[Tmessage characterAtIndex:i];
}
NSLog(@"BYTES WRITTEN = %d", Tmessage.length);
NSLog(@"Msg = %@", Tmessage);
int bytesWritten = [self->rscMgr write:txBuffer length:bytesToWrite];
NSLog(@"Wrote %d bytes to serial cable.", bytesWritten);
if (bytesWritten == bytesToWrite)
{
return TRUE;
}
else
{
return FALSE;
}
}
then send a message by
[self sendMSG : @"<VC20c203l,888c99>\n\r"];
メイン(初期View Controller)のみがシリアルデータを送信します。ユーザーが一度に1つの設定/位置を調整できるように、別の「ページ」が必要です。