成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 總結Python連接CS2000的詳細步驟

總結Python連接CS2000的詳細步驟

熱門標簽:地圖標注視頻廣告 百度地圖標注位置怎么修改 老人電話機器人 高德地圖標注是免費的嗎 梅州外呼業(yè)務系統(tǒng) 無錫客服外呼系統(tǒng)一般多少錢 大連crm外呼系統(tǒng) 北京電信外呼系統(tǒng)靠譜嗎 洪澤縣地圖標注

前言

記錄CS2000設備使用串口連接以及相關控制。

CS2000是一臺分光輻射亮度計,也就是可以測量光源的亮度。詳細的規(guī)格網址參考CS2000/CS-2000A ,所有信息以柯尼卡美能達官網的參數以及使用手冊為主。

使用目的及環(huán)境

當前的使用目的是使用PC端控制CS2000,測量屏幕的亮度數據。

PC端使用Python,在Win10環(huán)境下開發(fā);

需要額外安裝的模塊:pySerial;

設備連接方法

這臺設備是支持USB1.1 Full-Speed和RS-232C的。其配套的軟件CS-S10是使用的USB1.1接口,如果安裝了軟件,也就相當于安裝了對應驅動。當然,我這里則是使用了配置串行通訊端口COM Port(Cluster Communication Port)。

CS2000支持的通訊設定如下:

這里選用波特率115200,數據長度8 bits, 無校驗,1 bit停止位的設定;至于Hardware(RTS/CTS),即Require To Send和Clear To Send信號,這里先不做考慮。

程序主體流程

1.獲取電腦COM列表;

2.連接并打開CS2000的設備端口;

3.設備初始化(設定控制模式,關閉測試按鍵操作,設定同步模式等);

4.單次測量并獲取測量值;

5.關閉串口;

接下來就開始結合手冊進行操作。

獲取端口

需要引入serial.tools.list_ports模塊:

def port_list():
    """
    獲取電腦端口列表
    :return: 端口列表
    """
    pl = serial.tools.list_ports.comports()
    # print(pl)
    print("Port List:")
    for item in pl:
        print("{}\t\t:\t{}".format(item.usb_description(), item.manufacturer))

獲取端口列表后,可以打印端口的描述和制造商,用于區(qū)分多個端口。

連接端口

需要引入serial模塊:

def connect_com(port, baudrate=115200, timeout=0):
    """
    配置串口參數并進行連接;
    :param port: 端口號,“COM1”
    :param baudrate: 波特率,115200
    :param timeout: 超時時間,0
    :return: 連接好的串口,ser
    """
    # noinspection PyBroadException
    try:
        ser = serial.Serial(port, baudrate, timeout=timeout)
        print("Port\t\t:\t{}".format(ser.name))
        print("Baudrate\t:\t{}".format(ser.baudrate))
        print("Status\t\t:\t{} Connect Successful!".format(port))
        return ser
    except Exception:
        print("Status\t\t:\t\t\tConnect COM Failed!")

定義的函數,返回打開串口之后的對象。

發(fā)送格式

分隔符

使用PC發(fā)送命令到測量設備的時候,需要使用如下分隔符:

CR, LF對應的ASCII的0x0D0x0A;也就是在命令結束后要加分隔符進行分割;

數據字符格式

發(fā)送的數據中,數字發(fā)送,必須要跟數字的字符一樣。比如發(fā)送十進制數據886,就需要發(fā)送對應的字符886。如果需要輸入的字符長度少,需要用空格補齊。

超時

PC通信的超時設定至少要10s。這里可以理解為設備測量亮度是需要積分時間的,比如說測試比較暗的畫面,需要長時間的積分,因此測量的返回數據需要對應延遲很長時間,因此超時設定為至少10s。

實際使用的情況中,比較暗的畫面可能需要超過7s的測量時間。

初始化

初始化包含以下以幾個環(huán)節(jié),包括設置遠端模式(SCMS),關閉測量按鍵(MSWE),設定同步模式(SCMS)等;這里仔細參考手冊,很容易就能理解,下面就直接貼出代碼。

def remote_mode(ser):
    """
    對cs2000進行遠程控制設置
    :param ser: cs2000的串口
    :return: None
    """
    data = b'RMTS,1\n'
    tx_data(ser, data)
    if rx_data(ser)[0] == "OK00":
        print("Status\t\t:\tRemote Mode Setting OK!")
    else:
        print("Status\t\t:\tRemote Mode Setting ERROR!")


