gpt4 book ai didi

ios - 从多 View 应用程序中的每个 View 发送串行数据

转载 作者:行者123 更新时间:2023-11-29 03:54:09 26 4
gpt4 key购买 nike

我有一个用于电机控制的多 View ( Controller )应用程序。

主页选择功能(哪些电机),然后转到另一个页面( View Controller )来移动那些关联的电机(每个 View Controller 上的加范围、减范围和停止加上紧急停止)。

初始版本使用 redpark 串行电缆(ble 稍后)。我让主视图 Controller 发送串行数据,但无法让其他 View Controller 发送数据。

最好的方法是什么?

我尝试让每个 View Controller 成为 redparks rscMgr 的委托(delegate),但它不起作用(除非我正在做一些非常愚蠢的事情,这是可能的)

例如

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 )发送串行数据。我需要单独的“页面”,以便用户可以一次调整一个设置/位置。

最佳答案

建议您重新架构并使用单独的对象来控制电机和串行连接。使其成为单例,所有其他对象都可以轻松找到它并与之通信。如果这些应用程序需要在某些事件发生时收到通知,请让它发送通知。这是经典风格。

关于ios - 从多 View 应用程序中的每个 View 发送串行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16706227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com