女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TestStand表達式中常用的語法規則和運算符使用

華穗科技 ? 來源: 華穗科技 ? 2024-08-15 18:10 ? 次閱讀

TestStand也有自己的語言?

TestStand也有自己的語言嘛?在回答這個問題之前大家可以想一下在使用TestStand時有一個和語言密切相關的屬性。沒錯那就是表達式(Expressions),在這篇文章中,小編將以Q&A的方式來帶著大家來理解并熟悉TestStand表達式中較為常用的一些語法規則以及運算符使用。

在了解TestStand語法規則和運算符之前,大家先回憶一下還記得表達式是什么嘛?表達式分為哪幾類?

wKgZoma91B2AXkxCAACWfBaqwuc637.jpg

那么根據上面這張圖,大家是不是有記起一些呢?除了運行前表達式、運行時表達式、狀態表達式,還有步驟中Statement(賦值表達式),Precondition Expression(先決條件表達式)等。表達式起到什么作用、什么時候執行都是有明確的區分的。

本文分享:

Teststand語法

一、算數運算符(Arithmetic)

wKgZoma91B2AOIN4AAKFSpCoQes826.jpg

"+" :加法運算符,需注意的是如果一個操作數是字符串,另一個操作數是數值,操作符會先將字符串轉換為數值。如果兩個參數都是字符串,則運算符會創建一個新的字符串,新的字符串是將兩個字符串的內容連接起來。如果兩個參數都是數組,則運算符會創建一個新數組,將兩個數組的內容連接起來。運算使用時需要注意數據類型是否一致,舉個例子創建Locals.x(數值類型),執行該表達式Locals.x = "3" +5,Locals.y執行結果為8;

"-" :減法運算符,僅適用于數值,實現的就是簡單的減法運算。

"*" :乘法運算符,僅適用于數值,實現的就是簡單的乘法運算。

"/" :第一個數除以第二個數,僅適用于數值。

"MOD"(Basic syntax) :計算第一個數除以第二個數的余數,適用于整數和實數。