def meas_key_off(ser):
    """
    關閉cs2000設備上的measure按鍵控制
    :param ser: cs2000的串口
    :return: None
    """
    data = b'MSWE,0\n'
    tx_data(ser, data)
    if rx_data(ser)[0] == "OK00":
        # print("Status\t\t:\tMeasure Key Disable OK!")
        pass
    else:
        print("Status\t\t:\tMeasure Key Disable ERROR!")


def sync_mode_set(ser, freq):
    """
    同步模式設定
    :param ser: cs2000的串口
    :param freq: 頻率,單位Hz
    :return: None
    """
    mode = b'1,'
    freq = freq.encode()
    data = b'SCMS,' + mode + freq + b'00\n'
    tx_data(ser, data)
    if rx_data(ser)[0] == "OK00":
        print("Status\t\t:\tSync Mode is {}, freq is {}Hz!".format(mode, freq))
        pass
    else:
        print("Status\t\t:\tMeasure Key Disable ERROR!")


def sync_mode_read(ser):
    """
    同步模式讀取
    :param ser: cs2000的串口
    :return: None
    """
    sync_mode_dict = {"0": "No sync",
                      "1": "Internal sync",
                      "2": "External sync"}
    data = b'SCMR\n'
    tx_data(ser, data)
    rdata = rx_data(ser)
    if rdata[0] == "OK00":
        print("Status\t\t:\tSync Mode is {}. ".format(sync_mode_dict[rdata[1]]))
        if rdata[1] == "1":
            print("Status\t\t:\tSync frequency is {}Hz. ".format(rdata[2][:-2]))
        pass
    else:
        print("Status\t\t:\tSync Mode read ERROR!")


def dev_init(ser):
    """
    cs2000設備進行初始化,包含設置為遠程控制,關閉測量按鍵,設置同步模式,查詢同步模式數據
    :param ser: cs2000的串口
    :return: None
    """
    remote_mode(ser)
    meas_key_off(ser)
    sync_mode_set(ser, SYNC_FREQ)
    sync_mode_read(ser)

注意:這里每次發(fā)送命令之后,設備均會返回數據。如若返回的是OK00,則說明命令發(fā)送和接收都沒有出現問題,如果返回的指令有ERxx等字樣,需要根據手冊中的錯誤代碼列表查詢錯誤原因,并進行改正。

測量數據

測量數據需要先發(fā)送測量指令,等待返回測量時間,等待測量結束;

再發(fā)送測量數據讀取指令。

def measure(ser):
    """
    向cs2000發(fā)出測量的命令
    :param ser: cs2000的串口
    :return: None
    """
    data = b'MEAS,1\n'
    tx_data(ser, data)
    rdata = rx_data(ser)
    if rdata[0] == "OK00":
        # print("Status\t\t:\tMeasure time is {}s".format(rdata[1]))
        pass
    else:
        print("Status\t\t:\tMeasure CMD ERROR Code {}".format(rdata[0]))

    rdata_1 = rx_data(ser)
    if rdata_1[0] == "OK00":
        # print("Status\t\t:\tMeasurement completed!")
        pass
    else:
        print("Status\t\t:\tMeasure Wait ERROR Code {}".format(rdata_1[0]))


def lv_read(ser):
    """
    向cs2000發(fā)出測量的命令
    :param ser: cs2000的串口
    :return: 亮度值lv
    """
    data = b'MEDR,2,0,101\n'
    tx_data(ser, data)
    rdata = rx_data(ser)
    if rdata[0] == "OK00":
        # print("Status\t\t:\tLuminance is {} cd/m²".format(rdata[1]))
        return rdata[1]
    else:
        print("Status\t\t:\tLuminance Read ERROR Code {}".format(rdata[0]))
        return None


def get_lv(ser):
    """
    獲取亮度值
    :param ser: cs2000的串口
    :return: 亮度值,單位cd/m²
    """
    measure(ser)
    return lv_read(ser)


def xylv_read(ser):
    """
    向cs2000發(fā)出測量的命令
    :param ser: cs2000的串口
    :return: 色坐標,X,Y,亮度,LV
    """
    data = b'MEDR,2,0,2\n'
    tx_data(ser, data)
    rdata = rx_data(ser)
    if rdata[0] == "OK00":
        print("Status\t\t:\tX,Y,LV are {} {} {}".format(rdata[1], rdata[2], rdata[3]))
        return rdata[1:]
    else:
        print("Status\t\t:\tMeasure ERROR!")
        return None


def get_xylv(ser):
    """
    獲取色坐標X,Y和亮度LV。
    :param ser: cs2000的串口
    :return: 色坐標,X,Y,亮度,LV
    """
    measure(ser)
    return xylv_read(ser)

