Member 12673397 Ответов: 1

Как я получаю данные из текста, отправленного с последовательных портов?


У меня есть много машин, которые отправляют данные через последовательный порт в виде текста, который я получаю в многострочном текстовом поле.machine.my вопрос: как я извлекаю данные из этого текста, чтобы сохранить их в базе данных?с чего все началось step.is он должен перейти в другой формат или я тоже должен иметь дело с ним как с ним ?
я приведу данные с 2-х машин
1. первое
Цитата:
<v>11201


<n>aspt<v>710







<образец>
<ver>1.1
<instrinfo>

<n>PRDI<v>BM800


<n>FIWV<v>2.6.7


<n>SNO<v>15535


<n>BRND<v>S


&ЛТ;п&ГТ;ассоциация в<в>по ч.


<n>IID


<n>LMOF<v>1



<smpinfo>

<n>ID<v>2


&ЛТ;п>Далее&ЛТ;в&ГТ;270


<n>Дата<v>2019-09-01T16:51:45


<n>OPID


<n>APNU<v>1


&ЛТ;п&ГТ;apna, который станет в<в>в крови


&ЛТ;п&ГТ;АСПМ в<в>У от


<n>ASPS<v>1


<n>SORC<v>0


&ЛТ;п&ГТ;ППР на<в&ГТ;0


<n>BLNK<v>0


<n>STYP<v>0


<n>RGED


<n>RGEL


<n>RGEC


&ЛТ;п&ГТ;RDLI в<в>у 1711-849


<n>RDPN<v>1123


&ЛТ;п&ГТ;RDED в<в>у 2020-11-22


&ЛТ;п&ГТ;RLLI в<в>у 1711-850


<n>RLPN<v>1696


&ЛТ;п&ГТ;монитора rled в<в>у 2020-11-19


<n>RCLI


<n>RCPN


<n>RCED


&ЛТ;п&ГТ;РПД&ЛТ;РНУ&ЛТ; п=""&ГТ;&ЛТ;в теме>0


&ЛТ;п&ГТ;RPDL в<в>у 15RCLI


<n>RCP


&ЛТ;п&ГТ;RPDH в<в>у 30


<n>RPDF<v>27


<n>MBTE<v>30.9


<n>MCVO<v>+0.0


<n>WDDM<v>0


&ЛТ;п&ГТ;WDDP в<в>у 45


<n>WDMS<v>2


<n>WDMA


<n>WDFB<v>0


<n>WDLL


<n>WDLH


<n>WDCL


<n>WDCH


<n>WLGL


<n>WLGH


<n>WDIL<v>140


&ЛТ;п&ГТ;WDIH в<в>по 180


<n>WDOM<v>0


<n>WDWD<v>2


<n>XLT


<n>CAPL


<n>CLVL


<n>CEXP


<n>CEXT


&ЛТ;п&ГТ;прочие


<n>ASWP



<smpresults>

&ЛТ;п>РБК&ЛТ;Ф&ГТ;ДП<л>в 3.50 на<ч>по 5.50


&ЛТ;п&ГТ;СОЭ<л&ГТ;75.0&ЛТ;ч&ГТ;100.0


&ЛТ;п&ГТ;НСТ<л&ГТ;35.0&ЛТ;ч&ГТ;55.0


&ЛТ;п&ГТ;МЧ<л&ГТ;25.0&ЛТ;ч&ГТ;35.0


&ЛТ;п&ГТ;МСНС<л&ГТ;31.0&ЛТ;ч&ГТ;38.0


<n>RDWR<l>11.0<h>16.0


&ЛТ;п&ГТ;компьютер rdwa<л&ГТ;30.0&ЛТ;ч&ГТ;150.0


&ЛТ;п&ГТ;ПЛТ&ЛТ;Ф&ГТ;ДП<л&ГТ;100Н&ГТ;&ЛТ;л&ГТ;8.0&ЛТ;ч&ГТ;11.0


&ЛТ;п&ГТ;РС/п><л&ГТ;30.0&ЛТ;ч&ГТ;150.0&ЛТ;Т&ЛТ; п=""&ГТ;&ЛТ;л&ГТ;0.01&ЛТ;ч&ГТ;9.99


&ЛТ;п>мастер<л&ГТ;0.1&ЛТ;ч&ГТ;99.9


<n>LPCR<l>0.1<h>99.9


&ЛТ;п&ГТ;ГТК&ЛТ;Ф&ГТ;ДП<л&ГТ;11.5&ЛТ;ч&ГТ;16.5


&ЛТ;п&ГТ;Сич&ЛТ;Ф&ГТ;ДП<л&ГТ;3.5&ЛТ;ч&ГТ;10.0


&ЛТ;п>Ла<л&ГТ;0.5&ЛТ;ч&ГТ;5.0


&ЛТ;п>Ма<л&ГТ;0.1&ЛТ;ч&ГТ;1.5


&ЛТ;п>А.<л&ГТ;1.2&ЛТ;ч&ГТ;8.0


&ЛТ;п&ГТ;ЛР<л>По 15.0&ЛТ;ч&ГТ;50.0


