# Flask ## Install packages ``` pip install Flask-Bootstrap flask-bs4 Flask-Login Flask-Mail Flask-Migrate Flask-Moment Flask-SQLAlchemy Flask-WTF WTForms mysql-connector-python email_validator ``` ## 環境變數 - DB_URI - DB_NAME - DB_USER - DB_PASSWORD - FLASK_CONFIG = prodution # MySQL ## Initial 1. Create `autostation` schema. 2. Create `station_state` table. ```sql use autostation; CREATE TABLE station_state( id CHAR(255) NOT NULL, ip CHAR(255) NOT NULL, dhcp_ip CHAR(255) NOT NULL, name CHAR(255) NOT NULL, setupfilemd5 CHAR(255) NOT NULL, setupfileversion CHAR(255) NOT NULL, status CHAR(255) NOT NULL, update_time DATETIME NOT NULL, PRIMARY KEY ( id ) ); ``` 3. Create `station_report` table. ``` CREATE TABLE `autostation`.`station_report` ( `id` INT NOT NULL AUTO_INCREMENT, `AutoStationName` VARCHAR(255) NOT NULL, `DeviceName` VARCHAR(255) NOT NULL, `Vid` INT NOT NULL, `Pid` INT NOT NULL, `FirmwareVersion` VARCHAR(255) NOT NULL, `TestCategory` VARCHAR(255) NOT NULL, `VerificationMode` VARCHAR(255) NOT NULL, `TestID` VARCHAR(255) NOT NULL, `TestResult` VARCHAR(255) NOT NULL, `reportjson` LONGTEXT NULL, `reporttxt` LONGTEXT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `id_UNIQUE` (`id` ASC)); ``` # TrayIcon - Configuration file: `C:\EasyAVEngine\RobotRunAutoStation\ServerList.json` ## Notify server ### LogPushDone ![[LogPushDone_server.png]] ![[LogPushDone_client01.png]] ![[LogPushDone_client02.png]] ```python cc = CAutoStationService() # status="Running" cc.LogPush() # push log to server, it runs in another process. ## or CAutostationService解構,也會自己呼叫一次cc.LogPush() ``` ## APIs - Trigger a parser for test result folder - ![[trigger a parser for test result folder.png]]