Python — последовательная коммуникация, чтение строки, переполнение стека

Я хочу прочитать строку из последовательного с Symbian C ++, но для этого мне нужно продолжить чтение в буфер, пока я не достигну «/ n». Я понятия не имею, как это сделать, хотя. На самом деле это проект Python, но я пытаюсь создать библиотеку C ++ с необходимыми функциями, портированными из PySerial. Я все еще должен портировать «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?

Спасибо, вся помощь будет принята с благодарностью.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]