工廠測(cè)試APP(FactoryTest)用于整機(jī)生產(chǎn)測(cè)試究恤,驗(yàn)證整機(jī)各項(xiàng)功能是否正常吹散。包含:信息梧却、WiFi岛都、藍(lán)牙帚湘、以太網(wǎng)贱呐、移動(dòng)網(wǎng)絡(luò)舱呻、定時(shí)開關(guān)機(jī)勤家、看門狗、串口掠手、人體感應(yīng)憾朴、加速度、顯示喷鸽、觸摸众雷、喇叭、麥克風(fēng)、麥克風(fēng)陣列砾省、按鍵鸡岗、攝像頭、背光编兄、電池轩性、光感、溫濕度狠鸳、USB揣苏、sdcard、GPIO件舵、韋根等測(cè)試卸察。根據(jù)不同產(chǎn)品支持配置功能組合,個(gè)別項(xiàng)還支持參數(shù)配置铅祸,能夠充分適配各種產(chǎn)品形態(tài)坑质。測(cè)試完成支持測(cè)試結(jié)果導(dǎo)出為文件,可做為日后分析依據(jù)临梗。
配置
為了能夠靈活適配各種產(chǎn)品涡扼,該APP支持通過(guò)配置文件來(lái)配置功能組合和各項(xiàng)測(cè)試參數(shù)。具體配置方法如下:
- 創(chuàng)建配置文件(factory_test_config.json)盟庞。
- 參考下面文本吃沪,編寫配置文件:
[
{"key": "info", "param": ""},
{"key": "wifi", "param": "{'ssid': 'test', 'rssi': -30}"},
{"key": "bt", "param": ""},
{"key": "eth", "param": ""},
{"key": "mobile", "param": ""},
{"key": "timingboot", "param": ""},
{"key": "watchdog", "param": ""},
{"key": "uart", "param": "[{'device':'/dev/ttyS1', 'baud': 9600, 'send': '7A7A', 'receive': '7A7A', 'state': 0}, {'device':'/dev/ttyS3', 'baud': 9600, 'send': '7A7A', 'receive': '7A7A', 'state': 0}, {'device':'/dev/ttyS4', 'baud': 9600, 'send': '7A7A', 'receive': '7A7A', 'state': 0}]"},
{"key": "human", "param": ""},
{"key": "acc", "param": ""},
{"key": "display", "param": ""},
{"key": "touch", "param": ""},
{"key": "spk", "param": ""},
{"key": "mic", "param": ""},
{"key": "micarray", "param": "{'card':0, 'device': 1, 'channels': 4, 'rate':16000, 'bits':16, 'period_size':1024, 'period_cnt':3, 'play_channel':0}"},
{"key": "key", "param": "[{'name':'BACK', 'code': 4, 'state': 0}, {'name':'MENU', 'code': 82, 'state': 0}, {'name':'MUTE', 'code': 164, 'state': 0}, {'name':'VOL+', 'code': 24, 'state': 0}, {'name':'VOL-', 'code': 25, 'state': 0}]"},
{"key": "camera", "param": ""},
{"key": "backlight", "param": ""},
{"key": "battery", "param": ""},
{"key": "light", "param": ""},
{"key": "temp", "param": ""},
{"key": "usb", "param": ""},
{"key": "sd", "param": ""},
{"key": "gpio", "param": ""},
{"key": "wiegand", "param": "{'write': {'format': 26, 'value': 7825015}, 'read': {'format': 26, 'value': 0}}"},
{"key": "nd01", "param": "{'i2c': 1, 'calibrate': true}"},
{"key": "pwm", "param": "[{'name': '紅色LED', 'pwm': 0, 'period': 10000, 'duty': 1000, 'state': 0}, {'name': '綠色LED', 'pwm': 1, 'period': 10000, 'duty': 1000, 'state': 0}, {'name': '藍(lán)色LED', 'pwm': 2, 'period': 10000, 'duty': 1000, 'state': 0}]"},
{"key": "led", "param": "[{'name': '紅', 'device': 'led_r', 'brightness': 1000, 'state': 0}, {'name': '綠', 'device': 'led_g', 'brightness': 1000, 'state': 0}, {'name': '藍(lán)', 'device': 'led_b', 'brightness': 1000, 'state': 0}]"}
]
- 將配置文件內(nèi)置到固件vendor根目錄下,完成配置茫经。
配置文件格式說(shuō)明
配置文件整體由一個(gè)Json數(shù)組包含若干Json項(xiàng)巷波,每一個(gè)Json項(xiàng)格式如下:
{"key": "測(cè)試項(xiàng)關(guān)鍵字", "param": "參數(shù)"}
- key:測(cè)試項(xiàng)關(guān)鍵字(注:必須為以上模板中支持的關(guān)鍵字)。
- param:參數(shù)(注:個(gè)別測(cè)試項(xiàng)需要帶參數(shù)卸伞,無(wú)參數(shù)項(xiàng)使用空字符串)抹镊。
key(關(guān)鍵字)說(shuō)明
- info:設(shè)備信息測(cè)試。
- wifi:WiFi測(cè)試荤傲。
- bt:藍(lán)牙測(cè)試垮耳。
- eth:以太網(wǎng)測(cè)試。
- mobile:移動(dòng)網(wǎng)絡(luò)(3G/4G/5G)測(cè)試遂黍。
- timingboot:定時(shí)開關(guān)機(jī)測(cè)試终佛。
- watchdog:看門狗測(cè)試。
- uart:串口測(cè)試雾家。
- human:人體感應(yīng)測(cè)試铃彰。
- acc:加速度傳感器測(cè)試。
- display:顯示屏測(cè)試芯咧。
- touch:觸摸屏測(cè)試牙捉。
- spk:喇叭測(cè)試竹揍。
- mic:麥克風(fēng)測(cè)試。
- micarray:麥克風(fēng)陣列(多麥)測(cè)試邪铲。
- key:按鍵測(cè)試芬位。
- camera:攝像頭測(cè)試。
- backlight:背光測(cè)試带到。
- battery:電池測(cè)試昧碉。
- light:光感測(cè)試。
- temp:溫濕度傳感器測(cè)試揽惹。
- usb:usb測(cè)試被饿。
- sd:sdcard測(cè)試。
- gpio:gpio測(cè)試永丝。
- wiegand:韋根接口測(cè)試锹漱。
- nd01:物距傳感器測(cè)試箭养。
- pwm:pwm器件測(cè)試慕嚷。
- led:led燈測(cè)試。
WiFi參數(shù)說(shuō)明
{'ssid': 'test', 'rssi': -30}
- ssid:測(cè)試WiFi熱點(diǎn)名毕泌。
- rssi:測(cè)試WiFi熱點(diǎn)信號(hào)強(qiáng)度閾值(注:設(shè)備搜索到該WiFi熱點(diǎn)且信號(hào)強(qiáng)度大于此閾值則測(cè)試通過(guò))喝检。
注 WiFi測(cè)試項(xiàng)也可不帶參數(shù),不帶參數(shù)則不判定信號(hào)強(qiáng)度撼泛,僅僅掃描附近WiFi熱點(diǎn)挠说。
串口參數(shù)說(shuō)明
[{'device':'/dev/ttyS1', 'baud': 9600, 'send': '7A7A', 'receive': '7A7A', 'state': 0}, {'device':'/dev/ttyS3', 'baud': 9600, 'send': '7A7A', 'receive': '7A7A', 'state': 0}, {'device':'/dev/ttyS4', 'baud': 9600, 'send': '7A7A', 'receive': '7A7A', 'state': 0}]
- device:串口設(shè)備文件路徑。
- baud:波特率愿题。
- send:向串口TX發(fā)送的hex數(shù)據(jù)损俭。
- receive:串口RX應(yīng)該收到的hex數(shù)據(jù)(注:如果向串口發(fā)送完指定數(shù)據(jù)后,超時(shí)時(shí)間內(nèi)未能接收到此數(shù)據(jù)則測(cè)試失敗)潘酗。
- state:狀態(tài)(默認(rèn)填0)杆兵。
麥克風(fēng)陣列參數(shù)說(shuō)明
{'card':0, 'device': 1, 'channels': 4, 'rate':16000, 'bits':16, 'period_size':1024, 'period_cnt':3, 'play_channel':0}
- card:聲卡ID。
- device:設(shè)備ID仔夺。
- channels:總錄音通道數(shù)(一共錄制幾通道數(shù)據(jù))琐脏。
- rate:采樣率(8000、16000缸兔、44100等)日裙。
- bits:PCM數(shù)據(jù)格式(8bit、16bit惰蜜、24bit昂拂、32bit)。
- period_size:一次采樣的幀數(shù)抛猖。
- period_cnt:一共采樣幾次格侯。
- play_channel:播放通道(使用哪個(gè)通道數(shù)據(jù)用于播放)路克。
按鍵參數(shù)說(shuō)明
[{'name':'BACK', 'code': 4, 'state': 0}, {'name':'MENU', 'code': 82, 'state': 0}, {'name':'MUTE', 'code': 164, 'state': 0}, {'name':'VOL+', 'code': 24, 'state': 0}, {'name':'VOL-', 'code': 25, 'state': 0}]
- name:按鍵名。
- code:鍵值养交。
- state:狀態(tài)(默認(rèn)填0)精算。
韋根參數(shù)說(shuō)明
{'write': {'format': 26, 'value': 7825015}, 'read': {'format': 26, 'value': 0}}
- write:韋根寫(注:不支持韋根寫時(shí)刪除此項(xiàng)配置)。
- read:韋根讀(注:不支持韋根讀時(shí)刪除此項(xiàng)配置)碎连。
- format:格式(26:韋根26灰羽,34:韋根34)。
- value:待寫入韋根外設(shè)的數(shù)據(jù)(注:韋根讀配置中此項(xiàng)默認(rèn)填0)鱼辙。
物距參數(shù)說(shuō)明
{'i2c': 1, 'calibrate': true}
- i2c:I2C總線ID廉嚼。
- calibrate:是否需要標(biāo)定(true:需要標(biāo)定,false:不需要標(biāo)定)倒戏。
PWM參數(shù)說(shuō)明
[{'name': '紅色LED', 'pwm': 0, 'period': 10000, 'duty': 1000, 'state': 0}, {'name': '綠色LED', 'pwm': 1, 'period': 10000, 'duty': 1000, 'state': 0}, {'name': '藍(lán)色LED', 'pwm': 2, 'period': 10000, 'duty': 1000, 'state': 0}]
- name:器件名稱(最好配置為器件名怠噪,比如:紅色LED、綠色LED杜跷、藍(lán)色LED等)傍念。
- pwm:PWM ID(表示CPU的第幾路PWM)。
- period:PWM頻率(單位:Hz)葛闷。
- duty:占空比(測(cè)試時(shí)期望輸出的占空比)憋槐。
- state:狀態(tài)(默認(rèn)填0)。
LED參數(shù)說(shuō)明
[{'name': '紅', 'device': 'led_r', 'brightness': 1000, 'state': 0}, {'name': '綠', 'device': 'led_g', 'brightness': 1000, 'state': 0}, {'name': '藍(lán)', 'device': 'led_b', 'brightness': 1000, 'state': 0}]
- name:LED名稱(比如:紅淑趾、綠阳仔、藍(lán)等)。
- device:對(duì)應(yīng)“/sys/class/leds/”路徑下的設(shè)備名扣泊。
- brightness:點(diǎn)亮LED后的亮度值(PWM的占空比)近范。
- state:狀態(tài)(默認(rèn)填0)。
預(yù)覽
測(cè)試結(jié)果
全項(xiàng)測(cè)試完成后會(huì)導(dǎo)出測(cè)試結(jié)果至本地文件(sdcard/factorytest/result.txt)延蟹,內(nèi)容如下:
測(cè)試結(jié)果(2022-03-02 13:31:43)
信息: 通過(guò)
WiFi: 通過(guò)
藍(lán)牙: 通過(guò)
以太網(wǎng): 通過(guò)
移動(dòng)網(wǎng)絡(luò): 失敗
定時(shí)開關(guān)機(jī): 失敗
看門狗: 失敗
串口: 失敗
人體感應(yīng): 失敗
加速度: 失敗
顯示: 通過(guò)
觸摸: 通過(guò)
喇叭: 通過(guò)
麥克風(fēng): 通過(guò)
麥克風(fēng)陣列: 通過(guò)
按鍵: 失敗
攝像頭: 通過(guò)
背光: 通過(guò)
電池: 通過(guò)
光感: 通過(guò)
溫濕度: 通過(guò)
USB: 通過(guò)
sdcard: 通過(guò)
GPIO: 通過(guò)
韋根: 通過(guò)
PWM:通過(guò)
LED:通過(guò)
共計(jì) 25 項(xiàng)
通過(guò) 18 項(xiàng)
失敗 7 項(xiàng)
忽略 0 項(xiàng)