其中,返回數據的格式需要根據發(fā)送的指令進行解析,對應在Datasheet中也有介紹。

串口收發(fā)數據的函數

對于串口收發(fā)數據,也封裝了一層函數,方便調用:

def tx_data(ser, data):
    # noinspection PyBroadException
    try:
        ser.write(data)
        # print("Status\t\t:\tSend OK!")
    except Exception:
        print("Status\t\t:\tSend ERROR!")


def rx_data(ser):
    # noinspection PyBroadException
    try:
        rdata = ser.readline().decode("utf-8").replace("\n", "").split(",")
        # print("Status\t\t:\tReceived {}".format(rdata))
        return rdata
    except Exception:
        print("Status\t\t:\tReceive ERROR!")

串口關閉

串口使用之后一定要進行合理的關閉,防止多個程序運行,出現連接問題。

def serial_close(ser):
    """
    關閉串口連接
    :return: None
    """
    # noinspection PyBroadException
    try:
        ser.close()
        print("Port {} has been closed!".format(ser.name))
    except Exception:
        print("----serial_close failed!")

主函數

所有的參數傳遞,都是將產生的串口對象作為參數傳遞。

if __name__ == '__main__':

    port_list()

    cs2000 = connect_com("COM1", timeout=5)

    dev_init(cs2000)

    get_lv(cs2000)
    get_xylv(cs2000)

    serial_close(cs2000)

寫在后面

設備調試的要義在于,一切操作要參考Datasheet:cs_2000_technicalnote_en,可以在官網支持中下載到。熟悉了手冊之后,后面的調試環(huán)節(jié)可以節(jié)省很多時間,調制的過程也會非常順利。這里例舉幾個調試過程中遇到的問題:

1.合理設定超時(要根據最長的測量時間設定),在發(fā)送數據之后就可以等待接收數據;

2.這里的分隔符使用的就是\n,轉換為byte類型后進行串口發(fā)送;

3.一些模式設定可以只進行一次設定,不需要每次上電都進行設定,為保險起見,統(tǒng)一放在初始化里面;

4.暗光環(huán)境下測試暗光源,需要的時間會很長,手動測試版有24s之多,亮光源的測試時間在1s一次左右;

5.程序中將串口直接作為參數傳遞有些不妥,可以將該模塊改為class;

后面如果遇到了其他問題也會在此更新。

本項目源碼地址:https://github.com/LJacki/CS2000

到此這篇關于總結Python連接CS2000的詳細步驟的文章就介紹到這了,更多相關python連接CS2000內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python連接HDFS實現文件上傳下載及Pandas轉換文本文件到CSV操作
  • Python3操作讀寫CSV文件使用包過程解析
  • python給指定csv表格中的聯(lián)系人群發(fā)郵件(帶附件的郵件)
  • Python csv文件的讀寫操作實例詳解

標簽:安慶 長春 清遠 怒江 吉林 洛陽 岳陽 泉州

