吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TestStand表達(dá)式中常用的語法規(guī)則和運(yùn)算符使用

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

TestStand也有自己的語言?

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

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

wKgZoma91B2AXkxCAACWfBaqwuc637.jpg

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

本文分享:

Teststand語法

一、算數(shù)運(yùn)算符(Arithmetic)

wKgZoma91B2AOIN4AAKFSpCoQes826.jpg

"+" :加法運(yùn)算符,需注意的是如果一個(gè)操作數(shù)是字符串,另一個(gè)操作數(shù)是數(shù)值,操作符會(huì)先將字符串轉(zhuǎn)換為數(shù)值。如果兩個(gè)參數(shù)都是字符串,則運(yùn)算符會(huì)創(chuàng)建一個(gè)新的字符串,新的字符串是將兩個(gè)字符串的內(nèi)容連接起來。如果兩個(gè)參數(shù)都是數(shù)組,則運(yùn)算符會(huì)創(chuàng)建一個(gè)新數(shù)組,將兩個(gè)數(shù)組的內(nèi)容連接起來。運(yùn)算使用時(shí)需要注意數(shù)據(jù)類型是否一致,舉個(gè)例子創(chuàng)建Locals.x(數(shù)值類型),執(zhí)行該表達(dá)式Locals.x = "3" +5,Locals.y執(zhí)行結(jié)果為8;

"-" :減法運(yùn)算符,僅適用于數(shù)值,實(shí)現(xiàn)的就是簡(jiǎn)單的減法運(yùn)算。

"*" :乘法運(yùn)算符,僅適用于數(shù)值,實(shí)現(xiàn)的就是簡(jiǎn)單的乘法運(yùn)算。

"/" :第一個(gè)數(shù)除以第二個(gè)數(shù),僅適用于數(shù)值。

"MOD"(Basic syntax) :計(jì)算第一個(gè)數(shù)除以第二個(gè)數(shù)的余數(shù),適用于整數(shù)和實(shí)數(shù)。

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

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

"--" :減量運(yùn)算符,使用方法和增量運(yùn)算符相同。

了解了算數(shù)運(yùn)算符后,想必大家也發(fā)現(xiàn)TestStand表達(dá)式的語法規(guī)則和文本語言十分相像甚至可以說是一模一樣,算法運(yùn)算符在單純使用方面和文本語言幾乎一模一樣,那么這里提出一個(gè)簡(jiǎn)單的問題!

Q

Locals.x的值為3,若執(zhí)行表達(dá)式1:Locals.y = ++Locals.x + 10和表達(dá)式2:Locals.y = Locals.x++ +10兩個(gè)表達(dá)式的運(yùn)算結(jié)果分別是什么呢?

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

Q

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

可以使用加法運(yùn)算符來實(shí)現(xiàn)該功能,因?yàn)槿绻\(yùn)算符前后都是字符串,則會(huì)創(chuàng)建一個(gè)新的字符串,將兩個(gè)字符串的內(nèi)容連接起來,比如Local.x = "a" + "b",執(zhí)行后Locals.x結(jié)果為"ab"。

二、賦值運(yùn)算符(Assignment)

除了算法運(yùn)算符,賦值運(yùn)算符同樣和文本語言類似!

wKgaoma91B2Aa1xbAAOCzI6qHCc201.jpg

"=" :對(duì)運(yùn)算符右側(cè)表達(dá)式求值,并將運(yùn)算符左側(cè)的操作數(shù)設(shè)置為結(jié)果。需注意在對(duì)容器屬性進(jìn)行操作時(shí),左右兩側(cè)的子屬性名稱的層次結(jié)構(gòu)必須匹配。對(duì)于每個(gè)屬性值,賦值會(huì)盡可能在不同數(shù)據(jù)類型之間進(jìn)行轉(zhuǎn)換,例如將數(shù)值轉(zhuǎn)換為字符串。

"+=" :該運(yùn)算符實(shí)現(xiàn)的是對(duì)運(yùn)算符右側(cè)的表達(dá)式求值,并將結(jié)果相加到左邊的操作數(shù)。如果運(yùn)算符右側(cè)的表達(dá)式是字符串,則運(yùn)算符在將其添加到左側(cè)的操作數(shù)之前將其轉(zhuǎn)換為數(shù)值。如果兩邊都是字符串,運(yùn)算符將右邊的字符串連接至左邊的字符串。如果兩邊都是數(shù)組,則運(yùn)算符將右邊數(shù)組的元素附加到左邊數(shù)組的末尾。

