Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. buffer = new Buffer [0xAA,0xBB, 0xAA,0xBB,0xCC,0xDD]
  2. big =
  3. Buffer::pos = -1
  4. Buffer::unpack = (struct) ->
  5.     packet = {}
  6.     for field of struct
  7.         val = 0
  8.         for i in [struct[field].size-1..0]
  9.             val|=(@[@pos+=1]<<(i<<3))
  10.         packet[field] =
  11.             if not struct[field].signed or not struct[field].signed?
  12.                 val &((1<<(struct[field].size<<2))-1)
  13.             else (((~val&((1<<(struct[field].size<<2))-1))+1)*-1)
  14.     packet
  15.  
  16.        
  17. packet = buffer.unpack
  18.     itemID      : (size:2)
  19.     interfaceID : (size:4)
  20.  
  21. console.log packet.itemID.toString 16
  22. console.log packet.interfaceID.toString 16
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement