IOS ішіндегі асинхронды және үзіліссіз деректерді қалай алуға болады?

Платформа: TCP/IP коммутаторларымен iOS.

Төменде менің кіретін деректер ағымының мысалы келтірілген.

$ PLTIT, HV, 0.20, M, 0.00, D, -58.70, D, 0.30, M * 71
  $ PLTIT, HV, 1.90, M, 0.00, D, -8.30, D, 1.90, M * 41

Жарамды хабарламалар рамкасы келесідей:

$PLTIT,HV,1.90,M,0.00,D,-8.30,D,1.90,M*41

Бірақ мен мұны алатын сәттер болуы мүмкін:

[time n+0]  $PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M*71
[time n+1]  $PLTIT,HV,1.90,M,
[time n+2]  0.00,D,-8.30,D,1.90
[time n+3]  ,M*41
[time n+4]  $PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M*71
[time n+5]  $PLTIT,HV,0.20,M,
[time n+6]  0.00,D,-58.70,D,0.30,M*71
[time n+7]  $PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M*71
[time n+8]  $PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M*71

Нәтиже - ортасында бұзылған хабарламалар жақтауы.

IOS ішіндегі қандай нысандар/контейнерлерді пайдалануға болады? Мәліметтер байттарын жинау мен кейбір үзіліссіз коммутация немесе жабдықтарға байланысты қандай да бір биттерді жоғалтпау үшін дұрыс пайдалануға мүмкіндік беру үшін?

0

1 жауаптар

Кез-келген сорттың қарапайым буфері жасайды. Егер сіздің деректеріңіз әрқашан мәтіндік болса, сіз тіпті NSMutableString -ге қосасыз.

Сіз жасайтын барлық деректер деректерді қосып, аралықта $ таңбасының бір данасынан артық (яғни, жазбалар арасындағы бөлгіш деп ойлаймын) және одан артық екенін білу үшін тексеру жасаңыз. ол кейінгі соңғы деректерді буферде қалдырып, кейінгі келесі деректерді жинағанша, әрбір жазбаны өңдейді.

0
қосылды
Бұл деректер әрдайым мәтіндік және менің бөлгіш таңбаларым кадрлар арасында '$' және '\ n' болып табылады. NSMutableString жеткілікті ме, әлде CHCircularBufferQueue болуы мүмкін бе?
қосылды автор Sebastian Dwornik, көзі