"-=" :對(duì)運(yùn)算符右側(cè)的表達(dá)式求值,并從左側(cè)的操作數(shù)中減去作為結(jié)果。使用方法和"+="運(yùn)算符相同。

"*=" :對(duì)運(yùn)算符右側(cè)的表達(dá)式求值,并與左側(cè)的操作數(shù)相乘作為結(jié)果。使用方法和"+="運(yùn)算符相同。

"/=" :對(duì)運(yùn)算符右側(cè)的表達(dá)式求值,并與左側(cè)的操作數(shù)相除作為結(jié)果。使用方法和"+="運(yùn)算符相同。

"%=" :對(duì)運(yùn)算符右側(cè)的表達(dá)式求值,并與左側(cè)的操作數(shù)相除取余作為結(jié)果。使用方法和"+="運(yùn)算符相同。

"^=" :對(duì)運(yùn)算符右側(cè)表達(dá)式值和左側(cè)數(shù)值執(zhí)行異或操作后得到的數(shù)值作為結(jié)果。

"&=" :對(duì)運(yùn)算符右側(cè)表達(dá)式值和左側(cè)數(shù)值執(zhí)行與操作后得到的數(shù)值作為結(jié)果。使用方法和"^="相同。

"|=" :對(duì)運(yùn)算符右側(cè)表達(dá)式值和左側(cè)數(shù)值執(zhí)行或操作后得到的數(shù)值作為結(jié)果。使用方法和"^="相同。

Q

假設(shè)Locals.x為10,執(zhí)行以下表達(dá)式Locals.x^= 3 + 2,執(zhí)行后的結(jié)果是多少呢?

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

三、位運(yùn)算符(Bitwise)

wKgaoma91B2AViePAALxwiR6kf4940.jpg

"AND"、"&" :計(jì)算兩個(gè)數(shù)值的與運(yùn)算,舉個(gè)例子Locals.x = 3(0011) AND 6(0110)得到的結(jié)果是2(0010)。

"OR"、"|" :計(jì)算兩個(gè)數(shù)值的或運(yùn)算,使用方法和"AND"相同。

"XOR"、"^" :計(jì)算兩個(gè)數(shù)值的異或運(yùn)算,使用方法和"AND"相同。

"<<" :將運(yùn)算符左邊的數(shù)值向左移動(dòng)運(yùn)算符右邊數(shù)值的位數(shù)。舉個(gè)列子Locals.x = 3(0011) << 1,得到的結(jié)果是6(0110)。

">>" :將運(yùn)算符左邊的數(shù)值向右移動(dòng)運(yùn)算古右邊數(shù)值的位數(shù)。使用方法和">>"相同。

四、比較運(yùn)算符(Comparison)

wKgaoma91B2AIarbAAMy-KegrbQ465.jpg

"==" :判斷運(yùn)算符左右兩邊是否相等,若相等則返回值為True,不相等則返回值為False。如果一個(gè)是字符串,另一個(gè)是數(shù)值,那么運(yùn)算符會(huì)將字符串轉(zhuǎn)換為數(shù)值。如果兩個(gè)都是字符串,則比較不區(qū)分大小寫。

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

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

五、邏輯運(yùn)算符(Comparison)

wKgZoma91B2AUEcGAAJ3CtWjMIk142.jpg

"&&" :邏輯與運(yùn)算符,如果兩個(gè)操作數(shù)都為True,則計(jì)算結(jié)果為True。如果第一個(gè)操作數(shù)為False,則不計(jì)算第二個(gè)操作數(shù)。在應(yīng)用操作符之前,數(shù)值操作數(shù)如果非零則轉(zhuǎn)換為True,如果為零則轉(zhuǎn)換為False。如果文本為“True”或包含非零數(shù)字的表示形式,則字符串操作數(shù)將轉(zhuǎn)換為True,否則為False。

"||" :邏輯或運(yùn)算符,如果一個(gè)或兩個(gè)操作數(shù)為True,則計(jì)算結(jié)果為True。如果第一個(gè)操作數(shù)為True,則不計(jì)算第二個(gè)操作數(shù)。使用方法和"&&"相同。

六、其他運(yùn)算符(Other)

wKgZoma91B2AfDBMAAH_5YuMzyc932.jpg

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

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