<n>MR<l>2.0<h>15.0


&ЛТ;п>г<л&ГТ;35.0&ЛТ;ч&ГТ;80.0



<tparams>

&ЛТ;п>геометрия&ЛТ;в&ГТ;14304


<n>WCT<v>11201


<n>aspt<v>710


<n>xfrt<v>1153


&ЛТ;п&ГТ;АЗК&ЛТ;в теме>0


<n>asl1<v>0


<n>asl2<v>0


<n>rdmx<v>16


<n>rdmn<v>290


<n>rdbl<v>2048


<n>rrmn<v>1446


<n>rrmx<v>1865


<n>rrmd<v>1679


<n>rrdp<v>819


<n>rpds<v>132


<n>rpdt<v>952


&ЛТ;п&ГТ;rpdd в<в>у 119


<n>rpu/n><v>14304


<n>rput>rpdt<v>952


<n>rp<v>15962


&ЛТ;п&ГТ;rpud в<в>у 715


<n>rbrn<v>0


<n>rpdb<v>0


<n>rpdp<v>0


<n>rpdo<v>0


<n>rpub<v>0


<n>rpup<v>0


<n>rpu1<v>0


<n>rpu2<v>0


<n>rpuu<v>0


<n>wdmx<v>5


<n>wdmn<v>669


&ЛТ;п&ГТ;wdbl в<в>по 1024


&ЛТ;п&ГТ;wrmn в<в>у 617


&ЛТ;п&ГТ;wrmx в<в>у 748


<n>wrmd<v>679


&ЛТ;п&ГТ;wrdp в<в>у 893


<n>wpds<v>91


<n>wpdt<v>671


<n>wpdd<v>70


<n>wpus<v>1863


&ЛТ;п&ГТ;wpua в<в> с;11201


<n>wput<v>13064


<n>wpud<v>373


<n>wbrn<v>0


&ЛТ;п&ГТ;wpdb на<в&ГТ;0


<n>wpdp<v>0


<n>wpdo<v>0


<n>wpub<v>0


<n>wpup<v>0


<n>wpu1<v>0


<n>wpu2<v>0


<n>wpuu<v>0


<n>dpds<v>88


<n>dpdd<v>0<2<v>0


<n>wpuu/p>

&ЛТ;п&ГТ;ППН в<в>У 2


&ЛТ;п&ГТ;действия dput в<в>в 3113


<n>dpud<v>0


<n>dpdb<v>0


<n>dpdp<v>1


<n>dpdo<v>0


<n>dpup<v>0


<n>dpuo<v>0


<n>dpuf<v>0


<n>ipds<v>202


<n>ipdt<v>4312


<n>ipdd<v>0


<n>ipus<v>225


<n>iput<v>4427


<n>ipud<v>0


<n>ipdb<v>0


<n>ipdp<v>0


<n>ipdo<v>0


<n>ipup<v>0


<n>ipuo<v>0


<n>ipuf<v>0


<n>lpds<v>151


<n>lpdt<v>4682


<n>lpdd<v>0


<n>lpus<v>325


<n>lput<v>8526


<n>lpud<v>0


<n>lpdb<v>0


<n>lpdp<v>0


<n>lpdo<v>0


&ЛТ;п&ГТ;лпуп&ЛТ;в теме>0


<n>lpuo<v>0


<n>hbfo<v>0


<n>hbft



<hgrams>



2.2-я машина
Цитата:
IELite 3 2.8 20200902 13274142ANELite 3
Лаборатория Ислам Нур Аль






