0

好吧,所以我束手无策。

我有一个使用推送和弹出视图控制器的应用程序。我的一个视图控制器具有从 Arduino Uno 读取输入的基本设置(使用 Redpark 电缆)。

当我从应用程序中弹出该视图控制器时,它会死掉,我不知道是什么原因造成的。我知道这与 Redpark 编码有关,因为没有它,应用程序可以正常工作。

当我将 Redpark 编码插入其他 viewController 时,应用程序不会死,但我必须阅读序列码的文本会消失。

那么是什么导致它崩溃呢?或者不显示数据。

我认为这与 [rscMgr open] 命令有关。任何输入都会很有用。


编辑:让我也问一下。有没有办法在我的应用程序后台运行这个读取串行数据的过程?那可能会解决问题。

4

1 回答 1

1

所以我相信我解决了这个问题,或者只是在上面贴上创可贴。

在 Alasdair Allen 的“iOS Sensor Apps with Arduino”一书中,所有示例都是在主视图控制器中创建的。

我正在玩这些示例以及额外的视图控制器。我意识到主视图控制器总是在运行。

我为解决这个问题所做的是创建一个保存输入的全局变量,然后将其打印到推送的 viewController。

我还使用了一个计时器来更新推送的 viewController 中的值。

所以...

  1. 创建一个将保存输入的变量。我在 AppDelegate 类中执行此操作(我倾向于将所有全局变量放在 AppDelegate 中)。

    @synthesize rxBuffed = _rxBuffed;
    
  2. 使用变量在主 viewController 上运行 Redpark Serial 输入rxBuffed(可以任意命名)。

    for (int i = 0; i < numBytes; i++) {
    delegate.rxBuffed = [NSString stringWithFormat:@"%@%c", delegate.rxBuffed, ((char *)rxBuffer)[i]];
    }
    
  3. 在您想要 RX 数据的 viewController 中创建您的计时器。我每 1/10 秒更新一次。

    myTimer =[NSTimer scheduledTimerWithTimeInterval:.1
    target:self selector:@selector(updateValues)
    userInfo:nil repeats:YES];
    
  4. 在 updateValues 中导入该变量。

    -(void)updateValues{
    AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    yourVariable = delegate.rxBuffed;
    }
    
于 2012-07-05T14:19:25.150 回答