",(;)" :表達(dá)式分隔符,使用逗號(hào)來分割傳遞給表達(dá)式函數(shù)的參數(shù),用法:,,組合表達(dá)式的結(jié)果是最后一個(gè)表達(dá)式也就是的結(jié)果。

"? :" :根據(jù)布爾表達(dá)式的結(jié)果,從其他兩個(gè)表達(dá)式中選擇一個(gè)來求值。用法:booleanValue ? :,其中布爾值可以是一個(gè)表達(dá)式,如果boolean為True則執(zhí)行,反之執(zhí)行

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

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

小編將以一個(gè)實(shí)際項(xiàng)目上遇到的問題來作為這篇文章的結(jié)束!

Q

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

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

七、總結(jié)

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

以上內(nèi)容就是本期的全部?jī)?nèi)容,更多關(guān)于測(cè)試系統(tǒng)中的實(shí)際軟硬件應(yīng)用知識(shí),可關(guān)注本公眾號(hào)/下方合集,敬請(qǐng)期待!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 運(yùn)算符
    +關(guān)注

    關(guān)注

    0

    文章

    172

    瀏覽量

    11107
  • TestStand
    +關(guān)注

    關(guān)注

    5

    文章

    7

    瀏覽量

    11130
  • 華穗科技
    +關(guān)注

    關(guān)注

    1

    文章

    12

    瀏覽量

    123

原文標(biāo)題:知識(shí)分享 | Teststand也有自己的語言?