巨人網絡通訊聲明:本文標題《總結Python連接CS2000的詳細步驟》,本文關鍵詞  總結,Python,連接,CS2000,的,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《總結Python連接CS2000的詳細步驟》相關的同類信息!
  • 本頁收集關于總結Python連接CS2000的詳細步驟的相關信息資訊供網民參考!
  • 推薦文章
    麻豆免费看一区二区三区| 九九精品视频在线看| 精品自拍偷拍视频| 国产福利一区二区三区在线播放| 日韩精品一区三区| va天堂va亚洲va影视| 亚洲国产一区二区精品视频| 91精品国产99久久久久久红楼| 四虎永久免费影院| 亚洲成a人片综合在线| 国产一区二区免费在线观看| 色狠狠av一区二区三区| 成人白浆超碰人人人人| 国产视频久久久| 人妻精品无码一区二区| 黄色成人在线观看网站| 91在线免费观看| 国产调教一区二区三区| 欧美午夜欧美| 国产午夜亚洲精品午夜鲁丝片| 拍拍拍999自拍偷| 国产精品一区二区3区| 国产一二三区在线播放| 在线一二三区| av老司机免费在线| 久久久久久久网| 国产免费一区二区三区四区五区| 嫩草成人www欧美| 亚洲制服少妇| 欧美日韩一级大片网址| 中文字幕精品一区二区精| 久久久久久久久久久久久久| 国产999视频| 欧美爆操老女人| 亚洲小说图片| 亚洲欧美日产图| 一区二区三区在线不卡| 欧美男男大粗吊1069| www.5588.com毛片| 日韩国产精品毛片| 亚洲最大福利视频网| 精品无码在线视频| 91久久夜色精品国产九色| 久久久天堂国产精品| 欧美成熟毛茸茸| 欧美最猛性xxxxx喷水| 一区二区在线高清视频| 黄色免费电影网站| 亚洲国产高潮在线观看| 久久精品亚洲精品国产欧美kt∨| 亚洲精品7777| 粉嫩aⅴ一区二区三区四区五区| 久热视线观看免费视频| 国产成人涩涩涩视频在线观看| 久久精品五月婷婷| 亚洲免费观看高清完整版在线观| 国产精品毛片久久久久久| 亚洲中文字幕在线一区| 黑鬼大战白妞高潮喷白浆| 一起操在线观看| 国产精品18hdxxxⅹ在线| 欧美日韩综合网| 青青草久久网络| 青青草视频在线视频| 国产午夜亚洲精品午夜鲁丝片| 久久综合久久美利坚合众国| 精品国产鲁一鲁一区二区三区| 视频一区二区三区在线观看| 国产小视频国产精品| 天天色天天操综合| 紧身裙女教师波多野结衣| 久热中文字幕| 精品视频第一页| 亚洲欧美日韩国产| 一区二区在线观看不卡| 日韩免费精品视频| 黑人另类精品××××性爽| 一本色道久久综合亚洲精品婷婷| 久久爱av电影| 少妇人妻无码专区视频| 9191在线播放| 女海盗2成人h版中文字幕| 亚洲精品小区久久久久久| 亚洲欧美成aⅴ人在线观看| 欧美日韩国产精品| 中文字幕在线视频精品| 另类美女黄大片| 日韩精品视频在线观看免费| 亚洲国产精一区二区三区性色| 青青青青在线| 婷婷中文字幕综合| 久久99久久98精品免观看软件| 久久久久久久精| 国产一区二区福利| 激情欧美成人久久综合小说| 免费wwwxxx| 久久一区二区三区视频| 96sao在线精品免费视频| 欧美午夜三级| 成人羞羞国产免费图片| 91精品国产色综合久久ai换脸| 26uuu亚洲电影在线观看| 小小的日本在线观看免费色网| 天天色综合色| 长河落日免费高清观看| 九七电影院97理论片久久tvb| 国产成人精品视频免费看| 川上优av中文字幕一区二区| 成人区精品一区二区婷婷| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲精品一区二区三区樱花| 亚洲天堂手机版| 美日韩在线视频| 久久精品女人毛片国产| 外国成人免费视频| 香蕉网站在线观看| 中文字幕一区二区人妻电影丶| 欧美性精品220| 黑人40厘米全进去| 国产精品合集一区二区| 成人高清在线观看视频| 精品处破学生在线二十三| 免费一级在线观看| 欧美成人激情视频免费观看| 六月丁香综合网| 久久久91精品国产一区不卡| 国产精品美女久久久久久免费| av剧情在线观看| 亚洲美免无码中文字幕在线| 阿v免费在线观看| 99re国产在线播放| 天天做夜夜爱爱爱| 想看黄色一级片| 亚洲三级电影在线观看| 不卡一二三区| 日韩精品第二页| 欧美性猛交一区二区三区精品| 久草中文视频| 激情一区二区| 91超碰rencao97精品| 2018中文字幕第一页| 免费成人动漫| 国产xxx在线| 成人天堂yy6080亚洲高清| 一本大道久久加勒比香蕉| 成年人免费看毛片| 久久国产精品99精品国产| 国产精品久久久久久免费| 午夜av区久久| 91免费视频网| 雨宫琴音一区二区在线| 嫩草懂你的影院| 色悠悠国产精品| 五十路亲子中出中文字幕| 奇米精品一区二区三区在线观看| 国产男女猛烈无遮挡a片漫画| jizzyou欧美16| 男女爱爱福利视频| 在线看中文字幕| 又色又爽的视频| 91一区二区三区在线播放| 欧美日韩在线亚洲一区蜜芽| 亚洲欧美日本伦理| 在线观看日韩一区二区| jizzjizz亚洲中国少妇| 成人黄色av网站| 国产av天堂无码一区二区三区| 国产精品涩涩涩视频网站| 久久琪琪电影院| 国产精品色一区二区三区| 日本dvd播放| 亚洲天堂精品在线| 国产乱子伦精品无码专区| 亚洲18女电影在线观看| 午夜精品理论片| 日韩成人一区二区三区在线观看| 完全免费av在线播放| 欧美在线色图| 国产精品劲爆视频| 五月天综合在线| 一区二区国产日产| 亚洲第一色网站| 少妇无套高潮一二三区| 黄色资源在线观看| 国产美女www| 性8sex亚洲区入口| av资源在线看| 日本韩国一区二区三区视频| 欧美日韩午夜在线| 毛片在线免费播放| 日韩影院精彩在线| 日韩视频在线观看免费| 黄色成年人视频在线观看| 在线播放国产精品二区一二区四区| 日韩电影一区二区三区| 欧美一区二视频| 成年人网站在线| 麻豆视频传媒入口| 俺也去精品视频在线观看| 免费在线看黄网站| av免费播放网址| 亚洲私拍视频| 91精品国产麻豆国产在线观看| 国产 高清 精品 在线 a| 欧美狂猛xxxxx乱大交3| 国产一区二区播放| 91视视频在线直接观看在线看网页在线看| 精品成在人线av无码免费看| 亚洲精品精品亚洲| 91极品在线| 一本一本久久a久久精品综合麻豆| 亚洲精品aaaaa| 国产女王在线**视频| 国产在线日韩精品| a级片在线观看视频| av福利精品导航| 欧洲精品久久久久毛片完整版| 欧美一区二区.| 免费裸体美女网站| 性生活免费观看视频| 99热免费观看| 丁香社区五月天| 欧美猛男超大videosgay| 性感美女一级片| 国产高清一区二区三区四区| 亚洲一区二区三区精品在线观看| 四虎地址8848| 人妻少妇被粗大爽9797pw| 亚洲国产私拍精品国模在线观看| 欧美国产成人精品一区二区三区| 久久成人精品无人区| 亚洲午夜激情| 国产综合精品视频| 国产视频在线观看一区| 3d动漫一区二区三区| 最新av网址在线观看| 亚洲欧美日韩久久久久久| 日韩精品第一区| 337p日本欧洲亚洲大胆精品| eeuss国产一区二区三区| 在线观看日本一区| 国产不卡123| 国产精品66部| 久久综合色一综合色88| 538任你躁在线精品免费| 九九久久九九| 亚洲欧美综合在线精品| 日韩日韩日韩日韩| 影音先锋男人在线资源| 四虎国产精品成人免费入口| 波多野结衣手机在线视频| 99国精产品一二二线| 东热在线免费视频| 日韩免费观看视频| 国模人体一区二区| 91官网在线| 日韩精品伦理第一区| 噜噜噜噜噜在线视频| 欧美性猛交xxxxxx富婆| 91九色视频蝌蚪| 国产亚洲亚洲国产一二区| 亚洲视频sss| 亚洲一区二区三区毛片| 成年人免费观看视频网站| 西西444www无码大胆| 亚洲欧美卡通另类91av| 中文字幕精品亚洲| 亚洲天堂成人在线观看| 国产在线观看91一区二区三区| 中文字幕成人动漫| 婷婷丁香激情五月| 欧美午夜片在线免费观看| 国内三级在线观看| 九色porny在线观看| 黄色精品免费看| 久久久精品一区二区三区| 亚洲女娇小黑人粗硬| 美女精品自拍一二三四| 欧美视频精品在线观看| 欧美日韩国产三区| 黄色欧美成人| 国产成人精品一区二三区在线观看| 欧美视频亚洲图片| 精品影片在线观看的网站| 色悠悠在线视频| 日本美女一区二区| 99精品久久99久久久久| 亚洲一区二区美女| 欧美free性| 国产探花在线观看| 在线视频欧美日韩精品| 色播一区二区| 日本不卡在线观看| 久久成人国产| 91精品在线播放| 99国产精品国产精品久久| 欧美极品aaaaabbbbb| 欧美妇乱xxxxx视频| 亚洲老妇色熟女老太| 亚洲永久无码7777kkk| 欧美一区二区成人6969| 亚洲网中文字幕| 欧美亚洲国产一卡| 成人手机在线免费视频| 黑巨茎大战欧洲金发美女| 亚洲午夜私人影院| 4388成人网| 欧美欧美欧美欧美首页| 韩国精品福利一区二区三区| 在线免费成人| 日本黑人久久| 国产奶水涨喷在线播放| 波多野结衣国产| 亚洲精品免费在线看| 国产精品视频一区国模私拍| 成人网在线视频| 午夜精品久久久久久久爽| 香蕉视频一区二区| 中日韩在线观看视频| 亚洲男人的天堂网| 欧美性猛交xxxx黑人交| 欧美风情在线视频| 在线免费国产| 麻豆免费精品视频| 欧美性xxxx巨大黑人猛| 国产秀色在线www免费观看| 夜夜爽99久久国产综合精品女不卡| 中文字幕在线视频一区二区三区|