步驟及作業事項:
一般加工(一般鏡片用)
1、裝樣板:
打開電源裝上樣板、按下型押桿。
2、裝上鏡片
用吸盤夾吸住鏡片紅點向上,放進夾托部的凸面哈吸盤的凹面并對好,擰緊手柄。
3、蓋上防水、防音蓋
4、一般程序加工(一般使用的轉換)
5、板材、金屬鏡框的選擇
根據鏡架的材質(板材、金屬架)的不同,按轉換鍵的同時設定儲存尺寸。
6、確認設定的尺寸
確認紗定的尺寸是否和自己的要求相符,變更時按[+]或[-]鍵,可連續按下來改變設定,
最小設定單位±0.05mm,最大設定單位±6.00mm。
7、玻璃、樹脂鏡片轉換鍵,玻璃(G)或樹脂(P)
8、開始工作
按下R或L鍵開始磨邊。
9、確認鏡片的大小
9-1、松動加壓手柄,取下鏡片。
9-2、將磨好的鏡片放入鏡架內,確認鏡片大小是否合適,注:將鏡片裝進金屬框時,注意先修理一下,再放入鏡架內,不要取下吸盤。
10、二次加工
按原樣裝好鏡片,再次設定尺寸,設定尺寸,設定數據最好大出要求的三分之一,二次加工可重復使用,但易損傷砂輪。
11、當右鏡片磨好后,若需磨左片、需將樣板前后位置掉轉,放下樣板押桿。
步驟及注意事項:
1、打開啟動開關,選擇砂輪的旋轉方向。
2、打開水槽開關,使水滴流到砂輪上。
3、右手拿住鏡片,左手托住右手,以防鏡片打滑,將鏡片邊稍稍傾斜對準砂輪,輕輕修去邊角。
4、如需修正鏡片山峰,則將鏡片對準砂輪的山峰凹槽,輕輕打磨。
5、使用完畢立即關閉水槽開關以及電源,保持設備清潔。
6、注意事項
確保兩塊海面各位于砂輪兩頭位置。
步驟及注意事項:
1、準備工作
1-1、經計量測試所檢定合格后才能使用。
2、檢查測試設置。
3、檢驗員拿出要檢查的鏡片,放置于檢測頭上。
3-1、帶框鏡片需要確定鏡片的左右眼。
按R/L鍵來確定是左或右眼的鏡片。
3-2、轉動鏡片臺移動桿使鏡片臺緊靠鏡框(兩個鏡片)底部。
3-3、帶框鏡片測量光學中心、瞳距PD。
3-3-1、按下S→R鍵,找準右眼鏡片中心,顯示“MARKING OK”。然后結果將自動記憶,右眼鏡片數據將固定,拿開右眼鏡片將自動進入左眼測試模式。找左眼鏡片中心,結果也將自動記憶。
4、測量鏡片,步驟如下:
4-1、鏡片凹面朝下放置鏡片托上。
4-2、把鏡片呀緊桿放下壓住鏡片托上。
4-3、移動鏡片找光學中心,當屏幕上十字線位于最小的環內時ALIGNMENT OK將顯示。
4-4、在單個鏡片測試時,如R/L選擇為ON ,將自動記憶測試結果。
4-5、測量雙光片和漸進多焦時,還需測量ADD讀數。
測量時按測試ADD的功能鍵會出現測試ADD界面,此時方可測量。
4-6、對準后,按下讀取鍵。測量數據被確定。
4-7、按下標記筆,在鏡片上標記出一直線上3點紅點。
4-8、用標尺測量,雙光片和漸進片是否符合標準。
4-9、左右移動鼻托架,在焦度計上顯示瞳距PD的數值。界面上顯示為左右雙眼各自的值,
需將其相加后比對驗光處方上的數值。
5、注意事項:
5-1、所有的安全指示和按鍵解釋,查看TOPCON CL-100電腦查片儀使用說明書。
5-2、測量具體操作按鍵和保養,查看TOPCON CL-100電腦查片儀使用說明書。
步驟及注意事項:
1、開機試運行,檢查設備是否運轉正常。
2、調整好進入數值(鏡片孔位中心距最近邊緣距離)。
3、左手拿鏡片,右手拇指與食指推動手押桿,小指按動開關,達初始孔位。
4、初始孔位打好后,把鏡片初始孔位鉆頭,右手拇指按啟動開關,擴大孔經至合適尺寸。
5、使用完畢關閉電源,保持設備清潔。
6、注意事項;
打初始孔時,不要在與鉆頭同向以外給鉆頭加外力,更不能在插孔處對打孔針同向以外加外力。
一、適用范圍:鏡片拋光
二、機械設備:NO:144
三、步驟及注意事項:
1、開機試運行,檢查設備是否運轉正常。
2、右手拿緊鏡片,將需要拋光的部位對準運轉中的拋光布,此時左手應箬住右手,以防鏡片打滑。
3、將鏡片小心接觸運轉中的拋光布,并緩慢而均勻地轉動鏡片,直至得到滿意的光亮度為止。
4、如進行鏡架拋光,則更換相應的拋光布后,重復上述程序,
5、使用完畢必須立即關閉電源,保持設備清潔。
6、拋光過程中,注意必須牢牢拿緊鏡片或鏡架,防止脫手飛出去。
使用中需采取防塵措施。
步驟及注意事項:
1、開機試運行,檢查設備是否運轉正常,探針、刀頭、切削手柄
是否靈活自如。
2、半鏡架放置于鏡架箬板上,調整縱向檔板,使鏡架縱向對稱,用手調整鏡架,使鏡架
橫向對稱,用架子固定腳板固定架子。
3、把樣板正確放置于樣板卡頭上。
4、把探針放于鏡架邊絲中,左手輕壓樣板,鄒手輕輕拉動切削手柄,開始切削樣板。
5、探針在邊絲中運動一周后,右手將切削手柄輕輕復位,停止切削。
6、注意事項
刀頭工作時,不要在與切削刀頭垂直方向上施加外力,以免打壞刀頭或者降低刀頭使
用壽命。
步驟及注意事項:
1、開機試運行,檢查設備是否運轉正常。
2、打開夾片托架,看水槽中水量是否充足,海面吸水后是否與刀頭充分接觸。
3、旋動夾片軸,把所需開槽鏡片固定于兩夾軸之間,夾片軸中心盡量穿過鏡片中心。
4、打開夾片托架橫向控制腳板放下開槽機機頭,鏡片恰好放入兩控制腳板之間與刀頭接
觸。
5、打開轉動開關,看開槽位置是否正確,如不合適,調整兩夾片腳板,使鏡片放于合適
位置。
6、調整所需開槽深度,按動刀頭開關開始開槽,開槽一周后停止刀頭開關,再停止轉動
開關。
7、注意事項:
開槽時吸水海棉一定與刀頭充分接觸且水分充足,以防傷害刀頭與鏡片。
步驟及注意事項:
1、開機試運行,檢查設備是否運轉正常。
2、把鏡片放在焦度計上,測出加工所需的鏡片光學中心,軸位等。
3、在樣板上標出所需的瞳距,瞳高以及水平基準線等,并打點作記號。
4、在制作好的樣板上標識左右片記號,然后選擇右片樣板放在鏡面卡尺上。
5、打開電源,開啟燈光,將透明卡尺移動至樣板所標識的瞳距處。
6、在中心以手柄右下方裝上吸盤。
7、把鏡片放在聚光鏡的底盤上,將鏡片中心移至與樣板所標識的瞳高、瞳距處。
8、在各點重合確定無誤后,用左手固定鏡片,右手移動手柄相當手柄按順時針方向轉至無法移動時,向下按手柄使吸盤正確固定在鏡片上。
9、自然放開手柄,讓其自然向上還原,然后將手柄向右轉,將手柄還原至初始位。
10、拿掉樣板,觀察縱向刻度線,讀出正確讀數,移動縱向刻度線,以0度刻度線為中心線,移至與原位置對稱的位置,確定左片的瞳距。
注意:(此時卡尺只能橫向移動,不能縱向移動,以免破壞右片的瞳高,使左右的瞳高不一致)。
11、在手柄上裝上吸盤,然后將左片放在聚光燈上,重復以上步驟將左片定位。
12、注意事項:
吸盤吸住鏡片時不可用力過猛,以免損傷鏡片。
ndroid黑盒測試過程中如何進行有效的打點是我們經常遇到的問題,我們一般會在腳本內部進行數據打點,也可以使用其他進程錄屏或截圖。那我們如何選取合適的方式進行打點記錄呢?下圖是對常用打點方式的統計!對于測試開發人員來說有效的關鍵截圖信息是最直觀的數據,可以很快定位問題場景!本文重點介紹如何在Shell進程內統計屏幕截圖變化。
第三方服務截圖
本方案可以在uiautomator1.0腳本內實現,也可以自定義Shell進程服務來實現。個人推薦自定義Shell服務,然后用app_process命令啟動。即使腳本出現異常退出了也不會影響截圖服務,并且可以截取腳本啟動前和結束后的狀態。最主要的是Android R開始不再支持uiautomator1.0腳本。
主要通過Activity監聽、定時器、進程監聽服務觸發截圖操作:在頁面變化時、進程狀態變化時以及定時檢測頁面狀態。除此之外我們需要一個App提供圖片相似度的比較,或者搭建其他圖片匹配服務也可以。
Activity變化和應用異常時截圖
1.首先我們要注冊ActivityController
①. 直接通過IActivityController.Stub()方法獲取ActivityController對象;
②. 通過ActivityManager的setActivityController方法設置監聽,設置成功后切換頁面時就會回調對應的方法;
2.我們可以在ActivityController的回調中記錄關鍵截屏信息,主要信息有:
**①. **新打開的Activity:點擊按鈕跳轉頁面時;
**②. **恢復顯示的Activity:按返回鍵退回到上一級頁面時顯示的頁面;
**③. **App產生崩潰的詳細信息以及截圖;
**④. **App產生ANR時的詳細信息以及截圖;
**⑤. **我們可以在activityStarting和activityResuming方法中對打開的頁面進行控制。
3.缺點
**①. **如果其他進程也注冊這個服務,那么會相互影響,只有最后注冊的服務有效;
**②. **當在頁面中切換Fragment時無法感知到事件變化;
**③. **必須在Shell進程內執行,普通App內是無法注冊成功的;
IActivityController mActivityController=new IActivityController.Stub() {
//當調用Activity的onCreate方法(跳轉新頁面)時回調此方法,
//return false時不會啟動Activity;return true時正常啟動Activity
//不要在這個方法內做耗時操作
@Override
public boolean activityStarting(Intent intent, String pkg) throws RemoteException {
return true;
}
//當調用Activity的onResume方法(比如dialog消失)時會調用這個方法
@Override
public boolean activityResuming(String pkg) throws RemoteException {
return true;
}
/**
* 有應用在Java層產生異常時回調此方法
* 返回true時,會顯示應用crash的彈窗,返回false時會立即kill應用
*/
@Override
public boolean appCrashed(String processName, int pid,
String shortMsg, String longMsg, long timeMillis,
String stackTrace) throws RemoteException {
return false;
}
/**
* 檢測到ANR異常時就會回調此方法
*/
@Override
public int appEarlyNotResponding(String s, int i, String s1) throws RemoteException {
return 0;
}
/**
* 應用產生ANR時回調此方法,
* Return 0 時顯示 "應用停止響應" 彈窗。
* Return 1 時不做任何操作,等待應用恢復正常;
* Return -1 時結束產生ANR的應用.
*/
@Override
public int appNotResponding(String processName, int pid,
String processStats) throws RemoteException {
return -1;
}
/**
* 系統停止響應時回調此方法,可以在這個方法里面對設備進行些恢復工作
*/
@Override
public int systemNotResponding(String msg) throws RemoteException {
return 0;
}
};
進程變化監聽
由于ActivityController服務存在被干擾的情況,我們需要其他服務進行輔助判斷,通過ActivityManager注冊IProcessObserver可以獲取進程變化的回調,特別是在onForegroundActivitiesChanged方法內可以判斷是否觸發頁面切換。
通過IProcessObserver可以實現的功能:
**①. **在onForegroundActivitiesChanged方法內監聽頁面變化;
**②. **在onProcessStateChanged和onProcessDied方法內可以統計App的線程生命周期;
**③. **可以統計app運行期間創建的線程信息;
**④. **該服務被不同進程注冊時,相互間互不影響;
缺點:
**①. **沒有直觀信息,需要使用uid進行關聯,處理復雜;
IProcessObserver mProcessObserver=new IProcessObserver.Stub() {
//與用戶交互的Activity發生變化時foregroundActivities為true,否則foregroundActivities為false
//uid產生該活動的應用標識,可以用包信息匹配到具體的應用
//pid 當前活動的線程/進城ID
@Override
public void onForegroundActivitiesChanged(int pid, int uid,
boolean foregroundActivities) throws RemoteException {
if(foregroundActivities) {
//
}
}
//活動狀態發生變化時調用,在此方案內實際意義不大
@Override
public void onProcessStateChanged(int pid, int uid, int importance)
throws RemoteException {
}
//結束時調用
@Override
public void onProcessDied(int pid, int uid) throws RemoteException {
}
};
綜合應用
上面兩種方案各有優劣,我們可以將他們整合在一個流程內實現較為完善的截圖機制:
①. 首先我們的服務主要依賴于ActivityController進行頁面變化的感知,以便于獲取詳細的信息和精確控制;
**②. **我們注冊IProcessObserver進行輔助驗證,當頁面發生變化時我們進行截屏,并通過ActivityController最后一次接收事件的時間判斷其服務狀態,如果服務狀態異常,那么我們重新注冊ActivityController服務;
**③. **開始監控頁面時我們初始化一個定時器,可以定時(2S)截取屏幕,將當前截圖Bitmap與上一次的截圖Bitmap做圖像匹配,如果圖片相似度小于0.8,那么可以認定頁面發生了變化,如果5S內沒有保存過頁面信息,那么需要重新初始化ActivityController服務。
Root設備的特殊方案
Android系統是基于Linux系統的移動操作系統。它們可以通過getevent命令輸出鍵盤和屏幕事件,包括響應事件的坐標區域和鍵盤key值。但是Android系統基于安全考慮,大部分真機系統是沒有權限執行getevent命令的,它不會輸出任何有效信息,但是華為手機(榮耀20 i)上卻可以正常使用。這是一個非常危險的權限,大家自己的手機還是不要開啟開發者模式了!
/dev/input/event2: EV_ABS ABS_MT_POSITION_X 0000024b
/dev/input/event2: EV_ABS ABS_MT_POSITION_Y 0000065d
/dev/input/event2: EV_ABS ABS_MT_PRESSURE 000000f5
/dev/input/event2: EV_ABS ABS_MT_TRACKING_ID 00000000
/dev/input/event2: EV_ABS ABS_MT_TOUCH_MAJOR 000000a5
/dev/input/event2: EV_ABS ABS_MT_TOUCH_MINOR 00000087
/dev/input/event2: EV_ABS ABS_MT_ORIENTATION ffffffc6
/dev/input/event2: EV_ABS ABS_MT_BLOB_ID 00000002
/dev/input/event2: EV_SYN SYN_MT_REPORT 00000000
/dev/input/event2: EV_KEY BTN_TOUCH DOWN
/dev/input/event2: EV_SYN SYN_REPORT 00000000
/dev/input/event2: EV_ABS ABS_MT_POSITION_X 0000024b
/dev/input/event2: EV_ABS ABS_MT_POSITION_Y 0000065c
/dev/input/event2: EV_ABS ABS_MT_PRESSURE 00000067
/dev/input/event2: EV_ABS ABS_MT_TRACKING_ID 00000000
/dev/input/event2: EV_ABS ABS_MT_TOUCH_MAJOR 000000b4
/dev/input/event2: EV_ABS ABS_MT_TOUCH_MINOR 000000a5
/dev/input/event2: EV_ABS ABS_MT_ORIENTATION ffffffc1
/dev/input/event2: EV_ABS ABS_MT_BLOB_ID 00000002
/dev/input/event2: EV_SYN SYN_MT_REPORT 00000000
/dev/input/event2: EV_SYN SYN_REPORT 00000000
/dev/input/event2: EV_SYN SYN_MT_REPORT 00000000
/dev/input/event2: EV_KEY BTN_TOUCH UP
/dev/input/event2: EV_SYN SYN_REPORT 00000000
**ABS_MT_POSITION_X **屏幕的橫坐標,后面一列是坐標的十六進制數據
**ABS_MT_POSITION_Y **屏幕縱坐標,后面一列是坐標的十六進制數據
BTN_TOUCH 代表屏幕事件,后面如果是DOWN則代表按下,后面如果是UP代表抬起
我們可以根據ABS_MT_POSITION_X和ABS_MT_POSITION_Y信息和BTN_TOUCH為DOWN的事件計算響應按下事件的屏幕位置,然后通過BTN_TOUCH為UP的事件計算抬起的屏幕位置,然后用按下和抬起的坐標差來判斷該時間是點擊還是滑動,然后我們可以進行屏幕截圖,甚至在截圖上繪制事件的軌跡。
https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=toutiao×tamp=1662310800&author=Muller
點定位功能概述
配合H20系列云臺相機使用時,可使用打點定位功能,用戶可在相機界面或地圖界面對目標所在位置打點,方便快速進行目標觀察和信息同步。
1.打點定位步驟:調整飛行器、云臺姿態,使目標移動至畫面中央的準心位置,按下遙控器L3按鍵,可在畫面中央的目標上打點,目標點可記錄目標點的經緯度及高度。
2.目標點在相機界面和飛行界面中會有AR投射,根據飛行器與目標點之間的距離而變大或變小,且遵循近大遠小的規律。
3.當前選中的目標點:
a.在目標點的四周會出現小方框,以代表選中狀態。
b.在導航信息模塊的左下角顯示該目標點距離飛行器的水平距離和該點的名稱,同時在導航信息模塊中顯示該點相對于飛行器的方位。
c.如果選中的目標點在圖傳畫面外,則目標點圖標會在畫面邊緣駐留,以顯示當前選中的目標點相對于畫面中心的方位。
d.選中目標點后,可編輯目標點的名稱、顏色、經緯度、高度,也可在地圖上拖動點的位置。
4.點擊“遙控器”按鍵,可將遙控器自定義按鍵設置為打目標點、刪除選中的目標點、選擇上一個/下一個目標點,便于用戶使用按鍵快速生成、選擇目標點。
5.切換至地圖界面:
a.在圖傳畫面打的目標點及其名稱將對應在地圖上顯示。
b.在地圖界面上,也可點擊目標進行打點,該點打在地圖中央十字準心位置,高度為當前飛行器的飛行高度。
c.點擊選擇地圖上某個目標點,可以查看該點的繪制者、目標點和飛行器間的距離、目標點的海拔高度和經緯度坐標,還可將該點設置為返航點,或者對該點進行編輯和刪除。