У меня есть код
from struct import pack
self.data = {'SYNC' : 0x16, 'SOH' : 0x01,
'FnCode' : 0x55, 'pacingState' : 0,
'pacingMode' : 6, 'hysteresis' : 0,
'hysteresisInterval' : 300, 'lowrateInterval' : 1000,
'vPaceAmp' : 3500, 'vPaceWidth' : 4,
'VRP' : 320, 'spare' : '\x00\x00\x00\x00\x00'}
print(self.data.keys())
print(self.data.values())
pack('BBBBBBHHHHH5s', self.data.values())
Я получаю вывод,
dict_keys (['pacingState', 'SYNC', 'hysteresis', 'FnCode', 'spare','lowrateInterval', 'vPaceWidth', 'VRP', 'SOH', 'pacingMode', 'hysteresisInterval', 'vPaceAmp'])
dict_values ([0, 22, 0, 85, '\ x00 \x00 \ x00 \ x00 \ x00 ', 1000, 4, 320, 1, 6, 300, 3500])
Почему в словаре нет значений в том порядке, в котором я их записал (и как я могу получитьих по порядку)?
Также, когда я пытаюсь выполнить функцию пакета, я говорю, что пакету нужно 12 аргументов, а data.values имеет 12 значений, поэтому я не уверен, почему он выдает ошибку.
Я пытался создать dict со ссылкой на массив, содержащий значения (чтобы я мог передать массив, так как он находится в правильном порядке), но изменение значений словаря не повлияло на массив фактических значений, на который он ссылался, так чтоИдея отсутствует ...
Заранее спасибо.