一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),所述系統(tǒng)包括若干個(gè)餐桌模塊、一個(gè)服務(wù)模塊和一個(gè)廚房模塊;采用本發(fā)明可以讓顧客實(shí)時(shí)查看自己所有菜品的預(yù)計(jì)上餐時(shí)間,并且本發(fā)明可以修正大部分原因造成的估算誤差,在兼顧操作簡(jiǎn)便性及成本的前提下,大大提高估算精度,上餐時(shí)間誤差可以控制在兩分鐘之內(nèi);本發(fā)明通過(guò)設(shè)計(jì)人工服務(wù)請(qǐng)求并且精確了上餐時(shí)間,使餐廳服務(wù)人員的工作量大大減少,提高了工作效率和餐廳的服務(wù)質(zhì)量。
【專(zhuān)利說(shuō)明】一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明基于一套模塊化的嵌入式系統(tǒng),研究出了一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]隨著城市化的進(jìn)行,人們的生活節(jié)奏越來(lái)越快,對(duì)餐廳尤其是快餐廳的上餐時(shí)間也相應(yīng)的關(guān)注度增高。在餐廳、飯店中,不時(shí)的見(jiàn)到顧客詢問(wèn)服務(wù)員“這個(gè)菜還要等多久才上? ”之類(lèi)的話語(yǔ),而服務(wù)員往往也只是應(yīng)付說(shuō)“馬上”。顧客心中沒(méi)底,服務(wù)員心中也沒(méi)底,由此甚至?xí)斐赡Σ?,繼而可見(jiàn)顧客對(duì)上餐時(shí)間可見(jiàn)性的潛在需求。
[0003]目前這種可以估算上餐時(shí)間的算法或系統(tǒng)非常少。已有的上餐時(shí)間估算功能,也無(wú)非是人工輸入每道菜統(tǒng)計(jì)時(shí)間,在用餐顧客較少或過(guò)多時(shí),已有的算法或系統(tǒng)基本估算無(wú)效,就算正常用餐時(shí)誤差也相當(dāng)大,反而會(huì)給顧客和餐廳造成更大的困擾,并且由此對(duì)餐廳服務(wù)人員產(chǎn)生了很多不必要的工作,降低了工作效率和服務(wù)質(zhì)量。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的問(wèn)題是提供一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),該系統(tǒng)適用于大部分中低檔餐廳,能夠?yàn)槊恳晃痪筒偷念櫩蛯?shí)時(shí)反饋精確的菜品上餐時(shí)間,并且減少了餐廳服務(wù)人員的工作量,提高了餐廳的服務(wù)質(zhì)量。
[0005]為解決以上技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案:
一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),所述系統(tǒng)包括若干個(gè)餐桌模塊、一個(gè)服務(wù)模塊和一個(gè)廚房模塊。
[0006]以下是對(duì)上述技術(shù)方案的進(jìn)一步優(yōu)化:
所述餐桌模塊包括一個(gè)感應(yīng)模塊,所述感應(yīng)模塊用來(lái)感應(yīng)客戶,并將客戶準(zhǔn)備就餐的信息發(fā)送到處理器;
處理器,所述處理器接收到信息并進(jìn)行處理后,處理器向輸出模塊或無(wú)線通信模塊發(fā)出信息;
輸出模塊,所述輸出模塊接收到處理器的信息后,向客戶發(fā)出信息;
輸入模塊,所述輸入模塊用來(lái)輸入點(diǎn)餐或其他服務(wù)信息,并將信息發(fā)送到處理器;
無(wú)線通信模塊,所述無(wú)線通信模塊接收到處理器的信息后,將信息發(fā)送到服務(wù)模塊和廚房模塊,另外可以接收服務(wù)模塊和廚房模塊的信息,并將信息發(fā)送到處理器。
[0007]所述服務(wù)模塊包括一個(gè)無(wú)線通信模塊,所述無(wú)線通信模塊用來(lái)接收餐桌模塊和廚房模塊的信息,將信息發(fā)送到單片機(jī),另外可以接收單片機(jī)的信息,將信息發(fā)送到餐桌模塊和廚房模塊;
單片機(jī),所述單片機(jī)接收到信息并進(jìn)行處理后,向輸出模塊或無(wú)線通信模塊發(fā)出信息;
輸出模塊,所述輸出模塊接收到單片機(jī)的信息后,向服務(wù)人員發(fā)出信息; 輸入模塊,所述輸入模塊用來(lái)輸入信息,并將信息發(fā)動(dòng)到單片機(jī)。
[0008]所述廚房模塊包括若干個(gè)單片機(jī)模塊,所述單片機(jī)模塊與廚師一一對(duì)應(yīng),用于向廚師發(fā)送信息和廚師輸入信息;
總線,所述總線用于單片機(jī)模塊和處理器的信息傳輸;
處理器,所述處理器接收到信息后對(duì)上餐時(shí)間進(jìn)行處理,并向總線或無(wú)線通信模塊輸出信息;
無(wú)線通信模塊,所述無(wú)線通信模塊接收到處理器的信息后,將信息發(fā)送到服務(wù)模塊和餐桌模塊,另外可以接收服務(wù)模塊和餐桌模塊的信息,并將信息發(fā)送到處理器。
[0009]所述處理器對(duì)上餐時(shí)間進(jìn)行處理,所涉及的參數(shù)及變量為:
M:參數(shù),廚房能同時(shí)進(jìn)行制作的最大菜品數(shù)量;
m:變量,初值為1,已經(jīng)計(jì)算出上菜時(shí)間且未完成的菜品數(shù)量;
N:變量,當(dāng)前正在計(jì)算上菜時(shí)間的訂單中所需制作的菜品數(shù)量;η:變量,初值為1,在該訂單的菜品數(shù)量N中正在計(jì)算上菜時(shí)間的第η道菜品,順序由點(diǎn)餐順序決定;
1:變量,初值為0,開(kāi)機(jī)后已經(jīng)計(jì)算出上菜時(shí)間的菜品總數(shù)量;
C1:變量,開(kāi)機(jī)后每道菜品的編號(hào),該編號(hào)是唯一的;
tc1:變量,完成編號(hào)為Ci的菜品所需要的預(yù)計(jì)時(shí)間,可為負(fù),負(fù)值表示實(shí)際用時(shí)大于預(yù)計(jì)用時(shí);
td:變量,總上餐時(shí)間的誤差統(tǒng)計(jì)值,即每道菜品制作完成時(shí)tci數(shù)值;
POffEROFF:關(guān)機(jī)申請(qǐng)標(biāo)志位,若該標(biāo)志位為1,則系統(tǒng)關(guān)機(jī),否則不執(zhí)行任何功能。
[0010]所述處理器對(duì)上餐時(shí)間進(jìn)行處理的步驟為:
步驟S101,所述多機(jī)網(wǎng)絡(luò)系統(tǒng)開(kāi)啟;
步驟S102,對(duì)系統(tǒng)參數(shù)和變量進(jìn)行初始化,確定參數(shù)M,將變量m初始化為I,將變量1、td初始化為O ;
步驟S103,判斷訂單隊(duì)列是否為空,“是”則重復(fù)執(zhí)行步驟S103,“否”則進(jìn)入步驟S104 ; 步驟S104,提取出隊(duì)首訂單,讀取該菜單中菜品數(shù)量N,并將η初始化為I ;
步驟S105,提取訂單中第η道菜品,并編號(hào)為Ci;
步驟S106,變量m自增1,同時(shí)變量i自增I ;
步驟S107,判斷m是否大于M,“是”則進(jìn)入步驟Slll進(jìn)行上菜時(shí)間的計(jì)算;“否”則進(jìn)入步驟S108進(jìn)行上菜時(shí)間的計(jì)算;
步驟S108,從數(shù)據(jù)庫(kù)調(diào)取該菜品的統(tǒng)計(jì)時(shí)間賦值給tci,并將tci發(fā)回給餐桌模塊; 步驟S109,判斷η是否大于N,“否”則進(jìn)入步驟SI 10,“是”則進(jìn)入步驟SI 12 ;
步驟SI 10,變量η自增一,并進(jìn)入步驟105 ;
步驟S111,采用變量tci的計(jì)算方法,將計(jì)算出的用時(shí)tci發(fā)回餐桌模塊,并進(jìn)入步驟S112 ;
步驟SI 12,刷新所有菜品的上餐倒計(jì)時(shí)tcO?tci ;
步驟SI 13,判斷訂單對(duì)列是否為空,“是”則進(jìn)入步驟SI 14,“否”則進(jìn)入步驟S104 ; 步驟S114,判斷P0WER0FF是否為1,“是”則進(jìn)入步驟S116,“否”則進(jìn)入步驟S103 ; 步驟S115,關(guān)閉系統(tǒng)。
[0011]所述訂單變化時(shí),N值重新確定的步驟為:
步驟S201,廚房模塊的無(wú)線通信模塊接收到數(shù)據(jù);
步驟S202,廚房模塊的處理器解碼,判斷該數(shù)據(jù)包是否為訂單,“是”則進(jìn)入步驟S203,“否”則進(jìn)入步驟S204 ;
步驟S203,將此訂單加入到訂單列表,生成新的訂單菜品數(shù)量N ;
步驟S204,結(jié)束。
[0012]所述廚房模塊中某菜品完成時(shí),對(duì)tci進(jìn)行誤差糾正的步驟為:
步驟S301,菜品制作完成并觸發(fā)中斷;
步驟S302,獲取該菜品的倒計(jì)時(shí)剩余時(shí)間tci,tci為負(fù)值表示菜品的實(shí)際完成時(shí)間晚于預(yù)計(jì)時(shí)間;
步驟S303,變量td的值增加tci ;
步驟S304,將tci清零且凍結(jié)該變量,使得該變量的值恒為O ;
步驟S305,判斷總誤差td是否在正負(fù)30s之內(nèi),“是”則進(jìn)入步驟S308,“否”則進(jìn)入步驟 S306 ;
步驟S306,誤差時(shí)間大于30秒,等待隊(duì)列中所有菜品的倒計(jì)時(shí)剩余時(shí)間加td ;
步驟S307,td清零;
步驟S308,變量m自減I ;
步驟S309,結(jié)束。
[0013]所述Slll步驟中對(duì)變量tci的確定步驟為:
設(shè)某時(shí)刻正在烹飪的M個(gè)菜的剩余出鍋時(shí)間分別為tl,t2……tM,待計(jì)算時(shí)間的菜品在等待隊(duì)列的第Q位,因此從點(diǎn)菜順序上來(lái)說(shuō),該菜品前面有Μ+Q-l個(gè)菜,M個(gè)菜在烹飪中,Q-1個(gè)菜在等待隊(duì)列里,變量tpq表示等待隊(duì)列中第q個(gè)菜品的統(tǒng)計(jì)時(shí)間,I ^ Q;
步驟1,定義一個(gè)正在制作各個(gè)菜品的完成時(shí)間數(shù)列A={ti },即A={tl, t2…tx…tM},從中取最小值tx,并將tx值存儲(chǔ)為txO,從數(shù)列A中剔除此最小值元素tx,將數(shù)列A= {ti}中的所有元素的值均減去txO,同時(shí)在A中添加新元素tpl,即q=l時(shí)的tpq ;
步驟2,在數(shù)列A中選取最小元素值tx,將tx存儲(chǔ)為txl,從數(shù)列中剔除此最小值元素tx,將數(shù)列中所有元素的值減去txl,同時(shí)在A中添加新元素tp2,即q=2時(shí)的tpq ;
依次類(lèi)推
步驟q,在數(shù)列A中選取最小元素值tx,將tx存儲(chǔ)為tx(q-l),從數(shù)列中剔除此最小值元素tx,將數(shù)列中所有元素的值減去tx(q-l),同時(shí)在A中添加新元素tpq ;
依次類(lèi)推
步驟Q,在數(shù)列A中選取最小元素值tx,將tx存儲(chǔ)為tx (Q-1),從數(shù)列中剔除此最小值元素tx,將數(shù)列中所有元素的值減去tx(Q-l);
步驟Q+1,待計(jì)算時(shí)間的菜品的預(yù)計(jì)等待時(shí)間tci=txO+txl+......+tx (Q-1)+tpQo
[0014]本發(fā)明采用以上技術(shù)方案,具有以下有益效果:
采用本發(fā)明可以讓顧客實(shí)時(shí)查看自己所有菜品的預(yù)計(jì)上餐時(shí)間,并且本發(fā)明可以修正大部分原因造成的估算誤差,在兼顧操作簡(jiǎn)便性及成本的前提下,大大提高估算精度,上餐時(shí)間誤差可以控制在兩分鐘之內(nèi)。
[0015]本發(fā)明通過(guò)設(shè)計(jì)人工服務(wù)請(qǐng)求并且精確了上餐時(shí)間,使餐廳服務(wù)人員的工作量大大減少,提高了工作效率和餐廳的服務(wù)質(zhì)量。
[0016]下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0017]附圖1為本發(fā)明實(shí)施例中餐廳系統(tǒng)中各模塊信息的交互圖;
附圖2是附圖1中餐桌模塊的構(gòu)成圖;
附圖3是附圖1中服務(wù)模塊的構(gòu)成圖;
附圖4是附圖1中廚房模塊的構(gòu)成圖;
附圖5是計(jì)算上菜剩余時(shí)間的流程圖;
附圖6是訂單入隊(duì)的流程圖;
附圖7是上餐完成中斷的流程圖;
附圖8是本發(fā)明實(shí)施例中的一個(gè)交互界面效果圖。
【具體實(shí)施方式】
[0018]實(shí)施例1
如附圖1所示,一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),由若干個(gè)餐桌模塊、服務(wù)模塊和廚房模塊組成。系統(tǒng)內(nèi)各個(gè)模塊之間通過(guò)無(wú)線信道“連接”,無(wú)線通信協(xié)議可以采用W1-F1、Zigbee 等。
[0019]如附圖2所示,餐桌模塊包括餐桌處理器、無(wú)線通信模塊、客戶輸入模塊、感應(yīng)模塊和LCD及音頻輸出模塊;
當(dāng)客戶在餐桌就位后,餐桌模塊的感應(yīng)模塊感應(yīng)到客戶后,將信息發(fā)送到餐桌處理器,餐桌處理器發(fā)出指令,驅(qū)動(dòng)LCD及音頻輸出模塊輸出信息提醒客戶點(diǎn)餐,客戶通過(guò)客戶輸入模塊點(diǎn)餐完畢提交訂單后,餐桌處理器通過(guò)餐桌模塊的無(wú)線通信模塊將訂單信息發(fā)送到服務(wù)模塊和廚房模塊。
[0020]每個(gè)餐桌模塊均為嵌入式系統(tǒng),處理器一般為32位的嵌入式處理器,保證該模塊有簡(jiǎn)便易懂的客戶交互界面,使得顧客可以自主完成或者在服務(wù)員指導(dǎo)下完成點(diǎn)餐。
[0021]該模塊主要完成了客戶點(diǎn)餐功能,該模塊位于每個(gè)餐桌上,客戶入座后,該模塊上的人體紅外感應(yīng)模塊感應(yīng)到客戶后,將“客戶已入座”的信息發(fā)送到處理器,處理器發(fā)出指令,驅(qū)動(dòng)LCD和音頻模塊輸出“歡迎”類(lèi)信息,提醒客戶點(diǎn)餐??蛻敉ㄟ^(guò)觸摸屏點(diǎn)餐。點(diǎn)餐完畢,客戶選擇提交訂單后處理器通過(guò)無(wú)線通信模塊將訂單信息發(fā)送到服務(wù)模塊及廚房模塊。
[0022]如附圖3所示,服務(wù)模塊包括輸入模塊、單片機(jī)、IXD及蜂鳴器輸出模塊和無(wú)線通信模塊;
服務(wù)模塊的單片機(jī)通過(guò)服務(wù)模塊的無(wú)線通信模塊接收到來(lái)自餐桌模塊或廚房模塊的請(qǐng)求后,通過(guò)LCD及蜂鳴器輸出模塊輸出信息通知服務(wù)人員,服務(wù)人員通過(guò)輸入模塊確認(rèn)收到信息,信息輸入到單片機(jī),通過(guò)服務(wù)模塊的無(wú)線通信模塊反饋到餐桌模塊或/和廚房模塊。
[0023]服務(wù)模塊為一個(gè)簡(jiǎn)單的單片機(jī)系統(tǒng),單片機(jī)可以選用AVR等單片機(jī)。該模塊收到來(lái)自餐桌模塊的客戶訂單或來(lái)自廚房模塊的菜品完成請(qǐng)求,或來(lái)自某模塊的人工服務(wù)請(qǐng)求,服務(wù)員只需要簡(jiǎn)單點(diǎn)擊一下按鍵,表示已收到此請(qǐng)求。
[0024]該模塊完成了送餐及結(jié)算功能。該模塊設(shè)置在餐廳的服務(wù)員聚集區(qū),餐廳服務(wù)員在聚集區(qū)待命。
[0025]1、該模塊收到客戶提交的訂單后,正在待命的服務(wù)員便前去收款。
[0026]2、該模塊收到廚房模塊已完成菜品的信號(hào)后,正在待命的服務(wù)員便前去廚房取餐,送至相應(yīng)的顧客餐桌。
[0027]3、該模塊也可以響應(yīng)各個(gè)模塊的“請(qǐng)求人工服務(wù)”的請(qǐng)求信號(hào)。
[0028]如附圖4所示,廚房模塊包括無(wú)線通信模塊、處理器、總線和單片機(jī)模塊;
廚房模塊的處理器收到客戶訂單后,計(jì)算出訂單中每一菜品的預(yù)計(jì)上菜時(shí)間,并將該時(shí)間發(fā)回餐桌模塊,在菜品完成后,廚師通過(guò)單片機(jī)模塊將完成信息通過(guò)總線發(fā)送到處理器,處理器通過(guò)廚房模塊的無(wú)線通信模塊通知服務(wù)模塊,令服務(wù)人員前來(lái)取菜送至相應(yīng)顧客的餐桌。
[0029]廚房模塊為本系統(tǒng)的核心模塊,其中的無(wú)線通信模塊通過(guò)串口與處理器通信,餐桌模塊與服務(wù)模塊也是如此,因此可以及時(shí)發(fā)生處理器串口中斷來(lái)保存客戶訂單。
[0030]該模塊主要完成了計(jì)算菜品上菜時(shí)間的功能。該模塊設(shè)置在廚房,由一個(gè)較高性能上位機(jī)及若干低成本下位機(jī)通過(guò)總線構(gòu)成,其中各個(gè)下位機(jī)被安置在每個(gè)廚師面前,以備該廚師“領(lǐng)取任務(wù)”及“報(bào)告完成任務(wù)”。該模塊收到客戶訂單后,處理器計(jì)算出訂單中每一菜品的預(yù)計(jì)上菜時(shí)間,并將該時(shí)間發(fā)回餐桌模塊。在菜品完成后,除了會(huì)修正上餐時(shí)間夕卜,該模塊還會(huì)通知服務(wù)模塊,令正在待命的服務(wù)員前來(lái)取菜送至顧客的餐桌。另外每個(gè)廚師對(duì)應(yīng)一個(gè)下位機(jī),因此該模塊可以通過(guò)統(tǒng)計(jì)下位機(jī)的數(shù)量來(lái)確定核心算法中的M常量,M等于下位機(jī)數(shù)量。
[0031]如附圖5、6、7所示,處理器對(duì)上餐時(shí)間進(jìn)行處理,所涉及的參數(shù)及變量為:
某菜品的統(tǒng)計(jì)時(shí)間:使用的前提是統(tǒng)計(jì)出此餐廳中所有廚師計(jì)算每道菜的平均用時(shí)。比如該餐廳共有A、B、C三個(gè)廚師,他們對(duì)于做拔絲地瓜這道菜的用時(shí)分別為tA,tB,tC。則定義拔絲地瓜這道菜的統(tǒng)計(jì)時(shí)間為(tA+tB+tC)/3,并將此菜與其對(duì)應(yīng)的統(tǒng)計(jì)時(shí)間加入數(shù)據(jù)庫(kù)。
[0032]初始化:該系統(tǒng)開(kāi)機(jī)后,默認(rèn)所有廚師到位且空閑。根據(jù)廚房模塊的總線系統(tǒng)中下位機(jī)的數(shù)量M,而確定廚師數(shù)量也為M。建立一個(gè)足夠大的隊(duì)列,命名為訂單隊(duì)列。包括開(kāi)啟串口中斷及定時(shí)器中斷。
[0033]訂單隊(duì)列:該隊(duì)列是一個(gè)全局隊(duì)列,存儲(chǔ)顧客從餐桌模塊發(fā)來(lái)的訂單信息,且存儲(chǔ)單位為訂單。即從該隊(duì)列隊(duì)首提取信息時(shí),每次取出一個(gè)完整的訂單,該訂單包含的菜品數(shù)量用變量N表示。
[0034]等待隊(duì)列:當(dāng)廚房中廚師均無(wú)空閑時(shí),即此時(shí)顧客點(diǎn)的菜不能直接進(jìn)入廚房烹飪,該菜被加入“等待隊(duì)列”中。先進(jìn)入隊(duì)列中的成員先被取出。
[0035]M:參數(shù),與餐館硬件設(shè)備相關(guān),該廚房能同時(shí)進(jìn)行制作的最大菜品數(shù)量。
[0036]m:變量,初值為1,已經(jīng)計(jì)算出上菜時(shí)間且未完成的菜品數(shù)量。
[0037]N:變量,與每份菜單中菜品數(shù)量有關(guān),當(dāng)前正在計(jì)算上菜時(shí)間的訂單中所需制作的菜品數(shù)量。
[0038]η:變量,初值為I在該訂單的菜品數(shù)量N中正在計(jì)算上菜時(shí)間的第η道菜品,順序由點(diǎn)餐順序決定。
[0039]1:變量,初值為0,開(kāi)機(jī)后已經(jīng)計(jì)算出上菜時(shí)間的菜品總數(shù)量。
[0040]C1:變量,開(kāi)機(jī)后每道菜品的編號(hào),該編號(hào)是唯一的。
[0041]tc1:變量,可為負(fù),負(fù)值表示實(shí)際用時(shí)大于預(yù)計(jì)用時(shí),完成編號(hào)為Ci的菜品所需要的預(yù)計(jì)時(shí)間,即上餐倒計(jì)時(shí)。
[0042]td:變量,總上餐時(shí)間的誤差統(tǒng)計(jì)值,即每道菜品制作完成時(shí)tci數(shù)值。
[0043]P0WER0FF:關(guān)機(jī)申請(qǐng)標(biāo)志位。當(dāng)廚房模塊的電源按鈕被按下時(shí),該標(biāo)志位被置1,待程序運(yùn)行到該標(biāo)志位的判斷語(yǔ)句時(shí),若該標(biāo)志位為1,則系統(tǒng)關(guān)機(jī),否則不執(zhí)行任何功能。
[0044]如附圖5所示,為處理器對(duì)上餐時(shí)間進(jìn)行處理,計(jì)算上菜剩余時(shí)間的流程圖,該流程開(kāi)始于步驟S101,實(shí)現(xiàn)多機(jī)網(wǎng)絡(luò)系統(tǒng)開(kāi)啟功能。
[0045]在步驟S102,根據(jù)系統(tǒng)的需求和餐廳的硬件條件,對(duì)系統(tǒng)參數(shù)和變量進(jìn)行初始化,根據(jù)餐廳廚房的硬件條件,確定用來(lái)描述能夠同時(shí)制作的最大菜品數(shù)量的參量M ;將變量m初始化為I ;將變量1、td初始化為O。同時(shí),開(kāi)啟串口中斷、定時(shí)器中斷。
[0046]在步驟S103,判斷訂單隊(duì)列是否為空,“是”則重復(fù)執(zhí)行步驟S103,“否”則進(jìn)入步驟 S104。
[0047]在步驟S104,提取出隊(duì)首訂單,讀取該菜單中菜品數(shù)量為N,并將η初始化為I。其中,η表示正在計(jì)算上菜時(shí)間的第η道菜品。
[0048]在步驟S105,提取訂單中第η道菜品,并編號(hào)為Ci。變量i對(duì)應(yīng)的所有元素依次組成一個(gè)單鏈表,表示今日廚房所做的菜品總數(shù),方便進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。
[0049]在步驟S106,變量m自增1,表示即將進(jìn)行新的一道菜品的上菜時(shí)間計(jì)算;同時(shí)變量i自增I。
[0050]在步驟S107,判斷m是否大于M,“是”則表示正在制作的菜品數(shù)已經(jīng)達(dá)到同時(shí)制作的最大菜品數(shù),進(jìn)入步驟Slll進(jìn)行上菜時(shí)間的計(jì)算;“否”則表示正在制作的菜品數(shù)還未達(dá)到同時(shí)制作的最大菜品數(shù),進(jìn)入步驟S108,進(jìn)行上菜時(shí)間的常規(guī)計(jì)算。
[0051]在步驟S108,從數(shù)據(jù)庫(kù)調(diào)取該菜品的統(tǒng)計(jì)時(shí)間賦值給tci,并將tci發(fā)回給餐桌模塊。
[0052]在步驟S109,判斷η是否大于N,“否”則表示該菜單的菜品未全部制作完成,進(jìn)入步驟SllO ;“是”則表示該菜單中的所有菜品均已制作完成,進(jìn)入步驟S112。
[0053]在步驟S110,變量η自增一,并進(jìn)入步驟105,表示即將進(jìn)行計(jì)算菜單中下一道菜品的完成時(shí)間。
[0054]在步驟S111,此時(shí),正在制作的菜品數(shù)已經(jīng)達(dá)到同時(shí)制作的最大菜品數(shù),所以采用變量tci的計(jì)算方法,將計(jì)算出的用時(shí)tci發(fā)回餐桌模塊,并進(jìn)入步驟S112。
[0055]在步驟S112,刷新所有菜品的上餐倒計(jì)時(shí)tcO?tci,表示該菜單的上餐時(shí)間已經(jīng)計(jì)算完成,即將進(jìn)行新訂單的上餐時(shí)間計(jì)算。
[0056]在步驟S113,判斷訂單對(duì)列是否為空,“是”則進(jìn)入步驟S114,“否”則進(jìn)入步驟S104,開(kāi)始新菜單的上餐倒計(jì)時(shí)計(jì)算。
[0057]在步驟S114,已經(jīng)完成了所有菜單的上餐倒計(jì)時(shí)計(jì)算,判斷P0WER0FF是否為一,“是”則進(jìn)入步驟SI 16,“否”則進(jìn)入步驟S103。
[0058]在步驟S115,所有指定完成,關(guān)機(jī)。
[0059]如圖6所示,為訂單入隊(duì)的流程圖,該流程為當(dāng)餐廳中有新的訂單產(chǎn)生時(shí),N值重新確定的方法;
該流程開(kāi)始于步驟S201,廚房模塊的無(wú)線通信模塊收到數(shù)據(jù),引發(fā)廚房模塊的處理器的串口中斷。
[0060]在步驟S202,處理器解碼,判斷該數(shù)據(jù)包是否為訂單,“是”則進(jìn)入步驟S203,“否”則進(jìn)入步驟S204。
[0061]在步驟S203,處理器已判斷數(shù)據(jù)包為訂單,將此訂單加入到訂單列表。
[0062]在步驟S204,結(jié)束訂單入隊(duì)算法。
[0063]當(dāng)一道菜品完成時(shí),對(duì)時(shí)間誤差糾正的算法:
如圖7所示,為上餐完成中斷的流程圖,該流程開(kāi)始于步驟S301,餐品制作完成并觸發(fā)中斷。
[0064]在步驟S302,獲取該菜品的倒計(jì)時(shí)剩余時(shí)間tci (i=±l、±2、±3......),tci為負(fù)值表示菜品的實(shí)際完成時(shí)間晚于預(yù)計(jì)時(shí)間。
[0065]在步驟S303,變量td的值增加tci,即將菜品的制作的實(shí)際用時(shí)與預(yù)計(jì)用時(shí)的誤差tci加入到總誤差時(shí)間td中。
[0066]在步驟S304,將tci清零且凍結(jié)該變量,使得該變量的值恒為O。
[0067]在步驟S305,判斷總誤差td是否在正負(fù)30s之內(nèi),即判斷總上餐誤差時(shí)間誤差是否在30秒之內(nèi)?!笆恰眲t進(jìn)入步驟S308,“否”則進(jìn)入步驟S306。
[0068]在步驟S306,誤差時(shí)間大于30秒,等待隊(duì)列中所有菜品的倒計(jì)時(shí)剩余時(shí)間加td,即將該誤差時(shí)間加到其他菜單中各菜品的上餐倒計(jì)時(shí)中。
[0069]在步驟S307,td清零。
[0070]在步驟S308,變量m自減1,表示已經(jīng)計(jì)算完一道餐品完成的誤差時(shí)間糾正,即將進(jìn)行計(jì)算下一道菜品的完成誤差時(shí)間計(jì)算。
[0071]在步驟S309,結(jié)束誤差糾正算法。
[0072]附:其中Slll步驟中變量tci的計(jì)算方法如下:
設(shè)某時(shí)刻正在烹飪的M個(gè)菜的剩余出鍋時(shí)間分別為tl,t2……tM。待計(jì)算時(shí)間的菜品在等待隊(duì)列的第Q位,因此從點(diǎn)菜順序上來(lái)說(shuō),該菜品前面有Μ+Q-l個(gè)菜,M個(gè)菜在烹飪中,Q-1個(gè)菜在等待隊(duì)列里,變量tpq表示等待隊(duì)列中第q個(gè)菜品的統(tǒng)計(jì)時(shí)間,I彡q彡Q。
[0073]步驟I,定義一個(gè)正在制作各個(gè)菜品的完成時(shí)間數(shù)列A= {ti},即A= {tl,t2…tx…tM}。從中取最小值tx,并將tx值存儲(chǔ)為txO,從數(shù)列A中剔除此最小值元素tx。將數(shù)列A= {ti}中的所有元素的值均減去txO,同時(shí)在A中添加新元素tpl (即q=l時(shí)的tpq)。
[0074]步驟2,在數(shù)列A中選取最小元素值tx,將tx存儲(chǔ)為txl,從數(shù)列中剔除此最小值元素tx。將數(shù)列中所有元素的值減去txl,同時(shí)在A中添加新元素tp2 (即q=2時(shí)的tpq)。
[0075]依次類(lèi)推
步驟q,在數(shù)列A中選取最小元素值tx,將tx存儲(chǔ)為tx(q-l),從數(shù)列中剔除此最小值元素tx。將數(shù)列中所有元素的值減去tx(q-l),同時(shí)在A中添加新元素tpq。
[0076]依次類(lèi)推
步驟Q,在數(shù)列A中選取最小元素值tx,將tx存儲(chǔ)為tx(Q-l),從數(shù)列中剔除此最小值元素tx。將數(shù)列中所有元素的值減去tx(Q-l)。
[0077]步驟Q+1,待計(jì)算時(shí)間的菜品的預(yù)計(jì)等待時(shí)間tci=txO+txl+......+tx (Q-1) +tpQ。
[0078]如附圖8所示,為采用本發(fā)明時(shí)某個(gè)客戶點(diǎn)餐時(shí)顯示的交互界面圖。
[0079]采用本發(fā)明可以讓顧客實(shí)時(shí)查看自己所有菜品的預(yù)計(jì)上餐時(shí)間,并且本發(fā)明可以修正大部分原因造成的估算誤差,在兼顧操作簡(jiǎn)便性及成本的前提下,大大提高估算精度,上餐時(shí)間誤差可以控制在兩分鐘之內(nèi)。
[0080]本發(fā)明通過(guò)設(shè)計(jì)人工服務(wù)請(qǐng)求并且精確了上餐時(shí)間,使餐廳服務(wù)人員的工作量大大減少,提高了工作效率和餐廳的服務(wù)質(zhì)量。
[0081]以上所述為本發(fā)明最佳實(shí)施方式的舉例,其中未詳細(xì)述及的部分均為本領(lǐng)域普通技術(shù)人員的公知常識(shí)。本發(fā)明的保護(hù)范圍以權(quán)利要求的內(nèi)容為準(zhǔn),任何基于本發(fā)明的技術(shù)啟示而進(jìn)行的等效變換,也在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),其特征在于:所述系統(tǒng)包括若干個(gè)餐桌模塊、一個(gè)服務(wù)模塊和一個(gè)廚房模塊。
2.如權(quán)利要求1所述的一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),其特征在于:所述餐桌模塊包括一個(gè)感應(yīng)模塊,所述感應(yīng)模塊用來(lái)感應(yīng)客戶,并將客戶準(zhǔn)備就餐的信息發(fā)送到處理器; 處理器,所述處理器接收到信息并進(jìn)行處理后,向輸出模塊或無(wú)線通信模塊發(fā)出信息; 輸出模塊,所述輸出模塊接收到處理器的信息后,向客戶發(fā)出信息; 輸入模塊,所述輸入模塊用來(lái)輸入點(diǎn)餐或其他信息,并將信息發(fā)送到處理器; 無(wú)線通信模塊,所述無(wú)線通信模塊接收到處理器的信息后,將信息發(fā)送到服務(wù)模塊和廚房模塊,另外可以接收服務(wù)模塊和廚房模塊的信息,并將信息發(fā)送到處理器。
3.如權(quán)利要求1所述的一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),其特征在于:所述服務(wù)模塊包括一個(gè)無(wú)線通信模塊,所述無(wú)線通信模塊用來(lái)接收餐桌模塊和廚房模塊的信息,將信息發(fā)送到單片機(jī),另外可以接收單片機(jī)的信息,將信息發(fā)送到餐桌模塊和廚房模塊; 單片機(jī),所述單片機(jī)接收到信息并進(jìn)行處理后,向輸出模塊或無(wú)線通信模塊發(fā)出信息; 輸出模塊,所述輸出模塊接收到單片機(jī)的信息后,向服務(wù)人員發(fā)出信息; 輸入模塊,所述輸入模塊用來(lái)輸入信息,并將信息發(fā)動(dòng)到單片機(jī)。
4.如權(quán)利要求1所述的一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),其特征在于:所述廚房模塊包括若干個(gè)單片機(jī)模塊,所述單片機(jī)模塊與廚師一一對(duì)應(yīng),用于向廚師發(fā)送信息和廚師輸入信息; 總線,所述總線用于單片機(jī)模塊和處理器的信息傳輸; 處理器,所述處理器接收到信息后對(duì)上餐時(shí)間進(jìn)行處理,并向總線或無(wú)線通信模塊輸出信息; 無(wú)線通信模塊,所述無(wú)線通信模塊接收到處理器的信息后,將信息發(fā)送到服務(wù)模塊和餐桌模塊,另外可以接收服務(wù)模塊和餐桌模塊的信息,并將信息發(fā)送到處理器。
5.如權(quán)利要求4所述的一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),其特征在于:所述處理器對(duì)上餐時(shí)間進(jìn)行處理,所涉及的參數(shù)及變量為: M:參數(shù),廚房能同時(shí)進(jìn)行制作的最大菜品數(shù)量; m:變量,初值為1,已經(jīng)計(jì)算出上菜時(shí)間且未完成的菜品數(shù)量; N:變量,當(dāng)前正在計(jì)算上菜時(shí)間的訂單中所需制作的菜品數(shù)量;η:變量,初值為1,在該訂單的菜品數(shù)量N中正在計(jì)算上菜時(shí)間的第η道菜品,順序由點(diǎn)餐順序決定; 1:變量,初值為O,開(kāi)機(jī)后已經(jīng)計(jì)算出上菜時(shí)間的菜品總數(shù)量; C1:變量,開(kāi)機(jī)后每道菜品的編號(hào),該編號(hào)是唯一的; tc1:變量,完成編號(hào)為Ci的菜品所需要的預(yù)計(jì)時(shí)間,可為負(fù),負(fù)值表示實(shí)際用時(shí)大于預(yù)計(jì)用時(shí); td:變量,總上餐時(shí)間的誤差統(tǒng)計(jì)值,即每道菜品制作完成時(shí)tci數(shù)值; POffEROFF:關(guān)機(jī)申請(qǐng)標(biāo)志位,若該標(biāo)志位為1,則系統(tǒng)關(guān)機(jī),否則不執(zhí)行任何功能。
6.如權(quán)利要求5所述的一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),其特征在于:所述處理器對(duì)上餐時(shí)間進(jìn)行處理的步驟為: 步驟S101,所述多機(jī)網(wǎng)絡(luò)系統(tǒng)開(kāi)啟; 步驟S102,對(duì)系統(tǒng)參數(shù)和變量進(jìn)行初始化,確定參數(shù)M,將變量m初始化為I,將變量1、td初始化為O ; 步驟S103,判斷訂單隊(duì)列是否為空,“是”則重復(fù)執(zhí)行步驟S103,“否”則進(jìn)入步驟S104 ; 步驟S104,提取出隊(duì)首訂單,讀取該菜單中菜品數(shù)量N,并將η初始化為I ; 步驟S105,提取訂單中第η道菜品,并編號(hào)為Ci; 步驟S106,變量m自增1,同時(shí)變量i自增I ; 步驟S107,判斷m是否大于M,“是”則進(jìn)入步驟Slll進(jìn)行上菜時(shí)間的計(jì)算;“否”則進(jìn)入步驟S108進(jìn)行上菜時(shí)間的計(jì)算; 步驟S108,從數(shù)據(jù)庫(kù)調(diào)取該菜品的統(tǒng)計(jì)時(shí)間賦值給tci,并將tci發(fā)回給餐桌模塊; 步驟S109,判斷η是否大于N,“否”則進(jìn)入步驟SI 10,“是”則進(jìn)入步驟SI 12 ; 步驟SI 10,變量η自增一,并進(jìn)入步驟105 ; 步驟S111,采用變量tci的計(jì)算方法,將計(jì)算出的用時(shí)tci發(fā)回餐桌模塊,并進(jìn)入步驟S112 ; 步驟SI 12,刷新所有菜品的上餐倒計(jì)時(shí)tcO?tci ; 步驟SI 13,判斷訂單對(duì)列是否為空,“是”則進(jìn)入步驟SI 14,“否”則進(jìn)入步驟S104 ; 步驟S114,判斷P0WER0FF是否為1,“是”則進(jìn)入步驟S116,“否”則進(jìn)入步驟S103 ; 步驟S115,關(guān)閉系統(tǒng)。
7.如權(quán)利要求5所述的一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),其特征在于:所述訂單變化時(shí),N值重新確定的步驟為: 步驟S201,廚房模塊的無(wú)線通信模塊接收到數(shù)據(jù); 步驟S202,廚房模塊的處理器解碼,判斷該數(shù)據(jù)包是否為訂單,“是”則進(jìn)入步驟S203,“否”則進(jìn)入步驟S204 ; 步驟S203,將此訂單加入到訂單列表,生成新的訂單菜品數(shù)量N ; 步驟S204,結(jié)束。
8.如權(quán)利要求5所述的一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),其特征在于:所述廚房模塊中某菜品完成時(shí),對(duì)tci進(jìn)行誤差糾正的步驟為: 步驟S301,菜品制作完成并觸發(fā)中斷; 步驟S302,獲取該菜品的倒計(jì)時(shí)剩余時(shí)間tci,tci為負(fù)值表示菜品的實(shí)際完成時(shí)間晚于預(yù)計(jì)時(shí)間; 步驟S303,變量td的值增加tci ; 步驟S304,將tci清零且凍結(jié)該變量,使得該變量的值恒為O ; 步驟S305,判斷總誤差td是否在正負(fù)30s之內(nèi),“是”則進(jìn)入步驟S308,“否”則進(jìn)入步驟 S306 ; 步驟S306,誤差時(shí)間大于30秒,等待隊(duì)列中所有菜品的倒計(jì)時(shí)剩余時(shí)間加td ; 步驟S307,td清零; 步驟S308,變量m自減I ; 步驟S309,結(jié)束。
9.如權(quán)利要求6所述的一種用于餐廳精確上餐時(shí)間的多機(jī)網(wǎng)絡(luò)系統(tǒng),其特征在于:所述Slll步驟中對(duì)變量tci的確定步驟為: 設(shè)某時(shí)刻正在烹飪的M個(gè)菜的剩余出鍋時(shí)間分別為tl,t2……tM,待計(jì)算時(shí)間的菜品在等待隊(duì)列的第Q位,因此從點(diǎn)菜順序上來(lái)說(shuō),該菜品前面有Μ+Q-l個(gè)菜,M個(gè)菜在烹飪中,Q-1個(gè)菜在等待隊(duì)列里,變量tpq表示等待隊(duì)列中第q個(gè)菜品的統(tǒng)計(jì)時(shí)間,I ^ Q; 步驟1,定義一個(gè)正在制作各個(gè)菜品的完成時(shí)間數(shù)列A={ti },即A={tl, t2…tx…tM},從中取最小值tx,并將tx值存儲(chǔ)為txO,從數(shù)列A中剔除此最小值元素tx,將數(shù)列A={ti}中的所有元素的值均減去txO,同時(shí)在A中添加新元素tpl,即q=l時(shí)的tpq; 步驟2,在數(shù)列A中選取最小元素值tx,將tx存儲(chǔ)為txl,從數(shù)列中剔除此最小值元素tx,將數(shù)列中所有元素的值減去txl,同時(shí)在A中添加新元素tp2,即q=2時(shí)的tpq ; 依次類(lèi)推 步驟q,在數(shù)列A中選取最小元素值tx,將tx存儲(chǔ)為tx(q-l),從數(shù)列中剔除此最小值元素tx,將數(shù)列中所有元素的值減去tx(q-l),同時(shí)在A中添加新元素tpq ; 依次類(lèi)推 步驟Q,在數(shù)列A中選取最小元素值tx,將tx存儲(chǔ)為tx (Q-1),從數(shù)列中剔除此最小值元素tx,將數(shù)列中所有元素的值減去tx(Q-l); 步驟Q+1,待計(jì)算時(shí)間的菜品的預(yù)計(jì)等待時(shí)間tci=txO+txl+......+tx (Q-1)+tpQo
【文檔編號(hào)】G06Q50/12GK104376516SQ201410748249
【公開(kāi)日】2015年2月25日 申請(qǐng)日期:2014年12月10日 優(yōu)先權(quán)日:2014年12月10日
【發(fā)明者】張一鳴, 邢智皓, 李政, 彭國(guó)豪, 王晶, 宋陽(yáng), 孫建清 申請(qǐng)人:張一鳴, 彭國(guó)豪