(03)OSD通道名的擴充

1.測試純英文及純中文下OSD的字符長度限制
2.基於原OSD代碼,對OSD通道名長度做擴充,支持顯示固定模板“廣東啓教科技小學-開發部(01)班-編程課(擴充)”,以模板長度爲準
3.對OSD通道名移動至左上角,左下角,右上角,右下角,均能完整顯示
4.不重疊,不花屏,串口log無異常打印,/dev/mpplog無持續異常打印

執行結果如下
1.測試純英文及純中文下OSD的字符長度限制
1.1 在web端OSD設置分別輸入10個英文字you和固定模板“廣東啓教科技小學-開發部(01)班-編程課(擴充)”,結果如下圖所示。
前端輸入10個純英文you,並設置保存,如下圖.

前端輸入模板“廣東啓教科技小學-開發部(01)班-編程課(擴充)”,並設置保存,如下圖.

1.2, 後臺設備接收並打印輸出,如下圖。
純英文下輸出

純中文下輸出

1.3, 設備主碼流出圖顯示,如下圖。
純英文下顯示

純中文下顯示

設備次碼流出圖顯示,如下圖。
純英文下顯示

純中文下顯示

1.4, 查看設備json配置文件,發現channelName的最大長度max被限制爲32,如下圖。
主碼流的channelName最大值max,如下圖

次碼流的channelName最大值max,如下圖

如上1.1, 1.2, 1.3,1.4部結果所示,可知純英文的字符長度限制爲32,中文的字符長度限制爲24.
因此,爲了進一步擴充通道名OSD的長度限制,進行下一步的操作。
2,基於原OSD代碼,對OSD通道名長度做擴充,支持顯示固定模板“廣東啓教科技小學-開發部(01)班-編程課(擴充)”,以模板長度爲準
2.1,首先找對應的json 配置文件,這裏以3516A設備爲例,及其對應的json文件可以通過查看其配置文件version.h找到,如下圖所示。

然後用vim,gedit或vi等編輯器打開,之後進行下一步。
2.2,然後修改對應的json配置文件video.json,將通道名channelName對應的最大長度max=32進行擴充改爲64,修改如下圖所示.
主碼流101由32擴充爲64

次碼流102由32擴充爲64

然後保存退出,進行下一步。
2.3,然後找到設備後臺接收前端傳送過來的字符串的對應端口,加上對應的打印輸出以便於查看對應的關鍵詞key所對的字符串及字符串長度,我這裏是查找測試的關鍵詞是通道名channelName及其對應的字符串及長度,所以我在如下前端信息接收接口添加輸出打印:printf("key=%s | str=%s | strlen(str)=%d\n ",key,str,strlen(str));如下圖所示

然後保存,編譯App。
2.,4,telnet鏈接設備殺死所有的ash,app,wdt服務,並通過nfs掛載虛擬機Project目錄,找到剛編譯完的App並運行,結果如下圖。

如上圖的運行結果輸出,當app運行後會首先執行json配置文件,當key=channelName 時,對應的通道名內容str=廣東啓教科技小學-開發部(01)班-編程課(擴充),長度strlen(str)=59 。
這時再看看設備出圖,如下圖所示
主流碼出圖

次流碼出圖

如上圖所示,均已完整的顯示出了擴充後的固定模板“廣東啓教科技小學-開發部(01)班-編程課(擴充)”且不重疊,不花屏。
3,串口log,打印如下圖,/dev/mpplog

如上圖所示/dev/mpplog無持續異常打印

發佈了76 篇原創文章 · 獲贊 17 · 訪問量 5694
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章