byteArray  и его расчлененка
    
  ![]()  | 
Наши проекты:
 Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту  | 
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS | 
| [216.73.216.5] | 
 
 | 
		
  | 
    byteArray  и его расчлененка
    
  | 
         
         
         
          
           Сообщ.
           #1
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          есть byteArray dt, а именно пакет из 8 байт которые я получил по CAN. Пытаюсь разобрать его на элементы и собрать 3 числа (float, int16, int16) 
        
      ![]() ![]() print(dt) #тут печатает byteArray  print([dt[0],dt[1],dt[2],dt[3]]) # а вот тут и далее ругается что индекс за пределами списка print([dt[4],dt[5]]) print([dt[6],dt[7]]) подскажите пожалуйста что не так ? а вот на будущее вопрос. Преобразования делаю так ![]() ![]() angle = struct.pack('<f', [dt[0],dt[1],dt[2],dt[3]]) Ax = struct.pack('<H', [dt[4],dt[5]]) Ax = struct.pack('<H', [dt[6],dt[7]]) Добавлено закрыта тема, сам накосячил, должно быть ![]() ![]() print(dt) #тут печатает byteArray print([dt[0:4]) print(dt[4:6]) print(dt[6:8])  | 
    
| 
         
         
         
          
           Сообщ.
           #2
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Вообще-то байты в числа превращает unpack. 
        
      Проще сделать всё одной строкой ![]() ![]() dt = struct.pack('<fHH', angle, Ax, Ay)   # Для упаковки в байтовую строку angle, Ax, Ay = struct.unpack('<fHH', dt) # Для обратной распаковки  | 
    
| 
         
         
         
          
           Сообщ.
           #3
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата amk @  Вообще-то байты в числа превращает unpack. очепятался  |