




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
研發(fā)生產(chǎn)中心文檔編號(hào)5A1密級(jí)商密A不項(xiàng)目名稱Xx系統(tǒng)項(xiàng)目來(lái)源QR-RD-022(Verl.2)XXX系統(tǒng)
詳細(xì)設(shè)計(jì)說(shuō)明書(內(nèi)部資料請(qǐng)勿外傳)編檢審批寫:g:核:準(zhǔn):編檢審批寫:g:核:準(zhǔn):XX公司版權(quán)所有不得復(fù)制
文檔變更記錄序號(hào)變更(+/-)說(shuō)明作者版本號(hào)日期批準(zhǔn)12TOC\o"1-5"\h\z\o"CurrentDocument".引言 5\o"CurrentDocument"編寫目的和范圍 5\o"CurrentDocument"術(shù)語(yǔ)表 5\o"CurrentDocument"參考資料 5\o"CurrentDocument"使用的文字處理和繪圖工具 5\o"CurrentDocument".全局?jǐn)?shù)據(jù)結(jié)構(gòu)說(shuō)明 6常量 6變量 6\o"CurrentDocument"數(shù)據(jù)結(jié)構(gòu) 6\o"CurrentDocument".模塊設(shè)計(jì) 6\o"CurrentDocument"用例圖 6\o"CurrentDocument"功能設(shè)計(jì)說(shuō)明 7模塊1 錯(cuò)誤!未定義書簽。模塊2 錯(cuò)誤!未定義書簽。\o"CurrentDocument".接口設(shè)計(jì) 42\o"CurrentDocument"內(nèi)部接口 42\o"CurrentDocument"外部接口 42接口說(shuō)明 42調(diào)用方式 42\o"CurrentDocument".數(shù)據(jù)庫(kù)設(shè)計(jì) 42\o"CurrentDocument".系統(tǒng)安全保密設(shè)計(jì) 42說(shuō)明 42設(shè)計(jì) 42\o"CurrentDocument"數(shù)據(jù)傳輸部分 42622 IP過(guò)濾分部 43\o"CurrentDocument"身份驗(yàn)證部分 43\o"CurrentDocument".系統(tǒng)性能設(shè)計(jì) 43\o"CurrentDocument".系統(tǒng)出錯(cuò)處理 431.引言編寫目的和范圍說(shuō)明寫這份詳細(xì)設(shè)計(jì)說(shuō)明書的目的。本詳細(xì)設(shè)計(jì)說(shuō)明書編寫的目的是說(shuō)明程序模塊的設(shè)計(jì)考慮,包括程序描述、輸入/輸出、算法和流程邏輯等,為軟件編程和系統(tǒng)維護(hù)提供基礎(chǔ)。本說(shuō)明書的預(yù)期讀者為系統(tǒng)設(shè)計(jì)人員、軟件開發(fā)人員、軟件測(cè)試人員和項(xiàng)目評(píng)審人員。術(shù)語(yǔ)表定義系統(tǒng)或產(chǎn)品中涉及的重要術(shù)語(yǔ),為讀者在閱讀文檔時(shí)提供必要的參考信息。序號(hào)術(shù)語(yǔ)或縮略語(yǔ)說(shuō)明性定義1PMProjectManager,項(xiàng)目經(jīng)理2參考資料列出有關(guān)資料的名稱、作者、文件編號(hào)或版本等。參考資料包括:a.需求說(shuō)明書、架構(gòu)設(shè)計(jì)說(shuō)明書等;b.本項(xiàng)目的其他已發(fā)表的文件;c.引用文件、資料、軟件開發(fā)標(biāo)準(zhǔn)等。資料名稱作者文件編號(hào)、版本資料存放地占■■八使用的文字處理和繪圖工具文字處理軟件:wordoffice繪圖工具:Visio.全局?jǐn)?shù)據(jù)結(jié)構(gòu)說(shuō)明本章說(shuō)明本程序系統(tǒng)中使用的全Q數(shù)據(jù)常量、變量和數(shù)據(jù)結(jié)構(gòu)。常量staticStringSERVER_ADDRESS服務(wù)器地址booleanloginFlag登錄狀態(tài)變量Bluellserlnfo用戶賬戶結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)結(jié)構(gòu)名稱,功能說(shuō)明,具體數(shù)據(jù)結(jié)構(gòu)說(shuō)明(定義、注釋、取值)等。.模塊設(shè)計(jì)用例圖功能設(shè)計(jì)說(shuō)明登錄模塊模塊1主要分為以下幾個(gè)子模塊:子模塊1、子模塊2和子模塊N。設(shè)計(jì)圖?⑤中團(tuán)?93G/I占下午4:470藍(lán)色海洋溯源系統(tǒng)0功能描述此模塊的主要功能是登錄驗(yàn)證功能,保證程序的安全性問(wèn)題。用戶需要驗(yàn)證用戶和密碼是否正確才能進(jìn)行下一部操作。輸入數(shù)據(jù)變量名類型說(shuō)明
userNanieStung用戶名(必填)passwordStung密碼(必填)STOPSPLASHint開場(chǎng)動(dòng)畫標(biāo)志位SPLASHTIMElong消息發(fā)送延遲時(shí)間LOGINBUTTONint登錄按鈕是否能夠點(diǎn)擊標(biāo)志位輸出數(shù)據(jù)字段說(shuō)明code結(jié)果,0表示失敗,1表示成功,2表示該養(yǎng)殖場(chǎng)地不存在,3表示該Rfid已存在userNanie用戶名Password密碼userRoleld用戶權(quán)限,1代表系統(tǒng)用戶,2代表人事部,3代表育苗場(chǎng),4代表生產(chǎn)部,5代表加工廠,6代表市場(chǎng)部,7代表捕撈管理員表現(xiàn)形式為:code=l流程圖源程序文件說(shuō)明函數(shù)說(shuō)明對(duì)密碼進(jìn)行MD5加密:md5(密碼)將用戶的賬號(hào)密碼暫時(shí)保存等下次登錄時(shí)可以不用再次輸入:saveUserlnfo(Activity名,用戶名,密碼)限制條件必須在有網(wǎng)的條件下能使用登錄功能。
322人員管理設(shè)計(jì)圖4人員管理員工卡掃描員工RFID員工卡掃描員工RFID號(hào)員工工號(hào)請(qǐng)輸入員工工號(hào)功能描述通過(guò)手持設(shè)備掃描員工的RFID號(hào),并在員工工號(hào)的輸入框手動(dòng)輸入員工工號(hào),并將兩條數(shù)據(jù)上傳到服務(wù)器中的數(shù)據(jù)庫(kù)。將員工工號(hào)與RFID號(hào)相互綁定。輸入數(shù)據(jù)變量名屬性說(shuō)明numberstruig員工的員工號(hào)(必填)rfidstruig員工的RFID號(hào)(必填)如:E2005032530B0187144085E3在檢測(cè)數(shù)據(jù)的有效性是像是判斷數(shù)據(jù)是否為空,當(dāng)向服務(wù)器發(fā)送消息時(shí)服務(wù)器會(huì)對(duì)數(shù)據(jù)進(jìn)行有效性檢測(cè),顯示判斷員工的員工號(hào)是否存在,員工的RFID號(hào)是否已被其他工作人員應(yīng)將綁定。這些數(shù)據(jù)的獲取離不開具有RFID掃描功能的手持設(shè)備,對(duì)員工的RFID卡進(jìn)行掃描獲取RFLD號(hào)。才實(shí)現(xiàn)此功能輸出數(shù)據(jù)變量名屬性說(shuō)明numberstring員工的員工號(hào)
rfidsuing員工的RFID號(hào)flagint數(shù)據(jù)存儲(chǔ)狀態(tài)的標(biāo)志位數(shù)據(jù)設(shè)計(jì)給出本程序中的局部數(shù)據(jù)結(jié)構(gòu)說(shuō)明,包括數(shù)據(jù)結(jié)構(gòu)名稱,功能說(shuō)明,具體數(shù)據(jù)結(jié)構(gòu)說(shuō)明(定義、注釋設(shè)計(jì)、取值)等。相關(guān)數(shù)據(jù)庫(kù)表,數(shù)據(jù)存儲(chǔ)設(shè)計(jì)(具體說(shuō)明需要以文件方式保存的數(shù)據(jù)文件名、數(shù)據(jù)存儲(chǔ)格式、數(shù)據(jù)項(xiàng)及屬性等。)3.2.27源程序文件說(shuō)明packagecom.blueocean.BlueOceanSource.ui;importandroid,app.Activity;importandroid,content.Context;importandroid,os.Bundle;importandroid,text.TextUtils;importandroid,util.Log;importandroid,view.View;importandroid,widget.Button;importandroid,widget.EditText;importandroid,widget.TextView;importandroid,widget.Toast;importcn.pda.hf.Util;importcom.blueocean.BlueOceanSource.R;importcom.blueocean.BlueOceanSource.entity.BlueOceanEmployee;importcom.blueocean.BlueOceanSource.service.BlueOceanEmployeeService;importcom.blueocean.BlueOceanSource.service.UploadService;importcom.blueocean.BlueOceanSource.utility.RfidScan;//弓|入RFIDIim的開發(fā)包*Createdbyzhouxingguoon2015/7/15.*/publicclassEmployeeActivityextendsActivity{privateButtonscan;privateButtonsonMessage;//保存員.匚信息privateEditTextinputNumber;//員工編',;、卡vprivateTextViewinputRfid;//員/.'RFID信息privateStringnumber; 獲取得到的卡號(hào)、綜privateString丫£\&;〃獲取得到的RF1DprivateRfidScanrfidScan;privateStringrfidget;?OverridepublicvoidonCreate(BundlesavedinstanceState){super.onCreate(savedlnstanceState);setContentView(R.layout。activity_employee);Util,initSoundPool(this);initO;〃獲取RFID號(hào)和員工工號(hào)并保存到本地?cái)?shù)據(jù)庫(kù)〃初始化控件privatevoidinit(){inputNumber二(EditText)findViewById(R.id.input_employee_number);inputRfid=(TextView)findViewByld(R.id.input_einployee_rfid);saveMessage二(Button)findViewById(R.id.save_message_employee);scan=(Button)findViewByld(R.id.scan_rfid);MyListenerlistener=newMyListener(this);saveMessage.setOnClickListener(listener);scan.setOnClickListener(listener);// datareceivegetlntent().getExtras();// dataflag=datareceive.getint("dataflag");// //O代表從主界面跳轉(zhuǎn),1代表從掃描接口跳轉(zhuǎn)// if(dataflag==O){// inputRfid.setText(“請(qǐng)掃描員工卡號(hào)“);//}elseif(dataflag==l){// rfidget=datareceive.getstring("rfid");〃O代表從員工錄入跳轉(zhuǎn),1代表從快遞跳轉(zhuǎn)// inputRfid.setText(rfidget);//})privateclassMyListenerimplementsView.OnClickListener{privateContextcontext;publicMyListener(Contextcontext){this,context二context;)?OverridepublicvoidonClick(Viewview){switch(view,getld()){caseR?id.scan_rfid:rfidScan=newRfidScanO;rfidget=rfidScan.scan();if(rfidget!=nul1){inputRfid.setText(rfidget);)else(Toast./z?aA,eZ,e-Yf(getApplicationContext(),R.string.scan_rfid_fail,Toast.LENGTH_SHORT).show();)break;caseR.id.save」nessage_employee:〃保存員」:信息按鈕到數(shù)據(jù)庫(kù),保存成功之后清空editText//要保證輸入的信息不能全部為空if(JTextUtils.isEmpty(inputNumber.getText())&&!TextUtils.isEmpfk(inputRfid.getText())){number=inputNumber.getText().toString().trim();rfid二inputRfid.getText().toString().trim();BlueOceanEmployeeServiceemployeeService=newBlueOceanEmployeeService(context);BlueOceanEmployeeboe二newBlueOceanEmployee();intflag=0;〃0表示保存到本地?cái)?shù)據(jù)庫(kù),1表示本地?cái)?shù)據(jù)庫(kù)數(shù)據(jù)待刪除boe.setFlag(flag);boe.setNumber(number);boe.setRfid(rfid);employeeService.insert(boe);inputNumber.setText("");inputRfid.setText(**);Toast. (getApplicationContext(),R.string.bind_successyToast.LENGTH_LONd).show();〃開辟一個(gè)新線程上傳數(shù)據(jù)newThread(networkTask).start();Toast. (getApplicationContext(),R.string.save_success_toast,Toast.LENGTH_LONd).show();;else{Toast.jnakeFext(getApplicationContext(),R.string.employee_rfid_number_not_null,Toast.LENGTH_LON&).show();break;RunnablenetworkTask二newRunnable(){?Overridepublicvoidrun(){//TODO//在這里進(jìn)行httprequest.網(wǎng)絡(luò)請(qǐng)求相關(guān)操作
UploadServiceuploadService=newUploadService();uploadService.upload(getApplicationContext());));)函數(shù)說(shuō)明大掃描RFID就成功時(shí)發(fā)出提示音:Util.initSoundPool(activity名稱);程序的主體:init();開啟數(shù)據(jù)上傳線程:networkTask限制條件要實(shí)現(xiàn)此功能必須要具備可以掃描RFID功能的手持設(shè)備,不然無(wú)法掃描員工的RFID號(hào)。3.2.3池塘管理設(shè)計(jì)圖?⑤牛。B 鎊G,M?下午9:37四 池塘管理池塘RFID池塘RFID號(hào)池塘編號(hào)請(qǐng)輸入池塘編號(hào)功能描述此模塊主要實(shí)現(xiàn)的功能是掃描池塘的RFID,并手動(dòng)輸入池塘編號(hào),并將其保存到本地?cái)?shù)據(jù)庫(kù)。并等到有網(wǎng)的條件下,將此條信息上傳到服務(wù)器端的數(shù)據(jù)庫(kù)。實(shí)現(xiàn)池塘RFID號(hào)與池塘編號(hào)的綁定。輸入數(shù)據(jù)變量名屬性說(shuō)明numbersuing池塘編號(hào)(必填)如:育苗池1rfidsuing池塘的RFID號(hào)(必填):
E2005032530B0187144085E3在檢測(cè)數(shù)據(jù)有效性時(shí),需要檢測(cè)數(shù)據(jù)是否為空。這些數(shù)據(jù)的獲取離不開具有RFID掃描功能的手持設(shè)備,對(duì)池塘的RFID卡進(jìn)行掃描獲取RFID號(hào)。才實(shí)現(xiàn)此功能輸出數(shù)據(jù)變量名屬性說(shuō)明numbersuing池塘編號(hào)rfidsuing池塘的RFID號(hào)flaghit數(shù)據(jù)存儲(chǔ)標(biāo)志位業(yè)務(wù)算法和流程數(shù)據(jù)設(shè)計(jì)給出本程序中的局部數(shù)據(jù)結(jié)構(gòu)說(shuō)明,包括數(shù)據(jù)結(jié)構(gòu)名稱,功能說(shuō)明,具體數(shù)據(jù)結(jié)構(gòu)說(shuō)明(定義、注釋設(shè)計(jì)、取值)等。相關(guān)數(shù)據(jù)庫(kù)表,數(shù)據(jù)存儲(chǔ)設(shè)計(jì)(具體說(shuō)明需要以文件方式保存的數(shù)據(jù)文件名、數(shù)據(jù)存儲(chǔ)格式、數(shù)據(jù)項(xiàng)及屬性等。)源程序文件說(shuō)明packagecom.blueocean.BlueOceanSource.ui;importandroid.app.Activity;importandroid,content.Context;importandroid,os.Bundle;importandroid,text.TextUtils;importandroid,util.Log;importandroid,view.View;importandroid,widget.Button;importandroid,widget.EditText;importandroid,widget.TextView;importandroid,widget.Toast;importcn.pda.hf.Util;importcom.blueocean.BlueOceanSource.R;importcom.blueocean.BlueOceanSource.entity.BlueOceanPond;importcom.blueocean.BlueOceanSource.service.BlueOceanPondService;importcom.blueocean.BlueOceanSource.service.UploadService;importcom.blueocean.BlueOceanSource.utility.RfidScan;/***Createdbyzhouxingguoon2015/7/15.*/publicclassPondActivityextendsActivity{privateButton 〃點(diǎn)擊掃描池塘privateButton 〃綁定池塘編號(hào)和RFID信息privateEditTextpon新"/池塘編號(hào)、卡號(hào)privateTextViewpondRfid;RFIDprivateString '獲取得到的卡、編號(hào)privateString 獲取得到的RFIDprivateRfidScanrfidScan;privateStringrfidget;?OverridepublicvoidonCreate(BundlesavedinstanceState){super.onCreate(savedlnstanceState);setContentView(R.layout,activity_pond);Util,initSou/idPool(this);init();)//初始化控件privatevoidinit(){pondNumber=(EditText)findViewById(R.id.input_pond_number);pondRfid=(TextView)findViewByld(R.id.input_pond_rfid);scanPond=(Button)findViewById(R.id.scan_pond_rfid);bindPond二(Button)findViewByld(R.id.bind_pond);MyListenerlistener=newMyListener(this);scanPond.setOnClickListener(listener);bindPond.setOnClickListener(listener);)privateclassMyListenerimplementsView.OnClickListener{privateContextcontext;publicMyListener(Contextcontext){this,context二context;)@OverridepublicvoidonClick(Viewview){Log.d(〃aa","進(jìn)入點(diǎn)擊“);switch(view,getld()){caseR?id.scan_pond_rfid\rfidScan=newRfidScanO;rfidget=rfidScan.scan();if(rfidget!=nul1){pondRfid.setText(rfidget);}else(Toast.儂AeText(getApplicationContext(),R.string.scan_rfid_fail,Toast.LENGTH_SHORT).show();)break;caseR. bind_pond:〃保存員工信息按鈕到數(shù)據(jù)庫(kù),保存成功之后清空editText〃要保證輸入的信息不能全部為空if(JTextUtils.isEmpty(pondNumber.getText())&&!TextUtils.isEmpfK(pondRfid.getText())){number二pondNumber.getText().toString().trim();rfid二pondRfid.getText().toString().trim();BlueOceanPondServicepondService=newBlueOceanPondService(context);BlueOceanPondboe=newBlueOceanPondO;intflag=0;〃O表示保存到本地?cái)?shù)據(jù)庫(kù),1表示本地?cái)?shù)據(jù)庫(kù)數(shù)據(jù)待刪除boe.setFlag(flag);boe.setNumber(number);boe.setRfid(rfid);pondService.insert(boe);pondNumber.setText("");pondRfid.setText("");Toast.儂Vext(getApplicationContext(),R.string.bind_successyToast.LENGTH_LONd).show();〃開辟一個(gè)新線程上傳數(shù)據(jù)newThread(networkTask).start();)else{Toast.儂Vext(getApplicationContext(),R.string.pond_rfid_number_not_null,Toast.LENGTH_LONd).show();}break;RunnablenetworkTask二newRunnable(){?Overridepublicvoidrun(){//TODO//在這里進(jìn)行httprequest.網(wǎng)絡(luò)請(qǐng)求相關(guān)操作UploadServiceuploadService=newUploadService();uploadService.upload(PondActivity.this);)};}函數(shù)說(shuō)明當(dāng)掃描RFID就成功時(shí)發(fā)出提示音:Util.initSoundPool(activity名稱);程序的主體:init();開啟數(shù)據(jù)上傳線程:networkTask限制條件要實(shí)現(xiàn)此功能必須要具備可以掃描RFID功能的手持設(shè)備,不然無(wú)法掃描員工的RFID號(hào)。3.2.4育苗管理設(shè)計(jì)圖育物售中9 索G,M?上午9:07事育苗管理員工RFID號(hào)員工卡掃描池塘RFID號(hào)批次二維碼操作類型池塘溫度員工卡掃描池塘RFID號(hào)批次二維碼操作類型池塘溫度功能描述本功能主要是對(duì)員工對(duì)育苗池的操作進(jìn)行記錄,顯示掃描員工RFID、池塘RFID。還要掃描海產(chǎn)品的批次二維碼,當(dāng)員工對(duì)池塘進(jìn)行操作時(shí),需要記錄操作類型,并且記錄池塘的溫度。經(jīng)這些信息記錄到本地?cái)?shù)據(jù)庫(kù)。輸入數(shù)據(jù)變顯彳屬性說(shuō)明
ifidgetUserstring員工的RFID(必填)如:E2005032530B0187144085E3ifidgetPoolsuing池塘的RFID號(hào)(必填)如:E2005032530B017318305B53BatchStrmg批次二維碼(必填)http://suyuan.cluiiablueocean.coni/show.html7id=18FC90BE5B8124AF983421D29BFC4352getEvenTypeStrmg操作類型(必填),包括:喂食、換水、測(cè)溫、入池、投放tempStrmg溫度(非必填)如:10CtimeStrmg時(shí)間(必填)如:201603110922在檢測(cè)數(shù)據(jù)有效性時(shí),需要檢測(cè)ifldgetUsei與ifidgetPool兩個(gè)輸入變量是否為空。這些數(shù)據(jù)的獲取離不開具有RFID掃描功能及二維碼掃描的手持設(shè)備,對(duì)池塘的RFID卡進(jìn)行掃描并獲取RFID號(hào)并且對(duì)池塘上的產(chǎn)品批次二維碼進(jìn)行掃描,獲取產(chǎn)品批次二維碼。輸出數(shù)據(jù)變量名屬性說(shuō)明ifidgetUseistring員工的RFIDifidgetPoolstring池塘的RFID號(hào)DataStung批次二維碼,如:getEvenTypeStung操作類型tempStung溫度:10flagint數(shù)據(jù)存儲(chǔ)標(biāo)志位業(yè)務(wù)算法和流程數(shù)據(jù)設(shè)計(jì)給出本程序中的局部數(shù)據(jù)結(jié)構(gòu)說(shuō)明,包括數(shù)據(jù)結(jié)構(gòu)名稱,功能說(shuō)明,具體數(shù)據(jù)結(jié)構(gòu)說(shuō)明(定義、注釋設(shè)計(jì)、取值)等。相關(guān)數(shù)據(jù)庫(kù)表,數(shù)據(jù)存儲(chǔ)設(shè)計(jì)(具體說(shuō)明需要以文件方式保存的數(shù)據(jù)文件名、數(shù)據(jù)存儲(chǔ)格式、數(shù)據(jù)項(xiàng)及屬性等。)3.2.47源程序文件說(shuō)明packagecom.blueocean.BlueOceanSource.ui;importandroid,app.Activity;importandroid,content.BroadcastReceiver;importandroid,content.Context;importandroid,content.Intent;importandroid,content.IntentFilter;importandroid,os.Bundle;importandroid,os.Handler;importandroid,text.TextUtils;importandroid,util.Log;importandroid,view.View;importandroid,view,inputmethod.Editorlnfo;importandroid,widget.AdapterView;importandroid,widget.ArrayAdapter;importandroid,widget.Button;importandroid,widget.EditText;importandroid,widget.Spinner;importandroid,widget.TextView;importandroid,widget.Toast;importcom.blueocean.BlueOceanSource.R;importcom.blueocean.BlueOceanSource.entity.BlueOceanEvent;importcom.blueocean.BlueOceanSource.service.BlueOceanEventService;importcom.blueocean.BlueOceanSource.service.UploadService;importcom.blueocean.BlueOceanSource.utility.DateDefined;importcom.blueocean.BlueOceanSource.utility.RfidScan;importjava.util.ArrayList;importjava.util.List;importcn.pda.hf.Util;importcn.pda.scan.ScanThread;/**保苗階段activity*Createdbyzhouxingguoon2015/7/15.*/publicclassYouthActivityextendsActivity{privateButtonscanUser;//掃描員/."rfidprivateButtonscanPond;I描池塘RFIDprivateButtonsaveButton;7保存佶思privateButtonscoxMcoAe;〃掃描池塘二維碼批次信息privateTextViewuserRfid;//^-1'.RFIDprivateEditTextpoolREiM,〃池子RFID信息privateTextView 〃池塘二維碼包含的批次信息privateEditTexttemperature;/輸入池塘溫度privateString ;〃獲取得到的RFIDprivateRfidScanrfidScanUser;'rfid£]描user類privateStringHfiAge鋪eer;/獲取得到的userRfidprivateStringxii&g\;//獲取得到的池子RFIDprivateRfidScanrfidScanPool;//rfid/. 類privateStringrfidgetPoo7獲取得到的poolRfidprivateString'目扁n;〃獲取池子標(biāo)簽上的批次二維碼信息privateSpinnerspinnsr;〃操作類型下拉控件privateList<String>eveKList;〃操作類型數(shù)據(jù)源privateArrayAdapter<String> +。工;〃適配器適配操作類型列表privateStringgetEventType;privateStringpoolTemp=""://泄子溫度,暫時(shí)用不到privateStringdata;privateBroadcastReceiverreceive;privateScanThreadscanThread;privateHandlermHandler二newHandler(){publicvoidhandleMessage(android,os.Messagemsg){if(msg.what二二ScanThread.SCA^){data=msg.getDataO.getString("data");Log.d("acc_data”,data);Util.p7ay(l,0);pondQrcode.setText(data);)));?OverridepublicvoidonCreate(BundlesavedinstanceState){super.onCreate(savedlnstanceState);setContentView(R.layout,activity_youtH);Util,initSoundPool(^is);init_spinner();initO;/**開啟二維碼掃描線程**/try{ScanThread=newScanThread(mHandler);;catch(Exceptione){Toast.儂AeText(getApplicationContext(),“serialportinitfail*,0).show();return;)ScanThread.start();receive=newFunkeyListener();//代碼注冊(cè)廣播接收者IntentFilterfilter=newIntentFilter();filter.addAction("android,intent,action.FUN_KEY");registerReceiver(receive,filter);Util,initSoundPool(getApp1ication());)privateclassFunkeyListenerextendsBroadcastReceiver{@OverridepublicvoidonReceive(Contextcontext,Intentintent){booleandefaultdown=false;intkeycode=intent.getlntExtra(^keycode^,0);booleankeydown=intent.getBooleanExtra(^keydown^,defaultdown);if(keycode=二134&&keydown){scanThread.scan();)})//初始化控件privatevoidinit(){userRfid二(TextView)findViewById(R.id.input_baomiao_user);poolRfid=(EditText)findViewB5dd(R.id.input_baomiao_pond);pondQrcode=(TextView)findViewByld(R.id.input_baomiao_pond_qrcode);temperature=(EditText)findViewByld(R.id.input_temperature);temperature.setlnputType(Editorlnfo.TYPE_CLASS_PHON&;scanUser=(Button)findViewByld(R.id.baomiao_scan_employee);scanPond二(Button)findViewById(R.id.baomiao_scan_pond);scanQrcode=(Button)findViewById(R.id.baomiao_pond_qrcode);?仙描池塘:維碼批次信息saveButton=(Button)findViewByld(R.id.save_buttonf);MyListenerlistener=newMyListener(this);scanUser.setOnClickListener(listener);scanPond.setOnClickListener(listener);scanQrcode.setOnClickListener(listener);saveButton.setOnClickListener(listener);)privatevoidinit_spinner(){spinner=(Spinner)findViewById(R.id.action_spinneir);//定義數(shù)據(jù)源eventList=newArrayList<String>();eventList.add("喂食”);eventList.add("換水”);eventList.add("測(cè)溫”);eventList.add("入池”);eventList.add("投放");adapter=newArrayAdapter<String>(this,R.layout.simple_spinner_itea,eventList);adapter.setDropDownViewResource(R.layout.spinner_checked_text);spinner.setAdapter(adapter);//spinner監(jiān)聽器獲取選擇內(nèi)容spinner.setOnltemSelectedListener(newAdapterView.OnltemSelectedListener(){?OverridepublicvoidonltemSelected(AdapterView<?>adapterView,Viewview,intposition,long1){getEventType二adapter,getItem(position);)?OverridepublicvoidonNothingSelected(AdapterView<?>adapterView){)});)privateclassMyListenerimplementsView.OnClickListener{privateContextcontext;publicMyListener(Contextcontext){this,context二context;)?OverridepublicvoidonClick(Viewview){switch(view,getld()){caseR?id.baomiao_scan_employee:rfidScanUser=newRfidScanO;rfidgetUser=rfidScanUser.scan();if(rfidgetUser!=null){userRfid.setText(rfidgetUser);)else(Toast.儂Vext(getApplicationContext(),R.string.scan_rfid_fai1,Toast.LENGTH_SHORf).show();--~break;caseR?id.baomiao_scan_pond\rfidScanPoo1=n?wRfidScanO;rfidgetPool=rfidScanPool.scan();if(rfidgetPool!=null){poolRfid.setText(rfidgetPool);)else{Toast.儂Vext(getApplicationContext(),R.string.scan_rfid_fail,Toast.LENGTH_SHORT).show();)break;caseR?id.baomiao_pond_qrcode\scanThread.scan();break;caseR.id.save_buttonl:〃保存員工信息按鈕到數(shù)據(jù)庫(kù),保存成功之后清空editText//要保證輸入的信息不能全部為空if(!TextUtils.isEmpty(pooIRfid.getText())&&!TextUtils.isEmpty(xiserRfid.getText())&&!TextUtils.isEmpty(getEventType)&&(!TextUtils.isEmpty(&atGIgetEventType.equals("投放"))){BlueOceanEventServiceeventService=newBlueOceanEventService(context);BlueOceanEventboe=newBlueOceanEvent();Stringtime=DateDefined.getDateQ H義時(shí)間格式rfidUser二userRfid.getText().toString().trim();rfidPool=poolRfid.getText().toString().trim();intflag=0;//0表示保存到本地?cái)?shù)據(jù)庫(kù),1表示本地?cái)?shù)據(jù)庫(kù)數(shù)據(jù)待刪除inttype=2;if(getEventType.equals("喂食")){type=1;}elseif(getEventType.equals("換水")){type=2;}elseif(getEventType.equals("測(cè)溫")){type=3;}elseif(getEventType.equals("投放")){type=4;Jelseif(getEventType.equals("入池")){type=6;)Stringbatch=data;仙描:維碼信息Stringtemp=temperature.getText().toString().trim();boe.setFlag(flag);boe.setUserRfid(rfidUser);boe.setPoolRfid(rfidPool);boe.setTime(time);boe.setEventType(type);if(type==4){boe.setBatch("O");}else(boe.setBatch(batch);)boe.setPoolTemp(temp);eventService.insert(boe);userRfid.setText(**);poolRfid.setText(**);pondQrcode.setText("");temperature.setText("");//開辟一個(gè)新線程上傳數(shù)據(jù)newThread(networkTask).start();Toast.makeText(getApplicationContext(),R.string.save_success_toast,Toast.LENGTH_LON&).show();}else{Toast.makeText(getApplicationContext(),R.string.not_null_except_temperature>Toast.LENGTH_LON(S).show();)break;RunnablenetworkTask=newRunnable(){?Overridepublicvoidrun(){//TODO//在這里進(jìn)行httprequest.網(wǎng)絡(luò)請(qǐng)求相關(guān)操作UploadServiceuploadService=newUploadService();uploadService.upload(YouthActivity.this);));?OverrideprotectedvoidonDestroy(){if(scanThread!=null){scanTerrupt();scanThread.close();)unregisterReceiver(receive);super.onDestroy();))函數(shù)說(shuō)明當(dāng)掃描RFID就成功時(shí)發(fā)出提示音:Util.initSoundPool(activity名稱);程序的主體:init();開啟數(shù)據(jù)上傳線程:networkTask限制條件限制條件是,必須使用具有RFID和二維碼掃描功能的手持設(shè)備才能完成此功能。3.2.5加工包裝設(shè)計(jì)圖站加工包裝員工卡掃描員工RFID號(hào)請(qǐng)選擇產(chǎn)品種類員工卡掃描員工RFID號(hào)請(qǐng)選擇產(chǎn)品種類V目前已掃描件產(chǎn)品夕綁定功能描述此模塊的主要功能是掃描員工的RFID號(hào),并顯示到屏幕上去。工作人員選擇產(chǎn)品類型,掃描產(chǎn)品二維碼,一次可以掃描多個(gè)產(chǎn)品,并將數(shù)據(jù)保存到本地?cái)?shù)據(jù)庫(kù)。輸入數(shù)據(jù)變:”屬性說(shuō)明rfidgetsuing員工的RFID(必填)如:E2005032530B0187144085E3QRCodeStrmg產(chǎn)品二維碼(必填)http://suyuan.cluiiablueocean.coni/show.litml7id=18FC90BE5B8124AF983421D29BFC4352getPioductTypeStrmg產(chǎn)品類型(必填),包括:凍海參、淡海參、
鹽海參、鮮活海參、鹽漬海參、及時(shí)海參TimeStrmg操作時(shí)間。如201602111311在檢測(cè)數(shù)據(jù)有效性時(shí),需要檢測(cè)ifldgetUsei與ifidgetPool兩個(gè)輸入變量是否為空。這些數(shù)據(jù)的獲取離不開具有RFID掃描功能及二維碼掃描的手持設(shè)備,對(duì)池塘的RFID卡進(jìn)行掃描并獲取RFID號(hào)并且對(duì)池塘上的產(chǎn)品批次二維碼進(jìn)行掃描,獲取產(chǎn)品批次二維碼。輸出數(shù)據(jù)變量名屬性說(shuō)明rfidgetsuing員工的RFID如:E2005032530B0187144085E3QRCodeSumg產(chǎn)品二維碼 http://suyuan.chinablueocean.conVshow.html?id=l8FC90BE5B8124AF983421D29BFC4352getPioductTypeStrmg產(chǎn)品類型,包括:凍海參、淡海參、鹽海參、鮮活海參、鹽漬海參、及時(shí)海參TimeStrmg操作時(shí)間。如201602111311flagLit數(shù)據(jù)存儲(chǔ)狀態(tài)標(biāo)志位。如:1
業(yè)務(wù)算法和流程數(shù)據(jù)設(shè)計(jì)給出本程序中的局部數(shù)據(jù)結(jié)構(gòu)說(shuō)明,包括數(shù)據(jù)結(jié)構(gòu)名稱,功能說(shuō)明,具體數(shù)據(jù)結(jié)構(gòu)說(shuō)明(定義、注釋設(shè)計(jì)、取值)等。相關(guān)數(shù)據(jù)庫(kù)表,數(shù)據(jù)存儲(chǔ)設(shè)計(jì)(具體說(shuō)明需要以文件方式保存的數(shù)據(jù)文件名、數(shù)據(jù)存儲(chǔ)格式、數(shù)據(jù)項(xiàng)及屈性等。)序文件說(shuō)明給出本程序的各源程序文件的說(shuō)明,包括源程序文件名稱及其所在目錄,功能說(shuō)明,包含的前導(dǎo)文件及函數(shù)名稱等。函數(shù)說(shuō)明當(dāng)掃描RFID就成功時(shí)發(fā)出提示音:Util.initSoundPool(activity名稱);程序的主體:init();開啟數(shù)據(jù)上傳線程:networkTask為下拉菜單添加選項(xiàng):init_spinner()將掃描多個(gè)二維碼:sortAndadd(BlueOceanProduct類型的數(shù)組,String類型的二維碼值),返回值為含有不同產(chǎn)品二維碼值的List<BlueOceanProduct>類型的數(shù)組。限制條件限制條件是,用戶具有是由此功能的權(quán)限和使用具有RFID和二維碼掃描功能的手持設(shè)備才能完成此功能。3.2.6物流管理設(shè)計(jì)圖員工RFID號(hào)設(shè)計(jì)圖員工RFID號(hào)物流號(hào)物流公司順豐速運(yùn) V目前已掃描件產(chǎn)品綁定
綁定功能描述本功能的主要功能是將一批貨物的二維碼與快遞公司、快遞單號(hào)綁定到一塊,并記錄當(dāng)前操作的員工RFID。用戶掃描產(chǎn)品二維碼就可以知道產(chǎn)品的運(yùn)輸途徑。簡(jiǎn)要描述子模塊1的業(yè)務(wù)功能。輸入數(shù)據(jù)變量名屬性說(shuō)明rfidStrsuing員工的RFID(必填)如:E2005032530B0187144085E3QRCodeStrmg產(chǎn)品二維碼(必填)http://suyuan.cluiiablueocean.coni/show.litml7id=1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 零星維修服務(wù)協(xié)議
- 湖南省長(zhǎng)沙市開福區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期期末生物學(xué)試題(含答案)
- 英語(yǔ)學(xué)習(xí)情境創(chuàng)設(shè)與運(yùn)用課程設(shè)計(jì)
- 醫(yī)療健康技術(shù)發(fā)展動(dòng)態(tài)表
- 《世界著名音樂(lè)作品欣賞與解析教案》
- 教育資源投入與使用效果對(duì)比分析表
- 非謂語(yǔ)動(dòng)詞在各類時(shí)態(tài)中的用法解析:高一英語(yǔ)教學(xué)教案
- 個(gè)人健康管理大數(shù)據(jù)分析與服務(wù)平臺(tái)建設(shè)方案
- 營(yíng)銷總監(jiān)聘用協(xié)議
- 數(shù)字校園采購(gòu)協(xié)議
- 《馬克思主義政治經(jīng)濟(jì)學(xué)概論》課程教學(xué)大綱
- 倉(cāng)庫(kù)管理基礎(chǔ)知識(shí)培訓(xùn)模板課件
- 孤獨(dú)癥康復(fù)教育人員上崗培訓(xùn)練習(xí)題庫(kù)及答案
- 環(huán)境心理學(xué)課件
- 《質(zhì)量保證體系》情況說(shuō)明
- 親人意外逝世的訃告微信群通知五篇-正式的去世訃告模板
- DB62∕T 4134-2020 高速公路服務(wù)區(qū)設(shè)計(jì)規(guī)范
- 中電朝陽(yáng)250兆瓦智慧風(fēng)儲(chǔ)一體化風(fēng)電項(xiàng)目環(huán)評(píng)報(bào)告書
- 做一個(gè)幸福教師
- 國(guó)家自然科學(xué)基金申請(qǐng)標(biāo)書模板
- 車間斷針記錄表
評(píng)論
0/150
提交評(píng)論