System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及編程相關,具體涉及一種智能卡腳本定義和解析執行方法、裝置及設備。
技術介紹
1、目前,很多廠商都在開發自己的智能卡測試套件,一般來說,套件里包括腳本和工具兩個部分。不同廠商提供的測試腳本各不相同,用于執行測試腳本的測試工具也完全不同。
2、智能卡產品完成測試環節后會進行轉產,生產環節也會用到生產腳本和生產工具,受制于生產工具的環境約束,這些腳本往往需要重新編寫。而且,和測試階段的情況類似,各個廠家所使用的生產腳本和生產工具也不盡相同。
3、經大量觀察和分析發現,現有這些廠商提供的腳本各不相同,用于執行腳本的測試工具也完全不同。而且,很多廠商定義的智能卡測試腳本比較復雜,導致解析執行器也比較復雜。還有一種普遍現象是,受生產機器的特性限制,同一廠商的生產腳本和測試腳本往往不一致,因為生產環節的要求是腳本簡單、操作便捷、執行性能高,這就導致測試腳本通常不能直接應用于生產環節,需要重新定義和編寫生產腳本。
4、綜合以上幾點,導致智能卡相關項目的測試工作和生產環節需要投入大量人力、物力資源來處理這些由于廠商不同而帶來的問題。
技術實現思路
1、有鑒于此,本申請的實施例致力于提供一種智能卡腳本定義和解析執行方法、裝置及設備。
2、本申請第一方面提供了一種智能卡腳本定義和解析執行方法,包括:確定腳本語法:其中,所述腳本語法包括:注釋語法、命令語法、變量語法、方法語法;注釋語法由第一符號標識開頭,行尾結束;命令語法由第二符號標識開頭,后續緊
3、基于所述腳本語法撰寫智能卡腳本;
4、基于與所述腳本語法匹配的解析執行策略,對所述智能卡腳本進行解析和執行。
5、在一些實施例中,所述基于與所述腳本語法匹配的解析執行策略,對所述智能卡腳本進行解析和執行包括:
6、從智能卡腳本讀取未被讀取的一行,作為目標行;
7、去除目標行的首尾空格;
8、如果目標行是空,則重新執行從智能卡腳本讀取未被讀取的一行;
9、如果目標行為錯誤行,則重新執行從智能卡腳本讀取未被讀取的一行;
10、如果目標行為注釋行則重新執行從智能卡腳本讀取未被讀取的一行;如果目標行以第二符號標識開頭,表示命令,則進一步調用命令解析流程解析命令名稱和參數;
11、處理成功后,將命令解析流程解析出的對象保存到腳本對象中,則重新執行從智能卡腳本讀取未被讀取的一行。
12、在一些實施例中,所述命令解析流程包括:
13、解析出命令的名稱和對應的參數列表;
14、使用參數解析方法依次解析參數列表中的每個參數,得到參數對象;
15、將參數對象保存到命令對象中。
16、在一些實施例中,所述基于與所述腳本語法匹配的解析執行策略,對所述智能卡腳本進行解析和執行包括:調用方法解析流程解析方法語法;
17、其中,調用方法解析流程解析方法語法,包括:
18、解析出方法的名稱和對應的參數列表;
19、使用參數解析方法依次解析參數列表中每個參數,輸出參數對象;
20、將參數對象保存到方法對象。
21、在一些實施例中,所述參數解析方法包括:
22、從參數列表中按順序提取一個子串,進行處理;其中,單個參數由一系列用空格分隔的子串構成;
23、如果該子串以第三符號標識開頭,表示變量,則進一步解析變量,得到變量名;處理成功后,構建變量對象;
24、如果該子串以第四符號標識開頭,表示方法,則進一步使用方法解析流程解析方法名稱和參數;處理成功后,將返回的方法對象保存到參數對象;
25、如果該子串不以第四符號標識開頭且不以第三符號標識開頭,按照字符串對所述子串進行處理,構建字符串對象,將字符串對象保存到參數對象后;
26、最后將所有子串的處理結果依次拼接成一個字符串,作為結果返回。
27、在一些實施例中,所述對象包括:
28、腳本對象,包含一個由命令對象構成的命令列表;
29、命令對象,包含一個命令名稱和一個參數對象列表;
30、參數對象,包含一個由字符串對象、變量對象、方法對象混合構成的列表;
31、字符串對象,包含一個字符串;
32、變量對象,包含一個變量名稱;
33、方法對象,包含一個方法名稱和一個參數對象列表。
34、在一些實施例中,第一符號標識包括:#;
35、第二符號標識包括:*;
36、第三符號標識包括:$;
37、第四符號標識包括:^。
38、在一些實施例中,所述參數解析方法包括:基于定義的運行上下文,保存運行過程中的變量信息;
39、針對每種對象預設一個執行方法;
40、其中,腳本對象對應的執行方法包括:依次調用命令對象的執行方法;
41、命令對象對應的執行方法包括依次調用每個參數對象對應的執行方法,獲得參數列表;使用反射機制或者hash機制,根據命令名稱查找到對應的命令實現接口,調用其執行方法,傳入對應的參數列表,獲得處理后的值;返回命令的值;
42、參數對象對應的執行流程包括:依次調用參數內部包含的各混合對象的執行方法,獲得處理后的值;將上述多個值連接在一起,作為返回值;
43、字符串對象對應的執行流程包括:返回一個字符串;
44、變量對象對應的執行流程包括:從運行上下文中獲取變量值;返回變量名稱和變量值;
45、方法對象對應的執行流程包括:依次調用每個參數對象的run方法,獲得參數列表;使用反射機制或者hash機制,根據方法名稱查找到對應的方法實現接口,調用其run方法,傳入對應的參數列表,獲得處理后的值;返回方法的值。
46、本申請第二方面提供了一種智能卡腳本定義和解析執行裝置包括:
47、編寫模塊,用于確定腳本語法:其中,所述腳本語法包括:注釋語法、命令語法、變量語法、方法語法;注釋語法由第一符號標識開頭,行尾結束;命令語法由第二符號標識開頭,后續緊跟命令名稱和以逗號分隔的命令參數列表;變量語法由第三符號標識開頭,空格結束;方法語法由第四符號標識開頭,后面緊跟方法名稱和參數;基于所述腳本語法撰寫智能卡腳本;
48、解析模塊,用于基于與所述腳本語法匹配的解析執行策略,對所述智能卡腳本進行解析和執行。
49、本申請第三方面提供了一種電子設備,包括:
50、處理器,以及用于存儲所述處理器可執行程序的存儲器;
51、所述處理器,用于通過運行所述存儲器中的程序,實現如上述任一實施例提供的智能卡腳本定義和解析執行方法。
52、本申本文檔來自技高網...
【技術保護點】
1.一種智能卡腳本定義和解析執行方法,其特征在于,包括:
2.根據權利要求1所述的智能卡腳本定義和解析執行方法,其特征在于,所述基于與所述腳本語法匹配的解析執行策略,對所述智能卡腳本進行解析和執行包括:
3.根據權利要求2所述的智能卡腳本定義和解析執行方法,其特征在于,所述命令解析流程包括:
4.根據權利要求2所述的智能卡腳本定義和解析執行方法,其特征在于,所述基于與所述腳本語法匹配的解析執行策略,對所述智能卡腳本進行解析和執行包括:調用方法解析流程解析方法語法;
5.根據權利要求3或4所述的智能卡腳本定義和解析執行方法,其特征在于,所述參數解析方法包括:
6.根據權利要求2所述的智能卡腳本定義和解析執行方法,其特征在于,所述對象包括:
7.根據權利要求2所述的智能卡腳本定義和解析執行方法,其特征在于,第一符號標識包括:#;
8.根據權利要求6所述的智能卡腳本定義和解析執行方法,其特征在于,還包括:
9.一種智能卡腳本定義和解析執行裝置,其特征在于,包括:
10.一種電子設
...【技術特征摘要】
1.一種智能卡腳本定義和解析執行方法,其特征在于,包括:
2.根據權利要求1所述的智能卡腳本定義和解析執行方法,其特征在于,所述基于與所述腳本語法匹配的解析執行策略,對所述智能卡腳本進行解析和執行包括:
3.根據權利要求2所述的智能卡腳本定義和解析執行方法,其特征在于,所述命令解析流程包括:
4.根據權利要求2所述的智能卡腳本定義和解析執行方法,其特征在于,所述基于與所述腳本語法匹配的解析執行策略,對所述智能卡腳本進行解析和執行包括:調用方法解析流程解析方法語法;
【專利技術屬性】
技術研發人員:朱琳琳,劉立黎,秦遠富,陳培央,
申請(專利權)人:四川科道芯國智能技術股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。