Серийный Номер: 960562
RecNo: 9547
Код: 19537
идентификатор пациента:
имя пациента:
Режим: Человек
Врач:
Возраст: 0 лет
Рождения(ГМД): 00000000
Пол: -
Дата испытания(ymd): 20200902
Время испытания(hm): 131900
Param Flags единица измерения значения [min-max]
WBC 7.34 10^3/Aμl [4.00-11.00]
LYM + 4.02 10^3/Aμl [1.30-4.00]
ПН 0,29 10^3/а мкл [0,15-0,70]
GRA 3.03 10^3/Aμl [2.50-7.50]
Лы% + 54.7 % [25.0-40.0]
МО% 3,9 % [ 3,0 - 7,0]
Гр% - 41.3 % [50.0-75.0]
RBC 4.55 10^6/Aμl [4.00-5.50]
HGB - 11,2 г/дл [12,0-17,4]
НСТ - 34.09 % [36.00-52.00]
MCV - 75 fl [ 76 - 96]
МЧ - 24.6 ПГ [27.0-32.0]
MCHC 32,9 г/дл [30.0-35.0]
RDWc 15,5 % [ 0,0 - 0,0]
RDWs + 46.9 fl [20.0-42.0]
PLT 251 10^3/Aμl [ 150 - 400]
РСТ 0.20 % [0.00-0.00]
MPV 8.1 fl [ 8.0-15.0]
PDWc 38,6 % [ 0,0 - 0,0]
PDWs 11.4 fl [ 0.0 - 0.0]
PLCC 62 10^3/Aμl [ 0 - 0]
PLCR 24.66 % [0.00-0.00]
Флаги:
График WBC
Шкала(fl): 400
Каналов: 256
WMarker1: 11
WMarker2 40
WMarker3: 70
Points: 0 0 0 0 0 0 0 0 0 0 0 5 7 9 12 17 22 29 37 48 61 78 97 119 141 163 183 200 216 229 239 248 253 254 252 247 237 225 211 197 182 168 154 142 131 119 108 97 87 77 69 62 57 52 47 43 39 36 32 30 29 28 27 27 26 26 26 26 25 25 25 25 25 26 26 27 27 28 28 29 30 30 31 32 34 35 37 38 39 40 41 41 42 43 45 46 46 47 46 45 44 43 42 41 41 40 40 40 41 42 44 45 47 47 48 48 47 46 45 44 43 42 41 40 39 39 39 39 39 38 37 37 36 36 35 35 34 34 34 34 34 34 33 32 31 29 28 27 25 24 23 22 21 21 21 21 21 21 21 20 20 19 18 18 17 16 16 15 15 14 14 13 12 11 10 9 9 9 9 9 9 8 7 7 6 6 6 6 6 5 5 5 5 5 5 5 5 5 4 4 3 3 3 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
График РБК
Шкала(fl): 200
Каналов: 256
RMarker1: 33
Points: 4 8 13 21 29 37 44 48 50 49 48 44 41 37 33 29 24 21 18 16 13 12 10 8 7 6 5 5 4 4 4 3 3 3 2 2 2 2 2 2 2 2 2 2 3 4 4 4 5 5 6 7 9 11 12 15 19 22 27 31 36 41 47 53 60 67 76 85 94 104 115 126 137 149 162 174 185 196 206 216 225 233 241 246 250 252 253 254 254 254 253 250 245 239 231 223 214 206 199 191 182 173 164 155 146 138 131 123 116 108 102 95 90 84 79 74 69 65 61 58 55 52 48 45 43 40 38 37 36 34 33 32 31 30 30 29 28 27 26 26 24 24 23 22 22 21 20 20 20 20 19 19 18 17 15 14 13 12 12 11 11 11 11 11 11 11 10 10 9 9 8 8 7 7 7 6 6 6 6 5 5 4 4 4 4 3 3 3 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
PLT график
Шкала(fl): 50
Каналов: 256
Пмаркер1: 11
Пмаркер2: 131
Points: 0 0 0 0 0 0 0 0 0 0 0 3 3 12 25 45 74 74 106 141 175 175 206 229 245 253 253 255 253 247 247 242 236 231 227 227 224 220 217 213 213 209 204 198 198 193 186 180 173 173 168 162 157 157 151 146 139 133 133 126 119 112 104 104 97 90 86 86 81 77 75 72 72 70 66 65 65 61 59 57 56 56 54 54 50 48 48 47 45 41 41 39 36 34 30 30 27 23 21 21 19 19 19 19 19 19 21 21 23 23 23 23 23 23 21 19 18 16 16 14 12 10 10 10 10 12 12 12 16 18 18 19 19 19 18 18 18 16 14 12 12 12 12 10 10 10 10 10 9 9 9 7 7 5 5 5 5 7 9 9 10 10 12 12 12 12 12 10 10 10 10 12 12 12 12 12 14 14 14 12 12 12 12 14 14 16 16 16 16 18 18 19 19 21 23 23 23 25 25 25 23 23 23 23 23 23 23 23 25 25 25 27 28 32 36 36 41 47 52 52 56 59 61 63 63 65 66 70 70 74 79 86 95 95 103 112 119 124 124 128 132 135 135 139 144 151 160 160 170 180 191 191 200 207 213 217
88


Что я уже пробовал:

я привязан к тому, чтобы справиться с этим, но я думаю, что есть простой способ

BillWoodruff

Похоже, что каждый из двух потоков данных находится в очень разном формате. У вас есть способ распознать форматы ... или это очевидно, учитывая, к какой машине вы подключаетесь ? Являются ли эти потоки синхронными?

Есть ли у вас какой-либо контроль над тем, как структурированы потоки ?

1 Ответов

Рейтинг:
1

CPallini

У вас есть две альтернативы

  1. внесите в базу данных полученные данные, как они есть.
  2. декодируйте полученные данные и храните в базе данных извлеченную значимую (для вашего приложения) информацию.


Альтернатива (1) проста, но вряд ли полезна без дальнейшей обработки. С другой стороны, альтернативу (2) сложнее реализовать, потому что вы должны знать протоколы, используемые различными машинами.
Обратите внимание, что мы можем дать вам только общую помощь по таким темам, чтобы правильно понять различные протоколы, которые вы должны погрузиться в документацию.


Member 12673397

вторая альтернатива-это альтернатива выбора.что позволит упорядочить данные так, чтобы ими было легко манипулировать.дефектность манера заключается в извлечении данных из текста, необходимых для того, чтобы хорошо иметь дело с функциями strin.

CPallini

Я считаю, что .NET предоставляет мощные инструменты для манипулирования строками.

Member 12673397

конечно, мой брат. Пожелай мне удачи