GE监护仪怎么样GE监护仪B850、B650、B450协议解析

新闻资讯2026-04-20 23:40:56

近期在项目需要对接一些医疗设备,成功解析Mindary ,GE,Philipes 监护仪各型号数据,mark一下。

GEB850650450,IPM10,PM8000,PM9000,GEDAsh4000,Philips 等

GE监护仪怎么样GE监护仪B850、B650、B450协议解析_https://www.jmylbn.com_新闻资讯_第1张

如有技术问题可联系 QQ:2568885920  分享交流经验。

function getData()
     //读取数据长度

     while(_buffer.length>=_headsize)
         //完事帧数据
         let rawData=_buffer.slice(0,totallen+_headsize)
          // parseDataEx(rawData)
         // console.log(rawData)
        // console.log('bz:'+bzValue+",len:"+totallen)/console.log(rawData)

         // parsePackage(rawData)
         // console.log('---------------')
         _event.emit('data',rawData)
         // console.log('buflen:'+_buffer.length)
         parsePackage(_buffer)
         _buffer=_buffer.slice(totallen+_headsize)

         if(_buffer.length>40960) {
             _buffer=_buffer.slice(_buffer.length)
         }

     }

     //console.log('getData')

 }

 function CheckPollPacketActionType(packetbuff) {
     const actionBuf=Buffer.alloc(2)
     packetbuff.copy(actionBuf,0,20,22)
     let action_type=actionBuf.readUInt16BE()
     switch (action_type) {
         case ActionType.NOM_ACT_POLL_MDIB_DATA:
             PollPacketDecoder(packetbuff,44)
             break
         case ActionType.NOM_ACT_POLL_MDIB_DATA_EXT:
             PollPacketDecoder(packetbuff,46)
             break
         default:
             break
     }
 }

 //解析数据
 function PollPacketDecoder(buffer,offset) , function(err)
                         // })

                         if(attributeliststruct.count>0)
                                 }
                             }
                         }
                     }
                 }

             }
         }
     })
 }
function ReadIDLabelString(buffer) {
     let strmp = new StringMP()
    strmp.length=buffer.readUInt16BE()
    strmp.value1=buffer.slice(2,strmp.length+2).toString()

    // console.log('STRMP:')
    // console.log(strmp)
}

 function  ReadNumericObservationValue(buffer)
     else{
         NumObjectValue.value=-1
     }

     switch (NumObjectValue.physio_id) {
         case 19384:{
             datavalue.spo2=NumObjectValue.value
             // console.log(datavalue)
             break
         }
         case 18466:{
             datavalue.ecg=NumObjectValue.value
             // console.log(datavalue)
             break
         }
         case 20490:{
             datavalue.resp=NumObjectValue.value
             break
         }
         case 18949:{
             datavalue.nibp_max=NumObjectValue.value
             // console.log(datavalue)
             break
         }
         case 18950:{
             datavalue.nibp_min=NumObjectValue.value
             // console.log(datavalue)
             break
         }
         default:
             break

     }

     _event.emit('package',datavalue)

     // // console.log('NumObjectValue:')
     //  console.log(NumObjectValue)

 }

 function ReadCompoundNumericObsValue(avaattribobjects)
     }
 }

 function DecodePollObjects(packetbuffer,callback)
 function CheckLinkedPollPacketActionType(packetbuff) {
     const actionBuf=Buffer.alloc(2)
     packetbuff.copy(actionBuf,0,22,24)
     let action_type=actionBuf.readUInt16BE()
     switch (action_type) {
         case ActionType.NOM_ACT_POLL_MDIB_DATA:
             PollPacketDecoder(packetbuff,46)
             break
         case ActionType.NOM_ACT_POLL_MDIB_DATA_EXT:
             PollPacketDecoder(packetbuff,48)
             break
         default:
             break
     }
 }
 function ParseMDSCreateEventReport(packetbuff){

 }
 function parsePackage(buffer)

     _event.emit('dataCms',obj)

     const data=Buffer.from(buffer)
     // fs.writeFile('./philips2.txt', bytesToHex(data)+'

', { 'flag': 'a' }, function(err)
     // })
     const ropdu_type=Buffer.alloc(2)    //数据长度四个字节
     data.copy(ropdu_type,0,4,6)
     let pdutype=ropdu_type.readUInt16BE()

     switch (pdutype) {
         case ROType.ROIV_APDU:
             //sendmdscreateevent
             ParseMDSCreateEventReport(data)
             break
         case ROType.RORS_APDU:
             CheckPollPacketActionType(data)
             break
         case ROType.ROLRS_APDU:
             CheckLinkedPollPacketActionType(data)
             break
         case ROType.ROER_APDU:
             break
         default:
             break
     }

    
 }