我想用Symbian C ++从串行中读取一行,但是要做到这一点,我必须继续读入缓冲区,直到达到“ / n”。 我不知道该怎么做。 这实际上是一个Python项目,但我正在尝试使用从PySerial移植的必要功能创建一个C ++库。 Al,我仍然要移植的是“ readline。

这是它的原始Python代码:

def readline(self, size=None, eol=LF): 
     """read a line which is terminated with end-of-line (eol) character
     ('\n' by default) or until timeout."""
     leneol = len(eol)
     line = bytearray()

     while True: 
         c = self.read(1)
         if c: 
             line += c 
             if line[-leneol:] == eol: 
                 break 
             if size is not None and len(line) >= size: 
                 break 
         else: 
             break
     return bytes(line)

我的库基于PyS60USB,它已经实现了以下功能以读取至少一个字节:

TUint8* buf = 0;
TPtr8 tmp(buf, 0);
TInt err;
TBool alloc_ok = EFalse;

Py_BEGIN_ALLOW_THREADS;         
TRAP(err,
   buf = (TUint8*) User::AllocLC(1);
   tmp.Set(buf, 0, 1);
   alloc_ok = ETrue;
   self->iConnManager->RecvL(tmp, timeout);
   CleanupStack::Pop(buf);
   );
Py_END_ALLOW_THREADS;

我现在的问题是,如何将上述Python代码转换为Symbian C ++代码,该代码可以将所有读取的字节添加到缓冲区中并连续检查缓冲区的eol?

谢谢,所有帮助将不胜感激。

  ask by Gerharddc translate from so

本文未有回复,本站智能推荐:

6回复

PyS60与Symbian C ++

我正计划在S60 3.1平台上进行一些与Symbian相关的开发。 看起来普遍可用的语言选项是Python和C ++。 然而,诺基亚的官方论坛似乎非常倾向于C ++。 我想知道在Symbian C ++上使用Python for S60有什么优缺点? 甚至可以为S60 3.1平台进行
1回复

Symbian C ++ stdint缝接随机错误

我正在尝试使用Symbian Belle Sdk编译用于Pys60 2.0的PyS60USB,但是由于一些看似无关的原因,我得到了几乎所有不命名类型的东西的看似随机错误,如下所示: * 我还会收到类似以下的其他错误:* 等等... 我猜这些错误可能是相关的,并且可能是
5回复

Python还是C ++? 移动设备编程

我对移动设备编程感兴趣。 现在,我有一部运行Symbian S60 3rd的手机,这是我为移动设备编程的动机之一。 现在,我的问题是,哪个更好? Python还是C ++? 我具有C ++(ANSI),Java和C#的良好背景。 谢谢。
1回复

结合使用C / C ++ DLL和Python / Pyserial与Opticon条码读取器通信

我有一个试图与之通信的Opticalon OPN-2001条码扫描器。 它正式支持C / C ++和.NET,但我想尽可能地将它与python一起使用。 我已经打开了到设备的串行连接(或至少打开了port(?),但是当我使用dll中的函数时,当我期望OK(0)时会给我通信错误(-1)。使
1回复

C通过UART将结构发送到Python

我正在尝试使用本指南通过UART(从ESP32)发送要由Python处理的结构。 但是我得到了错误: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'const char*' [-fpermissive] 我对
1回复

了解RProperty IPC通讯

我正在研究这个资料库 。 基本上,这是Symbian 3rd Edition的Anim服务器客户端,用于获取输入事件而不会以可靠的方式使用它们。 如果发现服务器的这一行,则基本上是在设置RProperty值(显然是递增的计数器)。 似乎没有实际的输入处理完成。 在此客户端行内 ,
2回复

使用诺基亚论坛中的XmlHandler类从XML文件读取-Symbian C ++

我正在尝试使用Symbian S60 3rd FP2版本上的XmlHandler类(使用XmlHandler类的代码链接到诺基亚论坛 )来读取xml文件。 我的函数中有以下代码: 但是我不知道如何使用KConfigFile中的数据... 谁能告诉我如何从XML文件中读取节点并使用节
2回复

java转换为C / C ++(硬件c / c ++)转换

在Java中: 值= 1122; 这里它将返回[0,0,4,98]所以在C中: 因为在c中没有字节数据类型我们可以使用char *而不是那个但是当我返回临时值时我得到null所以我检查了这样的值where = b \\ x04'b'= 98,x04 = 4我不能获取数据为零
3回复

Symbian C ++:TBuf问题

我的代码中有一个TBuf变量,如下所示: 我现在想做的是忽略数字(它使用前两个字符)。 有没有一种很好的方法可以从测试变量中提取可变长度的字符串,从而在一开始就消除数字? 非常感谢
2回复

Symbian C ++ STOMP库

我希望我的S60应用程序使用Stomp协议。 尽管实施自己非常简单(但是,没有什么比我希望的Symbian更加简单了)-我想知道是否有人对此有任何经验。 似乎Stomp库几乎已经以其他所有语言存在。 与Symbian最接近的匹配项是此处列出的C ++库,但该库完全集成在Active