"%"(C/C++/C# syntax):計算第一個數除以第二個數的余數,適用于整數和實數。

"++" :增量運算符,前增量或后增量,將數值增加1,可以放在數值前或數值后。如果將該運算符放在數值之前,則表達式的值為增加1后的新值,反之放在數值之后,則表達式的值為原值。

"--" :減量運算符,使用方法和增量運算符相同。

了解了算數運算符后,想必大家也發現TestStand表達式的語法規則和文本語言十分相像甚至可以說是一模一樣,算法運算符在單純使用方面和文本語言幾乎一模一樣,那么這里提出一個簡單的問題!

Q

Locals.x的值為3,若執行表達式1:Locals.y = ++Locals.x + 10和表達式2:Locals.y = Locals.x++ +10兩個表達式的運算結果分別是什么呢?

和文本語言語法規則相同,表達式1在執行后Locals.x的值為4,Locals.y的值為14,表達式2在執行后Locals.x的值為3,Locals.y的值為13。

Q

若要使兩個字符串連接起來組成一個新的字符串,類似于LabVIEW中的連接字符串,可以通過何種方法在TestStand中實現呢?

可以使用加法運算符來實現該功能,因為如果運算符前后都是字符串,則會創建一個新的字符串,將兩個字符串的內容連接起來,比如Local.x = "a" + "b",執行后Locals.x結果為"ab"。

二、賦值運算符(Assignment)

除了算法運算符,賦值運算符同樣和文本語言類似!

wKgaoma91B2Aa1xbAAOCzI6qHCc201.jpg

"=" :對運算符右側表達式求值,并將運算符左側的操作數設置為結果。需注意在對容器屬性進行操作時,左右兩側的子屬性名稱的層次結構必須匹配。對于每個屬性值,賦值會盡可能在不同數據類型之間進行轉換,例如將數值轉換為字符串。

"+=" :該運算符實現的是對運算符右側的表達式求值,并將結果相加到左邊的操作數。如果運算符右側的表達式是字符串,則運算符在將其添加到左側的操作數之前將其轉換為數值。如果兩邊都是字符串,運算符將右邊的字符串連接至左邊的字符串。如果兩邊都是數組,則運算符將右邊數組的元素附加到左邊數組的末尾。

"-=" :對運算符右側的表達式求值,并從左側的操作數中減去作為結果。使用方法和"+="運算符相同。

"*=" :對運算符右側的表達式求值,并與左側的操作數相乘作為結果。使用方法和"+="運算符相同。

"/=" :對運算符右側的表達式求值,并與左側的操作數相除作為結果。使用方法和"+="運算符相同。

"%=" :對運算符右側的表達式求值,并與左側的操作數相除取余作為結果。使用方法和"+="運算符相同。

"^=" :對運算符右側表達式值和左側數值執行異或操作后得到的數值作為結果。

"&=" :對運算符右側表達式值和左側數值執行與操作后得到的數值作為結果。使用方法和"^="相同。

"|=" :對運算符右側表達式值和左側數值執行或操作后得到的數值作為結果。使用方法和"^="相同。

Q

假設Locals.x為10,執行以下表達式Locals.x^= 3 + 2,執行后的結果是多少呢?

執行該表達式Locals.x ^= 3 + 2,即將10(二進制1010)和5(二進制0101)進行異或得到的結果為15(1111)。

三、位運算符(Bitwise)

wKgaoma91B2AViePAALxwiR6kf4940.jpg

"AND"、"&" :計算兩個數值的與運算,舉個例子Locals.x = 3(0011) AND 6(0110)得到的結果是2(0010)。

"OR"、"|" :計算兩個數值的或運算,使用方法和"AND"相同。

"XOR"、"^" :計算兩個數值的異或運算,使用方法和"AND"相同。

"<<" :將運算符左邊的數值向左移動運算符右邊數值的位數。舉個列子Locals.x = 3(0011) << 1,得到的結果是6(0110)。

">>" :將運算符左邊的數值向右移動運算古右邊數值的位數。使用方法和">>"相同。

四、比較運算符(Comparison)

wKgaoma91B2AIarbAAMy-KegrbQ465.jpg

"==" :判斷運算符左右兩邊是否相等,若相等則返回值為True,不相等則返回值為False。如果一個是字符串,另一個是數值,那么運算符會將字符串轉換為數值。如果兩個都是字符串,則比較不區分大小寫。

"!="、"<>" :如果左邊操作數和右邊操作數不相等,則計算結果為True。適用于字符串、數值和布爾值。使用方法和"=="相同。

">" :如果運算符左邊數值大于右邊數值,則計算結果為True。適用于字符串、數值和布爾值。該類運算符比較簡單,">="、"<"和"<="使用方法都是相同的。

五、邏輯運算符(Comparison)

wKgZoma91B2AUEcGAAJ3CtWjMIk142.jpg

"&&" :邏輯與運算符,如果兩個操作數都為True,則計算結果為True。如果第一個操作數為False,則不計算第二個操作數。在應用操作符之前,數值操作數如果非零則轉換為True,如果為零則轉換為False。如果文本為“True”或包含非零數字的表示形式,則字符串操作數將轉換為True,否則為False。

"||" :邏輯或運算符,如果一個或兩個操作數為True,則計算結果為True。如果第一個操作數為True,則不計算第二個操作數。使用方法和"&&"相同。

六、其他運算符(Other)

wKgZoma91B2AfDBMAAH_5YuMzyc932.jpg

"( )" :改變求值順序。

"." :屬性字段分隔符。

",(;)" :表達式分隔符,使用逗號來分割傳遞給表達式函數的參數,用法:,,組合表達式的結果是最后一個表達式也就是的結果。

"? :" :根據布爾表達式的結果,從其他兩個表達式中選擇一個來求值。用法:booleanValue ? :,其中布爾值可以是一個表達式,如果boolean為True則執行,反之執行

"/* */" :指定分隔符中的字符為注釋。

"http://" :指定一行上的其余字符為注釋。比如Locals.Channel += 1 //Advance to next channel

小編將以一個實際項目上遇到的問題來作為這篇文章的結束!

Q

TestStand能不能通過表達式自定義等待(Wait)時間,比如第一次循環等待10s,然后第二次循環的時候跑到3s序列跑死了,我再重新跑的時候想只跑剩下的7s,這個在不添加步驟的情況下可以通過表達式實現嗎?

當然可以,首先我們整理一下應用背景,wait本來需要10s,但是當序列跑死后我們只需要他跑剩余的時間,這里我們簡化一下問題使其變得略微簡單一些:在一個循環中,當第一次等待時等待3s,第二次等待時等待7s。我們需要在不添加步驟的情況下實現,首先我們要明確我們應該使用哪種表達式,很明顯我們用到的是先決條件表達式(Precondition Expression),因為在執行該表達式前我們需要對循環次數進行判斷。因此我們需要一個變量Locals.i來保存循環次數,說到這里想必大家都已經有自己的思路和理解了。那我們需要用到的運算符是"? :",那么實現該功能的表達式就已經呼之欲出了:Locals.i < 2 == True ? 3:7,當循環次數<2的時候為True,等待時間為3s,反之則為7s。

七、總結

TestStand中表達式有多種寫法,語法規則也不唯一,如果想要實現某個具體算法、邏輯、功能,可以查看本篇文章進行嘗試,如果遇到問題或者想實現比較難的算法、邏輯、功能歡迎一起討論!

以上內容就是本期的全部內容,更多關于測試系統中的實際軟硬件應用知識,可關注本公眾號/下方合集,敬請期待!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 運算符
    +關注

    關注

    0

    文章

    172

    瀏覽量

    11341
  • TestStand
    +關注

    關注

    6

    文章

    7

    瀏覽量

    11255
  • 華穗科技
    +關注

    關注

    1

    文章

    12

    瀏覽量

    144

原文標題:知識分享 | Teststand也有自己的語言?

文章出處:【微信號:華穗科技,微信公眾號:華穗科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Linux內核中C語法擴展-語句表達式

    表達式和語句是 C 語言中的基礎概念。什么是表達式呢?表達式就是由一系列操作和操作數構成的式子。操作可以是 C 語言標準規定的各種算術
    的頭像 發表于 02-17 09:30 ?2910次閱讀

    JAVA語言的運算符表達式

    。3.5.1 表達式表達式是由操作數和運算符按一定語法形式組成的符號序列,以下是合法的表達式例子:a+b 、 (a+b)*(a-b) 、 "
    發表于 12-06 00:28

    數據類型、運算符表達式

    數據類型、運算符表達式2.1   程序設計概述2.2  C語言的數據類型 2.3  常量和變量 2.4 
    發表于 03-10 15:05

    關于C語言的運算符表達式--筆記1

    關于C語言的運算符表達式學好C語言的基礎運算,還是很有必要,無論在C語言,還是后面單片機,都會用到基礎運算。如果不能很好運用,會給我們編程帶來很多麻煩,廢話不多說,現在開始寫一些個人
    發表于 07-19 00:48

    C語言程序設計--運算符表達式

    c語言對數據有很強的表達能力,具有十分豐富的運算符,利用這些運算符可以組成各種表達式及語句。運算符就是完成某種特定
    發表于 07-14 21:30 ?46次下載

    單片機C語言教程-運算符表達式

    單片機C語言教程-運算符表達式   單片機C語言教程-運算符表達式  運算符的種類、優先級和結合性  c語言中運
    發表于 03-27 17:13 ?2298次閱讀

    基于運算符信息的數學表達式檢索技術

    傳統的文本檢索技術主要面向一維文本,難以用于對二維結構數學表達式的檢索。針對該問題,通過引入公式描述結構,實現基于運算符信息的數學表達式檢索。利用公式描述結構提取算法獲取 Latex數學表達式
    發表于 04-29 15:58 ?2次下載
    基于<b class='flag-5'>運算符</b>信息的數學<b class='flag-5'>表達式</b>檢索技術

    RTL表達式運算符

    經過幾周的更新,SV核心部分用戶自定義類型和包內容已更新完畢,接下來就是RTL表達式運算符
    的頭像 發表于 07-27 09:11 ?1993次閱讀

    SystemVerilog-運算符/表達式規則

    RTL建模中廣泛使用的運算符是條件運算符,也稱為三元運算符,該運算符用于在兩個表達式之間進行選擇——表5-2列出了用于表示條件
    的頭像 發表于 08-03 09:03 ?3568次閱讀

    RTL表達式運算符

    經過幾周的更新,SV核心部分用戶自定義類型和包內容已更新完畢,接下來就是RTL表達式運算符
    的頭像 發表于 10-11 10:15 ?2113次閱讀

    RTL表達式運算符

    經過幾周的更新,SV核心部分用戶自定義類型和包內容已更新完畢,接下來就是RTL表達式運算符
    的頭像 發表于 11-03 09:14 ?1672次閱讀

    運算符/表達式規則

    運算符對操作數執行操作。大多數運算符都有兩個操作數。例如,在運算a+b中,+(加法)運算的操作數是a和b。每個操作數都被稱為表達式
    的頭像 發表于 02-09 15:37 ?1302次閱讀
    <b class='flag-5'>運算符</b>/<b class='flag-5'>表達式</b><b class='flag-5'>規則</b>

    邏輯運算符表達式

    在C語言中,我們通常會進行真值與假值的判斷,這時我們就需要用到邏輯運算符與邏輯表達式。如果表達式的值不為0,則通通返回為真值。只有當表達式的值為0時,才會返回假值。
    的頭像 發表于 02-21 15:16 ?2534次閱讀
    邏輯<b class='flag-5'>運算符</b>與<b class='flag-5'>表達式</b>

    位邏輯運算符表達式

    位邏輯運算符與位邏輯表達式可以實現位的編輯,比如位的清零、設置、取反和取補等操作。使用位邏輯運算符與位邏輯表達式可以在不使用匯編的情況下實現部分匯編的功能
    的頭像 發表于 02-21 15:22 ?1582次閱讀
    位邏輯<b class='flag-5'>運算符</b>與<b class='flag-5'>表達式</b>

    C語言基本的算術運算符表達式

    注意:自增和自減運算符只能用于變量,而不能用于常量或表達式 **C語言算術表達式運算符的優先級與結合性 ** 在表達式求值時,
    的頭像 發表于 03-09 10:44 ?1999次閱讀