標籤:

Damn Comma_June 26 項目筆記_James F

下午的時候開始debug

和薛飛討論了介面問題:

發現問題在於取一個五分鐘前的數據在資料庫查詢的時候

"...where MINUTE = %d"% (minute-5)

如果是一個20:02分的時候程序就會出現蜜汁bug

然後我又懶得寫if去解決這件事情...於是我想了想要麼用time_stamp吧。

於是果斷就寫了一個

int_time = int(time.time())

並把這玩意insert到了資料庫里...

self.__conn.execute(insert into WEATHER_DATA (ID,YEAR,MONTH,DAY,HOUR,MINUTE,TIME, ILLUMINATION_INTENSITY,RAINDROP,TEMPERATURE,PM25,PM10,HUMIDITY) values(%d,%d,%d,%d,%d,%d,%d,%f,%d,%f,%f,%f,%f)% (self.counting_id,year,month,day,hour,minute,int_timeillumination_density, data_raindrop,data_temperature,data_pm25,data_pm10,data_humidity))

然後之後我在伺服器上辛辛苦苦的debug了一個多小時,一直以為是另外一個伺服器的鍋...然後怎麼調都調不好,最後蛋疼的放棄了,開始划水...然後我突然想看看vscode和記事本哪個開大文本更快,我驚訝的發現唉我居然還寫了logger居然還有14mb就用你測試了...

然後我發現log上寫著:

2016-06-19 16:39:08,839 - working_condition - DEBUG - get in the insert sys2016-06-19 16:39:08,839 - working_condition - DEBUG - so it is the dateget func goes wrong?2016-06-19 16:39:08,839 - working_condition - DEBUG - CHECK:IF YOU SEE THIS LOGGER & NO insert data successfully, THE SQL MUST GOES WRONG 2016-06-19 16:39:13,842 - working_condition - ERROR - Caught database insert error :database is locked

哈???

原來是這個伺服器出錯了嗎摔!!!

然後我發現我從初中遺留下來的不加標點的好習慣...在寫SQL的時候又給我留了一個大坑。int_time後面沒有加逗號...

啊 然後一瞬間所有代碼都可以跑了...

手機伺服器我也寫好了我會說(雖然我覺得估計連兩三個客戶端就有可能崩潰

def date_string_to_int (now): import string test = str(now) year_string = test[0:4] month_string = test[5:7] day_string = test[8:10] hour_string = test[11:13] minute_string = test[14:16] print year_string,month_string,day_string,hour_string,minute_string return string.atoi(year_string),string.atoi(month_string),string.atoi(day_string), string.atoi(hour_string),string.atoi(minute_string)def _select_row(kind,minute_before): year,month,day,hour,minute =date_string_to_int(datetime.datetime.now()) cursor = conn.execute("select %s from WEATHER_DATA where MINUTE = %d"% (kind,(minute-minute_before-1))) count = 0 list_data =[] for row in cursor: count+=1 list_data.append(row[0]) if count == minute_before*12: break return list_datadef get_data (): temperature_data = _select_row("TEMPERATURE",5) PM10_data = _select_row("PM10",5) PM25_data = _select_row("PM25",5) humidity_data = _select_row("HUMIDITY",5) raindrop_data = _select_row("RAINDROP",5) print rtn_data = json.dumps({"temperature":temprerature_data,},sort_keys=True,indent=4, separators=(,, : )) return rtn_datadef wait_sys (): while 1: tcp_cli_sock, addr = tcp_ser_sock.accept() data = tcp_cli_sock.recv(1024) if data == "2333": send_sys(get_data()) tcp_cli_sock.close() continue

主體代碼差不多就是這樣

什麼?你說你沒見過這麼爛的代碼?其實我還寫過更爛的啊(逃

應該我會良心發現給它加個logger和錯誤處理什麼的...其他的再多我就不用python了...

(感覺後期代碼要重構?

推薦閱讀:

RFID供應商艾伯科技(02708)打響香港「物聯網」概念第一槍
從LPWA熱度升級看物聯網技術趨勢
我們該如何看待最近大火的物聯網?
物聯網不是互聯網 (芥子說物聯 第一期)
為什麼要有專門的時序資料庫?

TAG:物聯網 |