Я использую какой-то код от Fraser May для MCP8004 (adc), который я модифицировал для MCP3002, подключенного к Raspberry Pi 1B +, и теперь я пытаюсь отправить данные, которые я собираю, на искровой сервер, только я нахожу свои попытки захват данных возвращает пустую строку. Я новичок в Python, но имею некоторый опыт кодирования из школы (ME).Python: Как это работает {} форматирование, чтобы вытащить правильные данные?
Вот что я должен собрать АДК данные:
def getAdc (channel):
#check valid channel
if ((channel>1)or(channel<0)):
return -1
# Preform SPI transaction and store returned bits in 'r'
r = spi.xfer([1, (4+2+channel) << 4, 0])
#Filter data bits from retruned bits
adcOut = ((r[0]&3) << 8) + r[1]
percent = int(round(adcOut/10.24))
#print out 0-1023 value and percentage
print("ADC Output: {0:4d} Percentage: {1:3}%".format (adcOut,percent))
sleep(1)
return adcOut
Теперь в моем сценарии, чтобы отправить данные на сервер, что я делаю это (плюс модифицированный материал Phant):
adcOut=[]
while True:
print("collecting data")
adc = [] #sets adc as a list
for i in range(2):
getAdc(i)
adc.append(adcOut)
print adcOut
print("ADC data collected!")
я думал Я могу просто позвонить adc[0]
или adc[1]
, чтобы получить нужные данные, которые отображаются в функции getAdc
, но, видимо, нет, я получаю пустой список ([]
).
Я думаю, что моя проблема в том, что происходит в getAdc
, где используются {0:4d}
и {1:3}
, но я не уверен, что они делают. Может кто-нибудь помочь сломать эту часть? До сих пор все, что мне удалось найти, это документы, объясняющие, что делают d
и %
, но они не имеют для меня смысла, как применимо здесь.
Заранее благодарен!
* примечание: adcOut
объявлен глобальным до моего getAdc
сценария.
Вы должны сделать возвращаемые значения getAdc вместо того, чтобы просто печатать их. – BrenBarn
Где «adcOut» заполняется значением? Почему вы не храните 'getAdc (i)' в переменной? – Dan
Упс, отредактированный для исправления. Код, который я использую, имеет «return adcOut» в конце ... Я скопировал это из файла, который у меня есть на моем ПК, а не в точной версии на моем Pi. Моя проблема, похоже, заключается в том, чтобы вытащить то, что я хочу от adcOut. adcOut заселен в getAdc (верхний код) и далее вниз Я вызываю getAdc (нижний код), чтобы захватить adcOut – gr8flux