[erlang-questions] Re. How to decode octet to septets using erlang (prasantha kumara)
Tony Seebregts
tony.seebregts@REDACTED
Thu Mar 5 13:36:06 CET 2009
Hmmm , the short answer is that the code I suggested is taken from a module
to convert a GSM octet stream into a septet stream and it gives a different
answer when using your more compact code :-) :
UD: << 203,176,184,204,86,191,1 >>
Mine: [75,97,98,101,108,106,111,0]
Yours: << 101,108,23,12,98,90,126,1>>
I remember the GSM octet-septet conversion being quite awkward to get right
because the bytes were the 'wrong way round' which is probably why I ended
up with the code I did i.e. having to use flip(...).
2009/3/5 Hynek Vychodil <vychodil.hynek@REDACTED>
> Why not?
>
> unpack(UD) ->
> << <<0:1,X/bits>> || <<X:7/bits>> <= UD >>.
>
> 2009/3/5 Tony Seebregts <tony.seebregts@REDACTED>
>
>> This is an extract from the code I use:
>>
>>> unpack(UD) ->
>>> septets(list_to_binary([ flip(X) || X <- binary_to_list(UD) ])).
>>>
>>> septets(T) ->
>>> [ flipx(X) || <<X:7>> <= T].
>>>
>>> % Flips the bits in an octet/septet for easy unpacking
>>>
>>> flip(Octet) ->
>>> <<B8:1,B7:1,B6:1,B5:1,B4:1,B3:1,B2:1,B1:1>> = <<Octet>>,
>>> <<B1:1,B2:1,B3:1,B4:1,B5:1,B6:1,B7:1,B8:1>>.
>>>
>>
>> There is probably a better way of doing it but I was in a rush at the time
>> :-)
>>
>>
>>
>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://www.erlang.org/mailman/listinfo/erlang-questions
>>
>
>
>
> --
> --Hynek (Pichi) Vychodil
>
> Analyze your data in minutes. Share your insights instantly. Thrill your
> boss. Be a data hero!
> Try Good Data now for free: www.gooddata.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20090305/ee827dc3/attachment.htm>
More information about the erlang-questions
mailing list