|
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 55
|
|
Составить пакет для подключения20.03.2018, 18:22. Показов 997. Ответов 1
Метки нет (Все метки)
Всем доброго времени суток.Есть трудность.Необходимо подключится к аппарату эвл его ip (192.168.1.15) порт 5050 тип socket.Есть протокол по которому нужно подключится (файл я выложил протокол) и получить данные .но сперва необходимо составить пакет для подключения .прошу помочь.
Протокол обмена с аппаратом искусственной вентиляции легких «АВЕНТА-М» Обмен данными с аппаратом осуществляется по протоколу TCP/IP. IP адрес у аппарата фиксированный «192.168.1.15». На приемной стороне необходимо реализовать буферизацию поступающих данных с целью плавного отображения графиков. Формат данных (прикладной уровень) Байты Поле Примечание 0 ADDR. Адрес получателя пакета. (0…127) << 1 Бит 0 = 0 1 CMD. Команда (0…127) << 1 Бит 0 = 1 2 … 3 SIZE. Размер блока данных (0…16383) << 1 Бит 0 = 1 N+1 … N+1+SIZE DATA. Блок данных Бит 0 = 1 4… N = 4+(SIZE+6)/7 EXT. Байты расширения Бит 0 = 1 Биты 1…7 каждого байта расширения содержат значения младших битов соответствующих байтов блока данных. N+1+SIZE … N+1+SIZE+1 CRC. Контрольная сумма Бит 0 = 1 Все биты байтов пакета после первого адресного байта имеют значение = 1. Истинные значения этих битов содержаться в байтах расширения как показано на рисунке 1. Рисунок 1. Команды аппарату Адрес аппарата (поле ADDR) всегда равен 1. 1. Запуск потоковой передачи данных Поле Значение CMD 1 SIZE 0 В ответ на команду аппарат начинает посылать пакеты с интервалом 20 мс. Каждый пакет состоит из заголовка и соответствующих ему данных. Формат заголовка: Байты Поле Описание 0 cntPacket Счётчик пакетов (для определения пропусков и синхронизации с блоком мониторинга) 1 cntCommand Счётчик команд. 2…5 STATUS Состояние блока управления Биты: 0…7 – биты поля hwErrors из пакета данных измерительного контроллера 8 – низкое давление воздуха 9 – низкое давление кислорода 10 – требуется калибровка пропорционального клапана воздуха 11 – требуется калибровка пропорционального клапана кислорода 12 – требуется калибровка клапана выдоха 13 – требуется проведение тестов 14 – нет данных от измерительного контроллера 15 – разгерметизация (при CONTENT = 0) 16 – окклюзия 17 – Ошибка подачи воздуха в контур 18 – Ошибка подачи кислорода в контур 19 – высокое давление воздуха 20 – высокое давление кислорода 21 – ошибка клапана выдоха 22 – высокое сопротивление в контуре выдоха 23 – не удаётся оценить параметры пациента для обеспечения PAV 24 – PV манёвр 25 – ошибка во время выполнения PV маневра 26 – ошибка датчика SpiroQuant 27 – невозможно достичь целевого объема 31 – готов к выключению (принята и обработана команда shutdown) 6 CONTENT Формат данных 1 – вентиляция (рабочий режим) Формат данных в рабочем режиме (CONTENT = 1). Байты Поле Описание 0,1 MODE Режим вентиляции Биты: 0…1 – тип подключения (=0 эндотрахеальная трубка, =1 трахеостомическая трубка, =2 маска) 2…5 – режим (=0 А/С, =1 SIMV, =2 SPONT, =3 DUAL-LEVEL, =13 APNEA, =14 IDLE , =15 STANDBY) 6…8 – тип принудительных вдохов (=0 PC, =1 VC, =2 PCVG) 9…11 – тип спонтанных вдохов(=0 PS, =1 PSVG, =2 TC) 12 – тип триггера (=0 Flow, =1 Pressure) 13..14 – пациент (=0 взрослый, =1 детский, =2 новорожденный) 15 – параметры режима валидны 2…5 Pressure[2] Два текущих значения кривой давления в контуре. Биты: 0…10 – значение давления в контуре (мм H2O) 11…12 – тип текущего вдоха (=0 C, =1 A, =2 S, =3 HFO) 13 – вентиляция 100% кислородом 14 – распыление (небулайзер) 15 – признак вдох/выдох ( =0 выдох, =1 вдох) 6…9 Flow[2] Два текущих значения кривой потока (10 мл/мин) 10…13 Volume[2] Два текущих значения кривой объёма (мл) 14…17 Debug[2] Кривая для отладки 18 ParIndexBC Индекс параметра дыхательного цикла(0…N) 19,20 ParValueBC Значение параметра дыхательного цикла 21 ParIndex Индекс мониторируемого параметра (0…N) 22,23 ParValue Значение мониторируемого параметра 24 CtrlParIndex Индекс управляющего параметра (0…N) 25,26 CtrlParValue Значение управляющего параметра Параметры, передающиеся поочерёдно через поля ParIndexBC и ParValueBC. Индекс Параметр Описание 0 VTI Объём последнего принудительного или спонтанного вдоха (мл) 1 VTE Объём последнего принудительного или спонтанного выдоха (мл) 2 TI Время вдоха (мс) 3 TE Время выдоха (мс) 4 MV Минутная вентиляция (мл/мин*100) 5 MVSPONT Минутная объем спонтанных вдохов (мл/мин*100) 6 PPEAK Максимальное давление, измеренное в ходе предыдущего дыхательного цикла (cmH2O*10) 7 PEEP Положительное давление в конце выдоха (см H2O*10) 8 PPL Давление в контуре измеренной в конце инспираторной паузы (cmH2O*10) 9 fTOT Общее количество принудительных и спонтанных вдохов доставленных пациенту за последнюю минуту 10 fSPONT Количество спонтанных вдохов сделанных пациентом за последнюю минуту 11 TISPONT Время спонтанного вдоха (сек*100) 12 PINSP Давление вдоха – среднее давление на вдохе минус давление в конце выдоха (смН2О*10) Параметры, передающиеся поочерёдно через поля ParIndex и ParValue. Индекс Параметр Описание 0 PMEAN Среднее давление в контуре за последнюю минуту (см H2O*10) 1 СSTAT Статическая податливость лёгких (мл/см H2O*10) 2 RSTAT Сопротивление дыхательных путей (cм H2O/л/с*10) 3 СDYN Динамический комплайнс (на вдохе мл/см H2O*10) 4 %FiO2 Концентрация кислорода на вдохе (%) 5 PBARO Атмосферное давление (мм.рт.ст.) 6 RCEXP Постоянная времени выдоха (мс) 7 RESERV_1 8 RESERV_2 9 RESERV_3 10 RESERV_4 11 RDYN Динамическое сопротивление дыхательных путей (cм H2O/л/с*10) 12 FANFREQ Частота вращения вентилятора (Гц) 13 AIRPRES Давление сжатого воздуха на входе в аппарат (bar*100) (для пневмоприводного аппарата) 14 O2PRES Давление сжатого кислорода на входе в аппарат (bar*100) 15 RESERV_5 16 PEEP_I Значение авто ПДКВ (смН2О*10) 17 PEEP_TOT Давление в конце выдоха измеренное в процессе экспираторной паузы – истинное давление в легких в конце выдоха. 18 PLEAK Значение утечки в дыхательном контуре (%) 19 LEAK Поток утечки в дыхательном контуре (л/мин*100) 20 VTETARGET Целевой объем для режима AUTO_MVG (мл) 21 FTARGET Целевая частота вентиляции для режима AUTO_MVG 22 P01 Давление респираторного усилия в первые 100мс (смН2О*10) 23 AMVGFMAX Максимально допустимая частота дыхания для режима AUTO_MVG 24 AMVGVTMAX Максимально допустимый объем вдоха для режима AUTO_MVG (мл) 25 RCINSP Постоянная времени вдоха (мс) 26 WOBIMP Работа выполняемая пациентом для совершения попытки вдоха (Дж/л*100) 27 HWERRORS Аппаратные ошибки. Описание Битов 0 – Ошибка калибровки датчика давления на выдохе 1 - резерв 2 – Нет связи с датчиком потока на выдохе 28 SIMVMTIME Время триггерного окна в режиме SIMV (для версии 5.10 и выше) 29 EEF Поток в конце выдоха (л/мин*100) (для версии 5.10 и выше) 30 EIF Поток в конце вдоха (л/мин*100) (для версии 5.10 и выше) 31 EIPRES Давление в конце вдоха (смН2О*10) (для версии 5.10 и выше) Если в единицах измерения стоит множитель, например, если указано мл/мин*100, это означает, что передаваемое значение умножено на 100. Например, полученное значение равно 956, тогда на экране нужно отображать 9,56 либо 9,6 (с округлением) Параметры, передающиеся поочерёдно через поля CtrlParIndex и CtrlParValue. Индекс Параметр Описание 0 F Частота дыхания 1 VT Заданный дыхательный объем (мл) 2 I:E Соотношение времени вдоха к времени выдоху 3 TPL Длительность плато (сек*100) 4 FIO2 Концентрация кислорода в подаваемой на вдох воздушной смеси 5 PEEP Положительное давление в конце вдоха 6 TI Время вдоха 7 FTRIG Триггер по потоку (л/мин*10) 8 PTRIG Триггер по давлению (смН2О*10) 9 PEAK_F Пиковый поток на вдохе для принудительных вдохов контролируемых по объему 10 PI Давление создаваемое в тройнике пациента при выполнении принудительного вдохоа 11 PSUP Давление создаваемое в тройнике пациента при спонтанной поддержке вдохоа 12 ESENS Чувствительность для завершения спонтанного вдоха 13 RT Скорость нарастания давления на вдохе 14 FLOWPAT Форма потока для принудительных вдохов контролируемых по объему 15 SIGH Дополнительный объем вдоха (1 – вкл, 0 – выкл) 16 TH Длительность высокого уровня давления в режиме DUAL-LEVEL 17 TH:TL Отношение длительности высокого уровня давления к низкому в режиме DUAL-LEVEL 18 PEEP_H Значение высокого уровня давления в режиме DUAL-LEVEL 19 IBW Идеальный вес пациента (кг) 20 VPI Целевой объем для принудительных вдохов с контролем по давлению и гарантированным объемом) 21 VPSUP Целевой объем для спонтанных вдохов с гарантированным объемом) 22 TCSUP Степень компенсации сопротивления интубационной трубки для спонтанных вдохов TC (%) 23 TUBE_ID Диаметр интубационной трубки (мм*10) Формат данных в рабочем режиме (CONTENT = 2). Байты Поле Описание 0 SIZE Размер фрейма 1…(SIZE+1) DATA Данные фрейма Каждый фрейм состоит из пакетов данных от модулей пульсоксиметрии и капнометрии. Первый байт каждого пакета содержит адрес устройства в старшей тетраде и 0 в младшей тетраде. Последний байт каждого пакета содержит контрольную сумму. Контрольная сумма вычисляется простым суммированием байтов пакета по модулю 256. Алгоритм разбора данных фрейма на пакеты Первый байт данных он же первый байт пакета данных от модуля. 1. По значению старшей тетрады определяем тип устройства (ECG, OXI, NIBP и т. д.). 2. Зная тип устройства, определяем размер пакета (он фиксированный для каждого устройства). 3. Вычисляем и проверяем контрольную сумму. Если контрольная сумма не сошлась берём следующий байт и повторяем пункты 1-3. 4. Если не достигнут конец фрейма, берём следующий за пакетом байт и повторяем пункты 1-3. Модуль Пульсоксиметрии #define OEM_OXI_ADDR 0x50 // Адрес модуля Пульсоксиметрии Формат пакета от модуля Пульсоксиметрии: typedef struct { unsigned char Addr; // Адрес модуля unsigned char SpO2; // Значение SpO2. Код 255 - не измерено или недостоверно. unsigned char HR; // Значение ЧП. Код 255 - не измерено или недостоверно. unsigned char ToeA; // Наполнение Пульса. Код 255 - не измерено или недостоверно. unsigned char Res; // Резерв unsigned char Status; // Байт состояния модуля (описание см. ниже) unsigned char Mode; // Байт режимов работы (описание см. ниже). signed char PleIR; // Фотоплетизмограмма (кривая ФПГ). unsigned char Ksum; // Контрольная сумма всего пакета (алгебраическая 8-разрядная сумма всех байтов). } OxiPacketStruct; Размер пакета - 9 байт. Рекомендуемый период опроса - 20 мс Описание байта состояния модуля (Status): Биты 7 6 5 4 3 2 1 0 Резерв Резерв Пульс 1 - обнаруж. пульс. (с кажд.удар.) Резерв Нет пульса: 1 - нет пульса (> 8 секунд) Палец 0 - в датчике 1 - отсутств Датчик 0 - одключен 1 - отключен Режим: 0 - работа 1 -подстройка тока в датч. Бит “Пульс” устанавливается в “1” при каждом обнаружении нового удара сердца (пульса). Обычно используется для выдачи звуковых сигналов с каждым ударом сердца. Длительность “1” - один пакет. Когда бит “Пульс” установлен в “1”, в полях SpO2, HR, ToeA передаются мгновенные значения соответствующих параметров (по последнему удару сердца). А когда этот бит сброшен в “0”, в этих полях передаются усредненные значения параметров. Бит “Нет пульса” устанавливается в “1” при отсутствии пульса в течение 8 секунд. Описание байта режимов работы модуля (Mode): Ст. бит 7 6 5 4 3 2 1 0 Резерв Резерв Резерв Резерв Резерв Цифр. ФВЧ. 0 - выключен 1 – включен Фильтр артеф. 0 - мягкий 1 – жесткий Усреднение: 0 - 8 уд. 1 - 16 уд. Модуль Капнометрии #define CO2_ADDR 0x20 // Адрес модуля капнометрии Формат пакета от модуля капнометрии typedef struct { BYTE addr; // Адрес модуля BYTE status; // Байт состояния модуля WORD co2; // Капнограмма WORD res; // Резерв BYTE parIndex; // Индекс параметра WORD parValue; // Значение параметра }CO2PACKET; Описание байта состояния модуля (Status): Биты 7 6 5 4 3 2 1 0 Резерв Резерв Резерв Резерв Резерв Резерв Не достоверные данные Вдох 1 - обнаруж. пульс. (с кажд.удар.) Бит «Не достоверные данные» устанавливается при ошибках измерения капнограммы либо при отсутствии или неисправности датчика. Бит «Вдох» устанавливается в момент обнаружения вдоха на капнограмме. Значения измеренных параметров передаются через поля «parIndex» и «parValue». Индекс Параметр Описание 0 FiCO2 Значение в mmHg уровня углекислого газа во вдыхаемой смеси 1 EtCO2 Значение в mmHg уровня углекислого газа в выдыхаемом воздухе 2 FiCO2_prc Значение в % уровня углекислого газа во вдыхаемой смеси 3 EtCO2_prc Значение в % уровня углекислого газа в выдыхаемом воздухе Остановка потоковой передачи данных Поле Значение CMD 2 SIZE 0 2. Установка режима вентиляции и значений управляющих параметров Поле Значение CMD 3 SIZE 0 Формат поля DATA в пакете запроса: Байты Поле Описание 0,1 MODE Режим вентиляции Биты: 0 – тип подключения (=0 трубка, =1 маска) 1...3 – режим (=0 А/С, =1 SIMV, =2 SPONT, =3 DUAL-LEVEL, =4 AUTO-MVG) 4…6 – тип принудительных вдохов (=0 PC, =1 VC, =2 PRVC) 7…9 – тип спонтанных вдохов(=0 PS, =1 TC, =2 VS) 10 – тип триггера (=0 Flow, =1 Pressure) 11 – пациент (=0 взрослый, =1 детский) 2,3 FTOT Частота вентиляции 4,5 VT Объём принудительного вдоха (мл) Он же целевой объем для принудительных вдохов с гарантированным объемом (мл) 6,7 RESERV 8 Tpl Время (пауза) между концом вдоха и началом выдоха (100 мс) 9,10 Fmax AMVGMV Максимальный поток на вдохе (при VC) (л/мин*100) Минутная вентиляция для режима AUTO-MVG (%) 11 Pi Давление принудительных вдохов 12 F-trig Чувствительность триггера по потоку 13 P-trig Чувствительность триггера по давлению 14 FlowPat Форма потока 15 RT Скорость нарастания потока 16 Esens % от пикового потока на вдохе, при котором происходит переключение с вдоха на выдох 17 Sigh maxVTkg искусственный вдох (1 – вкл, 0 – выкл) Максимально допустимый объем вдоха (мл/кг) 18 FiO2 Содержание кислорода на вдохе 19 PEEP Положительное давление в конце выдоха 20,21 TI Время вдоха (мс) 22 PSUP Давление поддержки спонтанных вдохов 23,24 VTSUP Объем для спонтанных вдохов с гарантированным объемом (мл) 25 TUBE_ID Диаметр интубационной трубки (мм*10) Для формирования данных можно использовать следующую структуру: typedef struct { WORD mode; WORD f; WORD Vt; WORD IE; // Not currently used!!!!!!!!!!!!!!! BYTE Tpl; union{ WORD Fmax; WORD amvg_MV; }; BYTE Pi; BYTE Ftrig; BYTE Ptrig; BYTE FlowPat; BYTE riseTime; BYTE Esens; union{ BYTE Sigh; BYTE maxVt_kg; }; BYTE FiO2; BYTE PEEP; WORD Ti; BYTE Psup; WORD VTsupp; BYTE tubeID; union{ BYTE PAsupp; BYTE TCsupp; }; WORD Ti_ms; BYTE res1[2]; }IVLMODE; 3. Запрос информации Поле Значение CMD 4 SIZE 0 Формат поля DATA в ответном пакете: Байты Поле Описание 0,1 VER Версия программного обеспечения аппарата (например, значение 0х0501 соответствует версии 5.1) 2,3 NUM Сетевой номер аппарата (задается в настройках аппарата) 4,5 HW_VER Версия прошивки контроллера блока управления (например, значение 0х0501 соответствует версии 5.1) 6,7 RES1 зарезервировано 8-11 RES2 зарезервировано 12-15 RES3 зарезервировано 16-19 RES4 зарезервировано 20-23 RES5 зарезервировано 24-27 RES6 зарезервировано 28-31 RES7 зарезервировано
0
|
|
| 20.03.2018, 18:22 | |
|
Ответы с готовыми решениями:
1
Настройка сетевого подключения по умолчанию в rashbian для подключения к сети интернет Какое нужно оборудование для подключения вай фай, а также каковы условия самого подключения
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 20.03.2018, 20:57 | |
|
чо надо то?
0
|
|
| 20.03.2018, 20:57 | |
|
Помогаю со студенческими работами здесь
2
Как определить, какой из подсетей принадлежит пакет IP-пакет? Пакет для управления вкладками графических окон (аналог tmux для GUI) Рис расфасован в 2 пакета. вес 1 - m кг, 2 - n кг. составить программу,определяющую какой пакет тяжелее и его вес Для чего нужен пакет Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|