def tearDownClass(cls): _ui = UserInput() _ui.request('com4') flex = Flex(_ui) flex.open() flex.restore_state(cls.initial_state) flex.close()
def setUpClass(cls): _ui = UserInput() _ui.request('com4') flex = Flex(_ui) flex.open() cls.initial_state = flex.save_current_state() flex.close()
def setUp(self): _ui = UserInput() _ui.request('com4') self.flex = Flex(_ui) self.flex.open() _ = self.flex.do_cmd_list(postproc.INITIALZE_FLEX) self.assertEqual(13, len(_))
def setUp(self): """setUp() """ _ui = UserInput() _ui.request('com4') self.flex = Flex(_ui) self.flex.open() self.flex.do_cmd_list(postproc.INITIALZE_FLEX)
def setUpClass(cls): """setUpClass() """ _ui = UserInput() _ui.request('com4') flex = Flex(_ui) flex.open() cls.initial_state = flex.save_current_state() flex.close() postproc.enable_bands(['10', '20'])
def test01_instantiate(self): """test_instantiate() check if Flex instiantiates and has expected str and repr without flex being opened """ _ui = UserInput() _ui.request('com4') flex = Flex(_ui) self.assertEqual('Flex cat: com4, opened: False', str(flex)) self.assertEqual('[Flex] Flex cat: com4, opened: False', repr(flex)) flex.close()
def main(): """main() """ # bandrd = Bandreadings( # ['14000000', '14073400', '14100000', '14200000'], None) #bd = bandrd.bandid ui: UserInput = UserInput() ui.request(port='com4') flexr: Flex = Flex(ui) initial_state = None try: if not flexr.open(): raise (RuntimeError('Flex not connected to serial serial port')) print('saving current flex state') initial_state = flexr.save_current_state() print('initializing dbg flex state') flexr.do_cmd_list(postproc.INITIALZE_FLEX) bandr = Bandreadings('20', flexr) print('start scanning for noise') bss: SMeterAvg = bandr.doit() if False: with open('banddata.json', 'w') as jso: # jsonpickle.encode _ = jsonpickle.encode(bss) jso.write(_) with open('banddata.json', 'r') as jsi: aa = jsi.readline() cpybss = jsonpickle.decode(aa) if str(bss) != str(cpybss): print('bss <> cpybss') print('end scanning for noise') print(f'band noise is {bandr.band_signal_strength}') except RuntimeError as re: raise except Exception as e: #a = 0 print(e) raise e finally: print('restore flex prior state') flexr.restore_state(initial_state) flexr.close()
def doita( ): # the program to be run by _thread_template the return 0 says that no work need be done when stopping try: UI: UserInput = UserInput() UI.request(port='com4') flexr: Flex = Flex(UI) nf: Noisefloor = Noisefloor(flexr, arg.qs[QK.dQ], arg.stope, run_till_stopped=True) nf.open() nf.doit(loops=0, runtime=0, interval=100, dups=True) except StopEventException as see: nf.close() raise see
def main(stop_events: Mapping[str, CTX.Event], queues: Mapping[str, CTX.JoinableQueue]): from smeteravg import SMeterAvg UI = UserInput() NOISE = None UI.request(port='com4') flexr = Flex(UI) initial_state = None try: if not flexr.open(): raise (RuntimeError('Flex not connected to serial serial port')) print('saving current flex state') initial_state = flexr.save_current_state() print('initializing dbg flex state') flexr.do_cmd_list(INITIALZE_FLEX) flexr.close() resultQ = queues.get(QK.dQ) stop_event = stop_events.get(SEK.da) NOISE = Noisefloor(flexr, resultQ, stop_event) NOISE.open() # loops must be less than 100 as that is the queue size and I am not emptying it here NOISE.doit(loops=90, interval=90, dups=True) # NOISE.doit(runtime=1, interval=60) try: stop_event.set() except StopEventException: pass if NOISE and NOISE.is_open: flexr.restore_state(initial_state) NOISE.close() indata: List[NFQ] = [] deck: Deck = Deck(1000) deck.q2deck(resultQ, mark_done=True) indata = deck.deck2lst() # try: # while True: #indata.append(resultQ.get(True, 1)) # resultQ.task_done() # except QEmpty: # pass # q is empty # except Exception as ex: # print(ex) #raise ex with open('nfqlistdata.pickle', 'wb') as jso: pickle.dump(indata, jso) unpacked: List[NFResult] = [npq.get() for npq in indata] with open('nfrlistdata.pickle', 'wb') as jso: pickle.dump(unpacked, jso) reads: List[SMeterAvg] = [] for nfr in unpacked: reads.extend(nfr.readings) with open('smavflistdata.pickle', 'wb') as jso: pickle.dump(reads, jso) up0: NFResult = unpacked[0] outdata = [] with open('nfqlistdata.pickle', 'rb') as jsi: outdata = pickle.load(jsi) brlst: List[Bandreadings] = [] for nfq in outdata: br: Bandreadings = nfq.get() brlst.append(br) a = indata[0] b = outdata[0] except(Exception, KeyboardInterrupt) as exc: if NOISE and NOISE.is_open: flexr.restore_state(initial_state) NOISE.close() UI.close() raise exc finally: print('restore flex prior state') if NOISE and NOISE.is_open: flexr.restore_state(initial_state) NOISE.close() UI.close()
import db_helper import lineApiTools from linebot import (LineBotApi, WebhookHandler) from linebot.exceptions import (InvalidSignatureError) from linebot.models import * import time from flex import Flex import flask CHANNEL_ACCESS_TOKEN = os.environ['LINE_CHANNEL_ACCESS_TOKEN'] CHANNEL_SECRET = os.environ['LINE_CHANNEL_SECRET'] line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN) handler = WebhookHandler(CHANNEL_SECRET) app = Flask(__name__) flex = Flex() @app.route('/favicon.ico') def favicon(): return "OK.There is noting!" @app.route('/') def index(): return '元気に動作中' @app.route('/callback', methods=['POST']) def callback(): # get X-Line-Signature header value