From: "Kroeger, Simon (ext)" Date: 2006-01-06T19:47:26+09:00 Subject: Re: Newbie question Hi again, there where some obvious errors left: -------------------------------------------------------------- def ae_6 session pdu, pduLen = session.read(5).unpack('cN') buffer = session.read(pduLen) calledAETitle, callingAETitle, itemType, itemLength = buffer.unpack('x4A16A16x35Cxn') contextName=buffer[72, itemLength] start = 72 + itemLength while start < pduLen start += getNextPresentationContext(buffer[start..-1]) puts "Finish = #{start - 1} outside proc" end end def getNextPresentationContext(pdu) it, il, presContextId, itemType, itemLength = pdu.unpack('CxnCx3Cxn') abstractSyntax=pdu[12, itemLength] start = 12 + itemLength loop do return start if pdu[start] != 64 itemLength, =pdu[start + 2, 2].unpack('n') transferSyntax=pdu[start + 4, itemLength] puts "id=#{presContextId}, AbstractSyntax =#{abstractSyntax}, TxSyntax=#{transferSyntax}" start += 4 + itemLength end end -------------------------------------------------------------- cheers Simon