<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于有方GPRS的智能電梯控制系統(tǒng)

          基于有方GPRS的智能電梯控制系統(tǒng)

          作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏

          構(gòu)思背景

          目前的很多企業(yè)都在很高的樓層辦公,每天上下班高峰期,電梯門口總是會(huì)排上很長(zhǎng)的隊(duì),為了讓電梯用最快的速度將所有的員工送到指定樓層,需要給出一些改進(jìn);下班的時(shí)候,由于樓層很高,員工往往需要花費(fèi)一些時(shí)間等待電梯到達(dá)自己的樓層,利用一些改進(jìn)可以讓員工掌握電梯狀態(tài),從而節(jié)省一些等電梯的時(shí)間。

          本文引用地址:http://www.ex-cimer.com/article/201611/318655.htm

          功能特色

          • 功能一:我們對(duì)電梯作出這樣的改進(jìn):在上班高峰時(shí)段,電梯只能向上運(yùn)行時(shí)開(kāi)門搭載上朝樓上去的人員,即電梯只會(huì)響應(yīng)朝上行的按鍵,在向下運(yùn)行的過(guò)程中,不會(huì)響應(yīng)任何按鈕。在下班時(shí)間段,也可以做相應(yīng)修改。從而節(jié)省大多數(shù)人的時(shí)間,將人快速送達(dá)指定地點(diǎn)。

          • 功能二: 平時(shí),由于工作人員多工作于很高的樓層,而此時(shí)的電梯可能處于一樓,所以可以先向控制中心發(fā)送一條短信來(lái)獲取電梯的實(shí)際位置,如果電梯此時(shí)距離自己所在的樓層還有一段距離,就可以提前向控制中心發(fā)送一條請(qǐng)求短信,這時(shí)控制中心會(huì)向電梯應(yīng)用端發(fā)送請(qǐng)求信號(hào),命令電梯開(kāi)往指定的樓層,從而減少等待的時(shí)間。


          具體操作

          只需要編輯短信XY#到指定的電話號(hào)碼就可以遠(yuǎn)程控制電梯的運(yùn)行。其中X代表發(fā)信人所在樓層,Y代表發(fā)信人將要到達(dá)的樓層。電梯也會(huì)對(duì)發(fā)信人的要求進(jìn)行應(yīng)答,告訴電梯當(dāng)前的運(yùn)行情況,好讓發(fā)信人掌握好乘坐電梯的時(shí)間。


          GPRS的使用

          我們主要用到了有方GPRS模塊的短信收發(fā)功能。主要用于在上下班高峰時(shí)幫助員工獲得電梯狀態(tài)信息、向電梯發(fā)送??恐噶?。命令電梯開(kāi)往指定的樓層,從而減少等待的時(shí)間。電梯應(yīng)用端使用有方GPRSM660+模塊來(lái)接收來(lái)自控制中心的信號(hào)并發(fā)送短信作為應(yīng)答,從而實(shí)現(xiàn)用戶與電梯的交互通信。


          硬件電路圖


          作品展示


          原文:http://blog.csdn.net/tengweitw/article/details/45896479
          作者:nineheadedbird


          軟件實(shí)現(xiàn)

          #include#include#define uint unsigned int#define uchar unsigned char#define FLOOR  10int Con_Floor = 1;//當(dāng)前的樓層號(hào)int com_dat = 0 ;int flag2 = 0 ;int low = 1 ;int high = 9 ;int sign_flag = 0 ;void delayms(uint xms);                      //延時(shí)函數(shù)(毫秒級(jí))uint test(uchar * floor);                    //測(cè)試在幾樓uint checkinfo();uchar ReceiveData(uchar* ,uchar*);void writefloor(int);void writestate(int);void up_down_logic();                        //電梯的運(yùn)行邏輯void com_init(void);                         //串口初始化void send_uart(uchar ch);                    //向串口發(fā)送單個(gè)字符void send_AT_IPR(void);                      //設(shè)置模塊的波特率為9600bpsvoid send_AT_CMGF(void);                     //設(shè)置發(fā)短信為文本模式void send_AT_CSCS(void);                     //發(fā)送TE的字符集為GSMvoid send_AT_CNMI(void);                     //設(shè)置短信的提示信息void send_AT_CMGR();                      //發(fā)送讀取命令void send_AT_CMGS(uchar *phone_num);         //選擇發(fā)送目的手機(jī)號(hào)void send_text(uchar *text);            //發(fā)送短信文本void init_GPRS(void);                        //初始化GPRS模塊sbit dula=P2^6;sbit wela=P2^7;sbit rs=P3^5;sbit lcden=P3^4;sbit s1=P2^0;sbit s2=P2^1;sbit s3=P2^2;sbit s4=P2^3;sbit rd=P3^7;sbit dscs=P1^4;sbit dsas=P1^5;sbit dsrw=P1^6;sbit dsds=P1^7;sbit dsirq=P3^3;uchar count,s1num,flag,flag1;uchar miao,shi,fen;uchar code table[]=" 2012-10-15 MON";uchar code table1[]="    00:00:00";uchar code floor[]="FLOOR: 1";uchar code state[]="STATE: IDLE";uchar code welcome[]="WELCOME TO USE!";uchar code up[]="UP  ";uchar code down[]="DOWN";uchar code idle[]="IDLE";void write_date(uchar);void write_ds(uchar,uchar);uchar read_ds(uchar);                  //從ds187讀取時(shí)間void init();void keyscan();void write_sfm(uchar add,uchar date);uchar code *AT_CMGF = "AT+CMGF=1";          //發(fā)送AT+CMGF=1,設(shè)置文本模式uchar code *AT_CSCS = "AT+CSCS=";           //選擇TE的字符集(默認(rèn)是GSM),M580返回?cái)?shù)據(jù)時(shí)緩沖數(shù)組是OKuchar code *AT_IPR = "AT+IPR=9600";         //設(shè)置波特率為9600bpsuchar code *AT_CNMI ="AT+CNMI=2,1,0,0,0" ;  //設(shè)置收到新短信存于SIM卡中并發(fā)CMTI通知uchar code *AT_CMGR="AT+CMGR=";             //發(fā)送讀取短信的命令uchar code *AT_CMGS="AT+CMGS=";uchar xdata buffer[100]={0};                //單片機(jī)用于接收短信的緩沖uchar code tab[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//流水燈的狀態(tài)uchar code message0[] = "Sorry ,it is busy now ";uchar code message1[] = "Sorry , we can only reach to ";//指明可以到達(dá)的終點(diǎn)uchar code message2[] = "and now we are moving to ";//指明將要到達(dá)的樓層uchar code message3[] = "Ok , we have accepted your request !";//接受請(qǐng)求后發(fā)送的消息/*名稱:test(char* )*功能:判斷電梯的此刻狀態(tài)/uint test(uchar * floor){uint i;for (i = 1 ; i < FLOOR ; i++)//從一樓開(kāi)始判斷{if(floor[i]){if(i < Con_Floor)return 1;//表示電梯正在下降else return 0;//表示電梯正在上升}}return 2;//表示此時(shí)電梯為空}/*名稱:up_down_logic()*功能:電梯的升降邏輯/void up_down_logic(){uchar  floor_data [FLOOR]={0};//判斷執(zhí)行方向uchar  buf[FLOOR]={0};uchar  tel[13] ;uchar temp;uint i=0;uchar temp1 ;while(1){miao=read_ds(0);    //沒(méi)有響應(yīng)時(shí),時(shí)間可以正確的運(yùn)行,但是一旦有請(qǐng)求,時(shí)間便會(huì)出現(xiàn)跳躍情況fen=read_ds(2);shi=read_ds(4);write_sfm(10,miao);write_sfm(7,fen);write_sfm(4,shi);delayms(100);while(checkinfo()){/*  i = 0;while(tel[i]){tel[i] = 0 ;i++;}*/temp=ReceiveData(&temp1,tel);//temp 表示起點(diǎn),temp1表示終點(diǎn)EA=0;//關(guān)中斷//以下是將緩沖區(qū)清空i=0;while(buffer[i]){buffer[i]=0;i++;}com_dat=0;if (test(floor_data)==1&&temp-0>=1&&Con_Floor>=1)//在下降{if(temp -0 < Con_Floor&&!floor_data[temp-0])//8點(diǎn)之前為上樓的高峰,所以下樓的請(qǐng)求(在7點(diǎn)半以前)不予響應(yīng),電梯直接到達(dá)一樓{if(temp1-0 < temp - 0 && temp1 - 0 >= low&&(read_ds(4)>8))//希望到樓下去,即temp1 < temp的且此時(shí)電梯所能到的最低點(diǎn)比temp1還小{floor_data[temp-0]=1;buf[temp-0] = temp1-0;send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message3);send_text(message2);send_uart(Con_Floor-1+0);delayms(10);send_uart(0x1a);delayms(10);}else if (temp1 - 0 < temp - 0 && temp1 - 0 < low &&(read_ds(4)>8))//希望到樓下去,即temp1 < temp的且此時(shí)電梯所能到的最低點(diǎn)比temp1大{if (buf[low]  < low)//如果在電梯所能到的最低點(diǎn)處就沒(méi)有請(qǐng)求了或有向下的請(qǐng)求{floor_data[temp-0]=1;buf[temp-0] = temp1-0;send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message3);send_text(message2);send_uart(Con_Floor-1+0);delayms(10);send_uart(0x1a);delayms(10);}else{send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message1);send_uart(low+0);delayms(10);send_text(message2);send_uart(Con_Floor-1+0);delayms(10);send_uart(0x1a);delayms(10);}}else if(temp1 - 0 < temp - 0 && temp1 - 0 < low &&(read_ds(4)<8)){send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message0);send_uart(low+0);delayms(10);send_text(message2);send_uart(Con_Floor-1+0);delayms(10);send_uart(0x1a);delayms(10);}else if (temp1 - 0 > temp - 0&& temp - 0 < low)//如果希望到樓上去,則僅當(dāng)?shù)阶畹忘c(diǎn)處沒(méi)有請(qǐng)求或請(qǐng)求到達(dá)的地方小于temp后才可以{if ((buf[low] == 0||(buf[low] > temp - 0 && buf[low] < low))&&(read_ds(4)<5))//確保電梯到low層后無(wú)請(qǐng)求或有向下的但大于temp的請(qǐng)求{floor_data[temp - 0] = 1 ;buf[temp - 0] = temp1 - 0 ;high = temp1 - 0 ;//在電梯向上運(yùn)行時(shí)所能到達(dá)的最高點(diǎn)low = temp - 0 ;send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message3);send_text(message2);send_uart(Con_Floor+1+0);delayms(10);send_uart(0x1a);delayms(10);}else if(buf[low] > low &&(read_ds(4)<5)){send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message1);send_uart(low+0);delayms(10);send_text(message2);send_uart(Con_Floor-1+0);delayms(10);send_uart(0x1a);delayms(10);}else if(buf[low] < temp - 0 &&(read_ds(4)<5)){send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message1);send_uart(buf[low]+0);delayms(10);send_text(message2);send_uart(Con_Floor-1+0);delayms(10);send_uart(0x1a);delayms(10);}else//不響應(yīng)會(huì)執(zhí)行下面的語(yǔ)句{send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message0);send_uart(buf[low]+0);delayms(10);send_text(message2);send_uart(Con_Floor+1+0);delayms(10);send_uart(0x1a);delayms(10);}}}}else if (!test(floor_data)&&temp-0>=1&&Con_Floor>=1)//在上升{if(temp-0 > Con_Floor&&!floor_data[temp-0]){if(temp1-0 >  temp - 0 && temp1 - 0 <= high &&(read_ds(4)<5))//請(qǐng)求者希望到樓上去,且此時(shí)電梯所能到達(dá)的最高點(diǎn)比請(qǐng)求temp1還大{floor_data[temp-0]=1;buf[temp-0] = temp1-0;send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message3);send_text(message2);send_uart(Con_Floor+1+0);delayms(10);send_uart(0x1a);delayms(10);}else if (temp1 - 0 > temp - 0 && temp1 - 0 > high &&(read_ds(4)<5))//請(qǐng)求者希望到樓上去,且此時(shí)請(qǐng)求的目的地已經(jīng)超過(guò)了電梯所能到達(dá)的最高點(diǎn){if (buf[high]  > high || buf[high] == 0)//如果電梯到了最高點(diǎn)處還有向上的請(qǐng)求或者到了最高點(diǎn)處就沒(méi)有請(qǐng)求了{(lán)floor_data[temp-0]=1;buf[temp-0] = temp1-0;send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message3);send_text(message2);send_uart(Con_Floor+1+0);delayms(10);send_uart(0x1a);delayms(10);}else if (buf[high] < high){send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message1);send_uart(high+0);delayms(10);send_text(message2);send_uart(Con_Floor+1+0);delayms(10);send_uart(0x1a);delayms(10);}}else if(temp1 - 0 > temp - 0 && temp1 - 0 > high &&(read_ds(4)>5))//不響應(yīng)時(shí)執(zhí)行{send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message0);send_uart(buf[low]+0);delayms(10);send_text(message2);send_uart(Con_Floor+1+0);delayms(10);send_uart(0x1a);delayms(10);}else if (temp1 - 0 < temp - 0 && temp - 0 > high )//請(qǐng)求者希望到樓下去{if ((buf[high] == 0||(buf[high] < temp - 0&&buf[high] > high))&&(read_ds(4)>8))//要確保電梯到達(dá)high層后沒(méi)有請(qǐng)求或有向上的小于temp的請(qǐng)求{floor_data[temp - 0] = 1 ;buf[temp-0] = temp1 - 0;low = temp1 - 0;high = temp - 0;send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message3);send_text(message2);send_uart(Con_Floor+1+0);delayms(10);send_uart(0x1a);delayms(10);}else if (buf[high] < high &&(read_ds(4)>8)){send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message1);send_uart(high+0);delayms(10);send_text(message2);send_uart(Con_Floor+1+0);delayms(10);send_uart(0x1a);delayms(10);}else if (buf[high] > temp - 0&&(read_ds(4)>8)){send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message1);send_uart(buf[high]+0);delayms(10);send_text(message2);send_uart(Con_Floor+1+0);delayms(10);send_uart(0x1a);delayms(10);}else{send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message0);send_uart(low+0);delayms(10);send_text(message2);send_uart(Con_Floor-1+0);delayms(10);send_uart(0x1a);delayms(10);}}}}else if (test(floor_data)==2&&temp-0!=Con_Floor&&temp-0>=1&&Con_Floor>=1)//電梯未被請(qǐng)求,則響應(yīng),但是請(qǐng)求的樓層數(shù)就是本層樓則不予響應(yīng){if (temp - 0 > temp1 - 0&&(read_ds(4)>8)){low = temp1 - 0;buf[temp - 0] = temp1 - 0;floor_data[temp-0]=1;send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message3);send_text(message2);if(temp-0>Con_Floor)send_uart(Con_Floor+1+0);elsesend_uart(Con_Floor-1+0);delayms(10);send_uart(0x1a);delayms(10);}else if(temp - 0 > temp1 - 0&&(read_ds(4)<8)){send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message0);send_uart(low+0);delayms(10);send_text(message2);send_uart(Con_Floor+0);delayms(10);send_uart(0x1a);delayms(10);}else if(temp - 0 < temp1 - 0&&(read_ds(4)<5)){high = temp1 - 0;buf[temp - 0] = temp1 - 0 ;send_AT_CMGS(tel);//先發(fā)號(hào)碼floor_data[temp-0]=1;delayms(500);send_text(message3);send_text(message2);if(temp-0 > Con_Floor)send_uart(Con_Floor+1+0);elsesend_uart(Con_Floor-1+0);delayms(10);send_uart(0x1a);delayms(10);}else if(temp - 0 < temp1 - 0&&(read_ds(4)>5))//不響應(yīng)時(shí)執(zhí)行{send_AT_CMGS(tel);//先發(fā)號(hào)碼delayms(500);send_text(message0);send_uart(buf[low]+0);delayms(10);send_text(message2);send_uart(Con_Floor+1+0);delayms(10);send_uart(0x1a);delayms(10);}}}if(test(floor_data)==1)//下降{writefloor(Con_Floor);writestate(1);delayms(3000);Con_Floor--;}else if(!test(floor_data))//上升{writefloor(Con_Floor);writestate(0);delayms(3000);Con_Floor++;}else if (test(floor_data) == 2)//處于空閑狀態(tài){writefloor(Con_Floor);writestate(2);high = 9;low = 1 ;}if(floor_data[Con_Floor])//如果之前被請(qǐng)求過(guò),則響應(yīng){P1=tab[Con_Floor];delayms(3000);if (buf[Con_Floor]!=0){floor_data[buf[Con_Floor]] = 1 ;buf[Con_Floor] = 0;}P1=0xff;floor_data[Con_Floor] = 0 ;}EA = 1 ;//開(kāi)中斷}}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com){rs=0;lcden=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;    }void write_date(uchar date){rs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;    }void init(){uchar num;EA=1;EX0=1;IT0=1;dula=0;wela=0;lcden=0;write_ds(0x0B,0x26);read_ds(0x0c);write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);//for(num=0;num<15;num++){write_date(table[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<12;num++){write_date(table1[num]);delay(5);}//miao=read_ds(0);    fen=read_ds(2);shi=read_ds(4);write_sfm(10,miao);write_sfm(7,fen);write_sfm(4,shi);delayms(5000);write_com(0x80);write_com(0x01);//for(num=0;num<15;num++){write_date(welcome[num]);delay(20);}delay(3000);write_com(0x01);write_com(0x80+0x10);for(num=0;num<8;num++){write_date(floor[num]);delay(20);}write_com(0x80+0x50);for(num=0;num<11;num++){write_date(state[num]);delay(20);}for(num=0;num<16;num++){write_com(0x18);delay(50);}}void writefloor(int i){write_com(0x80+0x17);write_date(0x30+i);}void writestate(int flaggg){uint i ;write_com(0x80+0x57);if(flaggg==1){for(i=0;i0;i--)for(j=113;j>0;j--);}/* end function delayms *//* 名稱: com_int()* 功能: 串口中斷子函數(shù)* 輸入: 無(wú)* 輸出: 無(wú)/void com_int(void) interrupt 4{EA=0;                   //關(guān)總中斷if(1 == RI)  //當(dāng)硬件接收到一個(gè)數(shù)據(jù)時(shí),RI會(huì)置高位{buffer[com_dat] = SBUF;        //存取串口接收的數(shù)據(jù)RI = 0;        //軟件置RI為0if(buffer[com_dat]==#){flag2 = 1; //接收短信內(nèi)容結(jié)束com_dat++;//#號(hào)不一定是最后一個(gè)字符?。。else{com_dat++;}                 }EA = 1;                 //開(kāi)總中斷}/*  end function com_int *//* 名稱: com_init()* 功能: 串口初始化,晶振11.0592MHz,波特率9600bps* 輸入: 無(wú)* 輸出: 無(wú)/void com_init(void){TMOD=0X20;TH1=253;TL1=253;TR1=1;EA=1;ES=1;SM0=0;SM1=1;REN=1;}/*名稱:checkinfo()*功能:檢查是否有數(shù)據(jù)到達(dá)/uint checkinfo(){uint i=0;if(buffer[0]!=0&&flag2==0)//短信到達(dá)的提示命令已經(jīng)被單片機(jī)接收{(diào)while(buffer[i]){if(buffer[i]==,)return 1 ;//有短信到達(dá)i++;}}return 0;//數(shù)據(jù)暫時(shí)不能接收}/*名稱:ReceiveData()*功能:接收數(shù)據(jù)并返回/uchar ReceiveData(uchar *buf , uchar *buf2){//這是為了發(fā)送接收數(shù)據(jù)的命令uint i=0;uint j ;send_AT_CMGR();delayms(10);while(buffer[i] != ,)//檢查時(shí)順便將buffer[i]清0{buffer[i] = 0 ;i++ ;}buffer[i] = 0 ;//將,清0i++;buffer[i++]=0;//將空格清0while(buffer[i]){if(buffer[i]>=0&&buffer[i]<=9){send_uart(buffer[i]);buffer[i]=0;//發(fā)完數(shù)據(jù)后將該位清0delayms(10);}elsebreak;//數(shù)據(jù)接收完后跳出i++;}delayms(10);send_uart(r);delayms(10);send_uart(n);delayms(100);com_dat = 0 ;//為下次接收數(shù)據(jù)做準(zhǔn)備//這是為了檢測(cè)需要的數(shù)據(jù)delayms(3000);i = 0 ;j = 0 ;while(1){if(buffer[0]!=0&&flag2==1){flag2=0;while(buffer[i]!=#){if (buffer[i] == "){sign_flag++;}if (sign_flag == 3){buf2[j++]=buffer[i+1];//接收電話號(hào)碼}i++;}sign_flag = 0;*buf = buffer[i-1];//目的地點(diǎn)return buffer[i-2];//模擬的樓層數(shù)不超過(guò)10樓,所以可只返回一個(gè)字符,起點(diǎn)}}}/*名稱:init_GPRS()*功能:初始化GPRS模塊/void init_GPRS(){uint i = 0 ;delayms(1000);send_AT_IPR();//設(shè)置波特率delayms(15000);send_AT_CMGF();//設(shè)置短信格式delayms(1000);send_AT_CSCS();//設(shè)置字符集delayms(1000);send_AT_CNMI();//設(shè)置短信提示方式delayms(3000);while(buffer[i])//將初始化時(shí)接收到的數(shù)據(jù)清0{buffer[i] = 0 ;i++ ; }com_dat = 0 ;//為下一次接收做準(zhǔn)備}void main(){init();//初始化時(shí)鐘芯片,液晶顯示屏//delayms(20000);//避開(kāi)開(kāi)機(jī)時(shí)的無(wú)用數(shù)據(jù)com_init();//串口初始化delayms(1500);init_GPRS();//給gprs設(shè)置必要的參數(shù)while(1){keyscan();//只是在時(shí)間不準(zhǔn)確時(shí)會(huì)被按下,其它時(shí)間,不予理會(huì)if(flag==0)//表示沒(méi)有鍵盤按下{up_down_logic();}}}void exter() interrupt 0{uchar c;flag1=1;c=read_ds(0x0c);}


          關(guān)鍵詞: 有方GPRS智能電梯控制系

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();