freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

倉(cāng)庫(kù)管理物聯(lián)網(wǎng)系統(tǒng)項(xiàng)目詳細(xì)設(shè)計(jì)說(shuō)明書(shū)-文庫(kù)吧

2025-03-30 13:50 本頁(yè)面


【正文】 作為參數(shù)傳到sqlite_task函數(shù)中,完成相應(yīng)的數(shù)據(jù)庫(kù)操作并釋放節(jié)點(diǎn)空間,如此循環(huán);如果鏈表頭為空,則直接跳出while(1)循環(huán),再回到外部循環(huán)的pthread_cond_wait函數(shù)進(jìn)行睡眠等待 ,等待下一次被其他線程喚醒。 (2)sqlite_task()結(jié)構(gòu)圖 在上面的pthread_sqlite線程流程圖中,提到了sqlite_task函數(shù)。它用來(lái)完成讀取節(jié)點(diǎn)信息之后的數(shù)據(jù)庫(kù)操作。對(duì)數(shù)據(jù)庫(kù)的操作主要是讀取sqlite_operation結(jié)構(gòu)中成員變量來(lái)完成的。通過(guò)sqlite_operation中的table_select_mask來(lái)判斷是對(duì)數(shù)據(jù)庫(kù)中的哪個(gè)表進(jìn)行操作,然后再分別通過(guò)env_operation_mask、table_operation_mask和goods_operation_mask來(lái)判斷對(duì)選擇的表進(jìn)行什么具體的操作,例如,更新、查看和插入等等。 數(shù)據(jù)庫(kù)模塊使用的相關(guān)結(jié)構(gòu)體(1)結(jié)構(gòu)體一:所有倉(cāng)庫(kù)的信息struct env_info_clien_addr{struct storage_info storage_no[STORAGE_NUM]。 }。作用:用來(lái)保存所有倉(cāng)庫(kù)的信息storage_no[STORAGE_NUM]結(jié)構(gòu)體數(shù)組,分別代表不同的存庫(kù)信息。(2)結(jié)構(gòu)體二:某個(gè)倉(cāng)庫(kù)的所有信息struct storage_info{ unsigned char storage_status。 // 0:open 1:close unsigned char led_status。 unsigned char buzzer_status。 unsigned char fan_status。 unsigned char seg_status。 signed char x。 signed char y。 signed char z。 char samplingTime[20]。 float temperature。 float temperatureMIN。 float temperatureMAX。 float humidity。 float humidityMIN。 float humidityMAX。 float illumination。 float illuminationMIN。 float illuminationMAX。 float battery。 float adc。 float adcMIN。 struct storage_goods_info goods_info[GOODS_NUM]。}。作用:用來(lái)保存某一個(gè)倉(cāng)庫(kù)的所有信息。storage_statusled_status上燈的開(kāi)關(guān)狀態(tài)buzzer_status蜂鳴器的開(kāi)關(guān)狀態(tài)fan_status風(fēng)扇的開(kāi)關(guān)狀態(tài)seg_status數(shù)碼管的狀態(tài)x。三軸中X的數(shù)值y。三軸中y的數(shù)值z(mì)。三軸中z的數(shù)值samplingTime[20]。獲取倉(cāng)庫(kù)環(huán)境信息的時(shí)間temperature。倉(cāng)庫(kù)中溫度的大小temperatureMIN。倉(cāng)庫(kù)中溫度的預(yù)警最小值temperatureMAX。倉(cāng)庫(kù)中溫度的預(yù)警最大值humidity。倉(cāng)庫(kù)中濕度的大小humidityMIN。倉(cāng)庫(kù)中濕度的預(yù)警最小值humidityMAX。倉(cāng)庫(kù)中濕度的預(yù)警最大值illumination。倉(cāng)庫(kù)中光照強(qiáng)度的大小illuminationMIN。倉(cāng)庫(kù)中光照強(qiáng)度的預(yù)警最小值illuminationMAX。倉(cāng)庫(kù)中光照強(qiáng)度的預(yù)警最大值battery。剩余電池的百分比adc。模數(shù)轉(zhuǎn)換的數(shù)值adcMIN。模數(shù)轉(zhuǎn)換的預(yù)警最小值goods_info[GOODS_NUM]。結(jié)構(gòu)體數(shù)組,分別代表不同的貨物信息。(3)結(jié)構(gòu)體三:某種貨物的信息struct storage_goods_info{ unsigned char goods_type。 unsigned int goods_count。}。作用:用來(lái)保存某種貨物的信息goods_type貨物編號(hào)goods_count貨物數(shù)量(4)結(jié)構(gòu)體四:struct sqlite_operation{ int table_select_mask。 int env_operation_mask。 int table_operation_mask。 int goods_operation_mask。}。作用:用來(lái)保存數(shù)據(jù)庫(kù)操作信息table_select_mask。標(biāo)記對(duì)數(shù)據(jù)庫(kù)中的哪個(gè)表進(jìn)行操作env_operation_mask。標(biāo)記對(duì)數(shù)據(jù)庫(kù)中的env表進(jìn)行什么操作table_operation_mask。標(biāo)記對(duì)數(shù)據(jù)庫(kù)中的collect_env表進(jìn)行什么操作goods_operation_mask。標(biāo)記對(duì)數(shù)據(jù)庫(kù)中的goods表進(jìn)行什么操作 Sqlite3數(shù)據(jù)庫(kù)中數(shù)據(jù)的存儲(chǔ)形式表一:倉(cāng)庫(kù)環(huán)境表(environment)temperatureMax溫度最大值當(dāng)環(huán)境溫度大于最大值,需要發(fā)送報(bào)警信號(hào)temperatureMin溫度最小值當(dāng)環(huán)境溫度小于最小值,需要發(fā)送報(bào)警信號(hào)humidityMax濕度最大值當(dāng)環(huán)境濕度大于最大值,需要發(fā)送報(bào)警信號(hào)humidityMin濕度最小值當(dāng)環(huán)境濕度小于最小值,需要發(fā)送報(bào)警信號(hào)illuminationMax光照強(qiáng)度最大值當(dāng)環(huán)境光照強(qiáng)度大于最大值,需要發(fā)送報(bào)警信號(hào)illuminationMin光照強(qiáng)度最小值當(dāng)環(huán)境光照強(qiáng)度小于最小值,需要發(fā)送報(bào)警信號(hào)telephoneNum手機(jī)號(hào)報(bào)警之后發(fā)短信給管理員modeIfnociceIntervalupdatePeriodusername姓名倉(cāng)庫(kù)管理者姓名password密碼進(jìn)入倉(cāng)庫(kù)時(shí)的,需要密碼驗(yàn)證表二:倉(cāng)庫(kù)環(huán)境溫度表(collect_env)temperatureVal環(huán)境溫度值這個(gè)一個(gè)實(shí)時(shí)數(shù)據(jù),1秒采集一次humidityVal環(huán)境濕度值這個(gè)一個(gè)實(shí)時(shí)數(shù)據(jù),1秒采集一次illuminationVal環(huán)境光照強(qiáng)度值這個(gè)一個(gè)實(shí)時(shí)數(shù)據(jù),1秒采集一次envTime采集環(huán)境溫度的時(shí)間采集環(huán)境溫度的時(shí)候,保存采集時(shí)間,方便管理者進(jìn)行數(shù)據(jù)分析表三:倉(cāng)庫(kù)貨物表(goods)goodsId貨物編號(hào)貨物編號(hào),是貨物的唯一標(biāo)識(shí)goodsCount貨物數(shù)量倉(cāng)庫(kù)中所有貨物的數(shù)量goodsTime貨物入庫(kù)時(shí)間記錄貨物入庫(kù)的時(shí)間(1)互斥鎖及條件變量部分l extern pthread_cond_t cond_sqlite。 解析:數(shù)據(jù)庫(kù)線程部分的條件變量,pthread_cond_wait之后,當(dāng)其他線程使用相 同的條件變量才能喚醒數(shù)據(jù)庫(kù)線程。 程序?qū)嵗? l extern pthread_mutex_t mutex_sqlite。 解析:數(shù)據(jù)庫(kù)線程鎖,這個(gè)線程鎖是和條件變量一起配套使用的。這兩者在條件變量的使用中缺一不可。 程序?qū)嵗? l extern pthrea_mutex_t mutex_slinklist。 解析:數(shù)據(jù)庫(kù)線程鎖,這個(gè)線程鎖是用來(lái)保護(hù)鏈表資源的。防止鏈表在同一時(shí)刻被多個(gè)對(duì)象訪問(wèn)。 程序?qū)嵗? (2)結(jié)構(gòu)體部分l extern struct env_info_clien_addr env_info_clien_addr_s。 解析:全局結(jié)構(gòu)體變量,pthread_analysis線程對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢操作之后把查詢的結(jié)果保存到該結(jié)構(gòu)體中,這樣pthread_analysis線程就可以讀取到數(shù)據(jù)庫(kù)中的數(shù)據(jù)了。 程序?qū)嵗簂 extern struct env_info_clien_addr all_info_RT。 解析:全局結(jié)構(gòu)體變量,pthread_analysis線程對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢操作之后把查詢的結(jié)果保存到該結(jié)構(gòu)體中,這樣pthread_analysis線程就可以讀取到數(shù)據(jù)庫(kù)中的數(shù)據(jù)了。 程序?qū)嵗海?)函數(shù)接口部分 (具體的函數(shù)參數(shù)信息見(jiàn)文檔《數(shù)據(jù)庫(kù)接口函數(shù)詳解》)l int Create_table (void)。 解析:用于在數(shù)據(jù)庫(kù)中創(chuàng)建空表。在main函數(shù)開(kāi)始執(zhí)行時(shí),就要調(diào)用該函數(shù)創(chuàng)建好數(shù)據(jù)庫(kù)表,以供后面的線程使用。l int Init_table_env (void)。 解析:用于初始化env表的數(shù)據(jù)。在main函數(shù)開(kāi)始執(zhí)行時(shí),創(chuàng)建好數(shù)據(jù)庫(kù)表之后就對(duì)調(diào)用該函數(shù)初始化env表。l int updateEnv (struct env_info_clien_addr env_info_clien_addr_t, int storageNum_t)。 解析:用于更新env表中的信息。l int getEnv (struct env_info_clien_addr *env_info_clien_addr_t, int storageNum_t)。 解析:用于得到env表中的信息。l int insertCollect_env (struct env_info_clien_addr env_info_clien_addr_t, int storage_num)。 解析:用于向collect_env中插入新的倉(cāng)庫(kù)環(huán)境信息。l int getCollect_env (char itime_t[], int storage_num_t)。 解析:用于按指定時(shí)間獲得collect_env表中的倉(cāng)庫(kù)環(huán)境信息。l int getCollect_Current_env (int storage_num_t)。 解析:用于獲得最新的collect_env表中的倉(cāng)庫(kù)環(huán)境信息。l int insertGoods (struct env_info_clien_addr env_info_clien_addr_t, int storageNum_t, int goodsKinds_t)。 解析:用于向goods表總插入新的貨物信息。l int deletGoods (int storageNum_t, int goodsKinds_t)。 解析:用于從goods表中刪除指定的貨物信息。l int getGoods (int storageNum_t, int goods_kinds_t)。 解析:用于獲得goods表中指定的貨物信息。l int viewGoods (int storageNum_t, int goodsKinds_t)。 解析:用于查看goods表中是否有指定的貨物信息。l int addGoods (struct env_info_clien_addr env_info_clien_addr_t, int storageNum_t, int goodsKinds_t)。 解析:用于貨物入倉(cāng)時(shí)的goods表的更新。l int reduceGoods (struct env_info_clien_addr env_info_clien_addr_t, int storageNum_t, int goodsKinds_t)。 解析:用于貨物出倉(cāng)時(shí)的goods表的更新。l void sqlite_task(struct env_info_clien_addr env_info_clien_addr_t, struct sqlite_operation sqlite_operation_t, int storageNum_t, int goodsKinds_t)。 解析:用于專門執(zhí)行對(duì)sqlite3數(shù)據(jù)庫(kù)操作的函數(shù)接口,通過(guò)讀取函數(shù)參數(shù)來(lái)實(shí)現(xiàn)對(duì)sqlite3數(shù)據(jù)庫(kù)中的具體表進(jìn)行增、刪、改、查的操作。第四節(jié):數(shù)據(jù)接收模塊1. 功能描述接收M0通過(guò)Zigbee傳輸上來(lái)的消息,經(jīng)過(guò)接收端的Zigbee,再通過(guò)U轉(zhuǎn)串,此線程負(fù)責(zé)從串口讀取消息,并交給數(shù)據(jù)處理模塊,并繼續(xù)接收消息2. 數(shù)據(jù)描述類型名稱功能intdev_uart_fd串口文件描述符linklistlinkHead數(shù)據(jù)緩存鏈表頭pthread_cond_tcond_analysis數(shù)據(jù)處理模塊喚醒條件變量pthread_mutex_tmutex_linklist數(shù)據(jù)緩存保護(hù)互斥鎖3. 流程圖4. 詳細(xì)說(shuō)明本線程被創(chuàng)建后,先打開(kāi)串口ttyUSB0這一設(shè)備節(jié)點(diǎn),得到文件描述符dev_uart_fd,通過(guò)調(diào)用serial_init (dev_uart_fd)來(lái)進(jìn)行串口的初始化。之后線程通過(guò)read串口進(jìn)行睡眠,一旦有數(shù)據(jù),就從串口里讀取,并判斷包頭是否正確,若正確則讀取數(shù)據(jù),加入數(shù)據(jù)鏈表緩存.include include define LEN_ENV 20define LEN_RFID 4 extern int dev_uart_fd。extern linklist linkHead。extern pthread_cond_t cond_analysis。extern pthread_mutex_t mutex_linklist。void serial_init(int fd){ struct termios options。 tcgetattr(fd, amp。o
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1