Запуск через основную функцию def после того, как переменная достигает len (ADCDATA) == 100000 - PullRequest
1 голос
/ 09 апреля 2019

Код останавливается только при использовании прерывания клавиатуры.

Был использован перерыв, хотя я вынул его и прочитал данные АЦП, а затем файл spi.close был пропущен вместе с update_sheet ("PCEM SHT.1", ADCDATA)

Я пытался использовать другое исключение, вызвать исключение на основе количества переменных в ADCDATA, но безрезультатно

# import many libraries
#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import print_function  
from googleapiclient.discovery import build  
from httplib2 import Http  
from oauth2client import file, client, tools  
from oauth2client.service_account import ServiceAccountCredentials  
import datetime
import spidev # import the SPI driver


def read_mcp3002(channel):

### Working ADC Code

    return adc_data


def update_sheet(sheetname, my_list):  

###Working Update google sheet code
try:
    while True:
        Result=1##3.23#for 3302 [mV]..... Voltage=(High Voltage-Low Voltage)/(2^(# of conversion bits))
        voltage1=(read_mcp3002(0))
        voltage1k=voltage1*Result
        voltage2=(read_mcp3002(1))
        voltage2k=voltage2*Result  # This one #


        ADCDATA += [[voltage1k, voltage2k]]

        if len(ADCDATA) == 100000:
            #print(ADCDATA)
            ADCDATA = []
            print("+10000")


except KeyboardInterrupt: # Ctrl-C
    spi.close()


def main():  


    update_sheet("PCEM SHT.1", ADCDATA)


if __name__ == '__main__':  
    main()

Желаемым результатом будет автоматический останов на len (ADCDATA) = 100000: если len (ADCDATA) == 100000, он выполнит код в операторе If, а также выполнит spi.close () и, наконец, выполнит Таблица обновлений def main () ("PCEM SHT1", ADCDATA).

1 Ответ

0 голосов
/ 09 апреля 2019

Мне удалось решить мою проблему, импортировав sys и поместив системный выход (1) внизу & внутри if len (ADCDATA) == 100000

if len(ADCDATA)==100000

печать («PCEM DATA») spi.close () update_sheet "........") sys.exit (1)

...