在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于 ARM 的遠(yuǎn)程無(wú)線監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

            基于 ARM 的遠(yuǎn)程無(wú)線監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

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

            在/usr/local/man/manl目錄下會(huì)生成cjpeg.l、djpeg.l、jpegtran.l、rdjpgcom.l、wrjpgcom.l、snapscreenshop.l六個(gè)文件,在/usr/local/arm/3.4.3/arm-linux/lib目錄下會(huì)生成libjpeg.a、libjpeg.la、libjpeg.so、 libjpeg.so.62、libjpeg.so.0.0五個(gè)函數(shù)庫(kù),libjpeg.so.62、libjpeg.so.0.0就是我們需要的庫(kù),將它拷貝到arm-linux里,這樣就支持JPEG壓縮格式的圖像。圖像壓縮的一些重要函數(shù)如下:


            char *filename = first.jpeg;//指定壓縮后的圖像所存放的目標(biāo)文件
            struct jpeg_compress_struct cinfo;//申請(qǐng)并初始化JPEG壓縮對(duì)象
            struct jpeg_error_mgr jerr; // 聲明錯(cuò)誤處理器
            JSAMPROW row_pointer[1]; // 一行位圖
            int row_stride; // 每一行的字節(jié)數(shù)
            int line; //每一列的字節(jié)數(shù)
            jpeg_create_compress(cinfo);
            cinfo.image_width = width; // 圖像的寬、高和深度
            cinfo.image_height = height;
            cinfo.input_components = depth;
            cinfo.in_color_space=JCS_RGB;// 彩色圖像
            jpeg_set_quality(cinfo, JPEG_QUALITY, TRUE ); // 設(shè)定壓縮質(zhì)量
            cinfo.dct_method=JDCT_FASTEST; // DCT離散余弦變換
            jpeg_start_compress(cinfo, TRUE); //開(kāi)始進(jìn)行JPEG圖像壓縮
            while (cinfo.next_scanline cinfo.image_height)//對(duì)每一行進(jìn)行壓縮
            jpeg_destroy_compress(cinfo); //釋放壓縮工作過(guò)程中所申請(qǐng)的資源
            采集到的圖像如圖5所示。如果要進(jìn)行連續(xù)幀的采集由grab_fd.frams來(lái)確定需要采集的幀數(shù),最多支持一次采集32幀。

            圖5 采集的圖像


            GPRS DTU通過(guò)全功能串口與開(kāi)發(fā)板相連接,在arm-linux的指令調(diào)度下將采集到的圖像通過(guò)串口通信傳輸?shù)紾PRS DTU。arm-linux是通過(guò)設(shè)備文件訪問(wèn)串口的,在訪問(wèn)具體的串行端口時(shí),只需打開(kāi)相應(yīng)的設(shè)備文件即可。串行端口Port1和Port2對(duì)應(yīng)的設(shè)備文件分別為/dev/ttyS0和/dev/ttyS1。若要使用串口進(jìn)行通信必須在通信兩端設(shè)置好串口的屬性,包括數(shù)據(jù)傳輸?shù)牟ㄌ芈省鬏數(shù)臄?shù)據(jù)格式、是否有奇偶校驗(yàn)位、流控方式等。在Linux下進(jìn)行串口設(shè)置,涉及一個(gè)重要的數(shù)據(jù)結(jié)構(gòu)struct termios,設(shè)置串口波特率struct termios Opt,設(shè)置串口數(shù)據(jù)位
            struct termios Opt;
            Opt.c_cflag = ~CSIZE; //屏蔽字符大小位
            Opt.c_cflag |= ~CS8; //選擇8位數(shù)據(jù)位
            設(shè)置串口校驗(yàn)位與此相關(guān)的宏定義有:
            #define PARENB 0000400 //PARENB控制是否使能奇偶校驗(yàn)
            #define PARODD 0001000 //PARODD控制使用奇校驗(yàn)還是偶校驗(yàn)
            設(shè)置串口停止位與停止位相關(guān)的宏定義只有CSTOPB,設(shè)置termios結(jié)構(gòu)的.c_cflag成員即可。
            #define CSTOPB0000100
            Opt.c_cflag = ~CSTOPB;//1位停止位
            Opt.c_cflag |= ~CSTOPB;//2位停止位
            設(shè)置串口波特率:
            串口使用open函數(shù)執(zhí)行打開(kāi)操作,open( )函數(shù)帶有兩個(gè)參數(shù),其中參數(shù)1為要打開(kāi)的設(shè)備文件名,參數(shù)2為打開(kāi)方式。它們的含義如下。


            O_RDWR:既可讀也可寫(xiě)。


            O_NOCTTY:告訴嵌入式Linux,該程序不想成為此端口的“控制終端”。如果應(yīng)用程序不強(qiáng)調(diào)這一點(diǎn),那么任何輸入都會(huì)影響程序的執(zhí)行。


            O_NDELAY:表示該程序不關(guān)注DCD信號(hào)線所處的狀態(tài),即不管對(duì)端設(shè)備是在運(yùn)行或是掛起。如果不設(shè)置該標(biāo)志,則程序會(huì)被設(shè)置為睡眠狀態(tài),直到DCD信號(hào)為低為止。


            使用close(fd)系統(tǒng)調(diào)用關(guān)閉串口。關(guān)閉一個(gè)串口通常會(huì)將DTR信號(hào)設(shè)置為低電平,如果外接GPRS DTU,就會(huì)將GPRS DTU掛起。使用write( )函數(shù)向串口寫(xiě)入數(shù)據(jù),write調(diào)用若正確,返回發(fā)送的字節(jié)數(shù),否則返回-1。從串口讀取數(shù)據(jù)如果在原始數(shù)據(jù)的模式下對(duì)端口進(jìn)行操作,read( )函數(shù)調(diào)用將返回串行口輸入緩沖區(qū)所有的數(shù)據(jù)。如果沒(méi)有數(shù)據(jù),那么該進(jìn)程將被阻塞,處于等待狀態(tài),直到數(shù)據(jù)到來(lái),或者到了規(guī)定時(shí)間和出現(xiàn)錯(cuò)誤為止。通過(guò)如下方法,能使read( )函數(shù)調(diào)用立即返回。

            系統(tǒng)的
            本系統(tǒng)監(jiān)控中心服務(wù)器采用PC,使用Windows操作系統(tǒng),使用VC++編寫(xiě)上位機(jī)程序,利用TCP/IP通信,輸入監(jiān)控端的IP地址后,上位機(jī)可以與監(jiān)控端通信,接收到傳輸過(guò)來(lái)的圖像,如圖6所示。該系統(tǒng)大概3~5秒傳輸一幅圖像。

            圖6接收到的圖像


            支持短信和電話喚醒功能,也就是說(shuō)通過(guò)短信和電話撥號(hào)就可以對(duì)進(jìn)行控制,使其進(jìn)入工作狀態(tài),進(jìn)行信息傳輸。具有連接時(shí)機(jī)可控功能,支持永遠(yuǎn)在線、空閑下線和空閑掉電3種工作方式。在不進(jìn)行數(shù)據(jù)傳輸時(shí),可以進(jìn)入下線狀態(tài),大大節(jié)約了通信費(fèi)用,而在需要重新開(kāi)始數(shù)據(jù)傳輸時(shí),可以用手機(jī)給監(jiān)控系統(tǒng)發(fā)送短信或打電話將其喚醒,恢復(fù)與數(shù)據(jù)中心的連接,也可以隨時(shí)隨地發(fā)短信對(duì)監(jiān)控系統(tǒng)進(jìn)行配置,方便管理。


            上一頁(yè) 1 2 下一頁(yè)

            評(píng)論


            相關(guān)推薦

            技術(shù)專(zhuān)區(qū)

            關(guān)閉