文章出處:【微信號(hào):華穗科技,微信公眾號(hào):華穗科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux內(nèi)核中C語法擴(kuò)展-語句表達(dá)式

    表達(dá)式和語句是 C 語言中的基礎(chǔ)概念。什么是表達(dá)式呢?表達(dá)式就是由一系列操作和操作數(shù)構(gòu)成的式子。操作可以是 C 語言標(biāo)準(zhǔn)規(guī)定的各種算術(shù)
    的頭像 發(fā)表于 02-17 09:30 ?2707次閱讀

    JAVA語言的運(yùn)算符表達(dá)式

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

    數(shù)據(jù)類型、運(yùn)算符表達(dá)式

    數(shù)據(jù)類型、運(yùn)算符表達(dá)式2.1   程序設(shè)計(jì)概述2.2  C語言的數(shù)據(jù)類型 2.3  常量和變量 2.4 
    發(fā)表于 03-10 15:05

    關(guān)于C語言的運(yùn)算符表達(dá)式--筆記1

    關(guān)于C語言的運(yùn)算符表達(dá)式學(xué)好C語言的基礎(chǔ)運(yùn)算,還是很有必要,無論在C語言,還是后面單片機(jī),都會(huì)用到基礎(chǔ)運(yùn)算。如果不能很好運(yùn)用,會(huì)給我們編程帶來很多麻煩,廢話不多說,現(xiàn)在開始寫一些個(gè)人
    發(fā)表于 07-19 00:48

    C語言程序設(shè)計(jì)--運(yùn)算符表達(dá)式

    c語言對(duì)數(shù)據(jù)有很強(qiáng)的表達(dá)能力,具有十分豐富的運(yùn)算符,利用這些運(yùn)算符可以組成各種表達(dá)式及語句。運(yùn)算符就是完成某種特定
    發(fā)表于 07-14 21:30 ?46次下載

    單片機(jī)C語言教程-運(yùn)算符表達(dá)式

    單片機(jī)C語言教程-運(yùn)算符表達(dá)式   單片機(jī)C語言教程-運(yùn)算符表達(dá)式  運(yùn)算符的種類、優(yōu)先級(jí)和結(jié)合性  c語言中運(yùn)
    發(fā)表于 03-27 17:13 ?2239次閱讀

    基于運(yùn)算符信息的數(shù)學(xué)表達(dá)式檢索技術(shù)

    傳統(tǒng)的文本檢索技術(shù)主要面向一維文本,難以用于對(duì)二維結(jié)構(gòu)數(shù)學(xué)表達(dá)式的檢索。針對(duì)該問題,通過引入公式描述結(jié)構(gòu),實(shí)現(xiàn)基于運(yùn)算符信息的數(shù)學(xué)表達(dá)式檢索。利用公式描述結(jié)構(gòu)提取算法獲取 Latex數(shù)學(xué)表達(dá)式
    發(fā)表于 04-29 15:58 ?2次下載
    基于<b class='flag-5'>運(yùn)算符</b>信息的數(shù)學(xué)<b class='flag-5'>表達(dá)式</b>檢索技術(shù)

    RTL表達(dá)式運(yùn)算符

    經(jīng)過幾周的更新,SV核心部分用戶自定義類型和包內(nèi)容已更新完畢,接下來就是RTL表達(dá)式運(yùn)算符
    的頭像 發(fā)表于 07-27 09:11 ?1784次閱讀

    SystemVerilog-運(yùn)算符/表達(dá)式規(guī)則

    RTL建模中廣泛使用的運(yùn)算符是條件運(yùn)算符,也稱為三元運(yùn)算符,該運(yùn)算符用于在兩個(gè)表達(dá)式之間進(jìn)行選擇——表5-2列出了用于表示條件
    的頭像 發(fā)表于 08-03 09:03 ?3226次閱讀

    RTL表達(dá)式運(yùn)算符

    經(jīng)過幾周的更新,SV核心部分用戶自定義類型和包內(nèi)容已更新完畢,接下來就是RTL表達(dá)式運(yùn)算符
    的頭像 發(fā)表于 10-11 10:15 ?1818次閱讀

    RTL表達(dá)式運(yùn)算符

    經(jīng)過幾周的更新,SV核心部分用戶自定義類型和包內(nèi)容已更新完畢,接下來就是RTL表達(dá)式運(yùn)算符
    的頭像 發(fā)表于 11-03 09:14 ?1438次閱讀

    運(yùn)算符/表達(dá)式規(guī)則

    運(yùn)算符對(duì)操作數(shù)執(zhí)行操作。大多數(shù)運(yùn)算符都有兩個(gè)操作數(shù)。例如,在運(yùn)算a+b中,+(加法)運(yùn)算的操作數(shù)是a和b。每個(gè)操作數(shù)都被稱為表達(dá)式
    的頭像 發(fā)表于 02-09 15:37 ?1060次閱讀
    <b class='flag-5'>運(yùn)算符</b>/<b class='flag-5'>表達(dá)式</b><b class='flag-5'>規(guī)則</b>

    邏輯運(yùn)算符表達(dá)式

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

    位邏輯運(yùn)算符表達(dá)式

    位邏輯運(yùn)算符與位邏輯表達(dá)式可以實(shí)現(xiàn)位的編輯,比如位的清零、設(shè)置、取反和取補(bǔ)等操作。使用位邏輯運(yùn)算符與位邏輯表達(dá)式可以在不使用匯編的情況下實(shí)現(xiàn)部分匯編的功能
    的頭像 發(fā)表于 02-21 15:22 ?1311次閱讀
    位邏輯<b class='flag-5'>運(yùn)算符</b>與<b class='flag-5'>表達(dá)式</b>

    C語言基本的算術(shù)運(yùn)算符表達(dá)式

    注意:自增和自減運(yùn)算符只能用于變量,而不能用于常量或表達(dá)式 **C語言算術(shù)表達(dá)式運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 ** 在表達(dá)式求值時(shí),
    的頭像 發(fā)表于 03-09 10:44 ?1725次閱讀
    曼哈顿百家乐官网的玩法技巧和规则 | 百家乐官网baccarat| 24山亥山巳向造葬日课| 索罗门百家乐的玩法技巧和规则| 明升信誉| 2402 房号 风水| 太阳城娱乐正网| 一二博国际| 玩百家乐官网去哪个娱乐城最安全 | 松潘县| 百家乐有没有稳赢| 山阳县| 百家乐金海岸软件| 高雄市| 百家乐下路教学| 百家乐官网是真的吗| 百家乐翻天粤语版| 大发888 xp缺少 casino| 百家乐官网在线投注系统| 上海玩百家乐算不算违法| tt真人娱乐城| 哪个百家乐平台信誉好| 淅川县| 百家乐打法介绍| 百家乐官网双层筹码盘| 百家乐平注常赢法| 圣淘沙百家乐官网娱乐城| 百家乐怎么玩| 电脑百家乐官网的玩法技巧和规则| 水浒传老虎机破解| 百家乐官网老千| 大发888通宝| 郑州百家乐官网高手| 洛克百家乐的玩法技巧和规则 | 望都县| 百家乐最好投| 银泰百家乐官网龙虎斗| 大三元百家乐的玩法技巧和规则| 宣威市| 百苑百家乐的玩法技巧和规则 | 皇冠百家乐的玩法技巧和规则|