離開線圈的時候,為0, 沒有抓拍,圖片的長度為0。根據這一點來判斷確認~~--- 0---沒抓拍---離開。------pic的length就為0。 根據這一點來判斷有沒有抓拍
int DatabaseOperation::InsertData 這裡的 error = conn->Prepare(pds, (MYSQLCHAR*)SQL_COMMAND_INSERTTRAFFIC, SQL_NTS);
}執行了一個預存程序,這個預存程序決定了插入 vehicle表資料的結果。也就是說你要修改插入vehicleinfo的資料,就要修改inserttrafficdata.sql 這個的預存程序和表結構。
而且並不是一個簡簡單單的插入操作,這個問題在於,第一次線圈觸發的時候包含圖片資料,它是有效,這時候就應該執行這個預存程序,這個預存程序把資料插入到資料庫,因為這時候我們捕捉到的車身長度=0xff,所以我們就在資料中預留了這個資料(比如以-1來替代)。同時把這個trafficID放入到一個隊列中(注意,僅僅當traffic的長度不是0切車身長度==0xff的時候才能加進來,這個隊列的大小應該為20?) 後面汽車離開線圈的時候又觸發了操作了這個操作,我們通過判斷圖片的length=0來確認這一離開操作。當有這種資料的時候,我們就需要取出traffic id然後與隊列中的值進行比較,如果比較到位的情況下,我們就執行資料庫的插入操作,把車身長度的資料插入到資料庫中。
在這種情況下,使用者服務器的上傳策略顯然不可能是即時的,也就要求他們必須選擇非即時的擷取-----我們把即時資料先插入到uploadqueue當中。之後再整合提取給使用者。-----這個時間是多長,會不會存在一種情況,我們的終端伺服器還還沒來得及把資料寫入到 資料庫中。線程已經把資料發送到使用者服務器那邊了,對於這種情況如何是好?---顯然是一個很麻煩的問題。。。。。
對於最簡單的版本,我們僅僅考慮一個車經過的時候的情況。對於其他情況需要等項目實際動手的時候再進行整合。不然實在有難度。
原來資料庫中的 size就是車長。需要把它改成小數----這個也是不需要的,因為我們資料庫中可以將車長儲存為分米,所以這個值肯定是整數,如果是這種情況下,終端伺服器就不需要對資料格式上進行調整。
int DatabaseOperation::UpdateModel( 這個函數後面可能需要使用到