目录:

         1. halcon 基本语法

         2. Tuple 数组

         3. 字符数组格式化

1. halcon 基本语法

(1). 等号::=

(2). 不等号: #

(3). 代码注释符: *

(4). 字符串(单引号)赋值: str := ‘halcon’

(5). 等于比较符: if( X = 10 );c/c++ : if( X == 10 )

(6). 与: if( A > 1 and A < 30 )

(7). 或: if( A > 1 or A < 30 )

(8). 求反:if( not(A = 10) )

(9)  For 循环:

      for x := 0 to numbers by 1

      endfor

(10) While 循环:

     while( x == 1)

     endwhile

(11) 异常获取:

     try

     catch(Exception)

     endtry

(12) Switch 多分支:

switch(Index)      case 1:         break      case 2:         break      case 3:         break default:         break endswitch

 

2. Tuple 数组

* 将一个Tuple数组赋值给变量
Tuple1 := [1, 0, 3, 4, 5, 6, 7, 8, 9]

* 给 Tuple数组元素赋值;上述中 Tuple1[1] := 0; 进行如下操作 Tuple1 := [1, 2, 3, 4, 5, 6, 7, 8, 9] 
Tuple1[1] := 2

* 批量改变数组元素的值;将数组中的第1,3,5个元素替换为'abc'; [1, 'abc', 3, 'abc', 5, 'abc', 7, 8, 9]
Tuple1[1,3,5] := 'abc'

* 向 Tuple 数组插入数值
originalTuple_Insert :=[0,1,2,3,4,5]
tuple_insert(originalTuple_Insert, 3, 'x', InsertSignalValue)

* 批量给 Tuple 数组赋值,其值为 2 到 4 的连续数值; [2, 3, 4]
Tuple3 := [2 : 4]

* 批量给 Tuple 数组赋值,其值为 5 到 10 的连续数值,步长为 1;  [5, 6, 7, 8, 9, 10]
Tuple4 := [5 : 1 : 10]

* 批量给 Tuple 数组赋值,其值为 -30 到 30 的连续数值,步长为 10 ;[-30, -20, -10, 0, 10, 20, 30]
Tuple4 := [-30 : 10 : 30]

* 对两个 Tuple 数组进行合并操作,新数组消除掉了需要合并数组中重复的部分
TupleInt1 := [3,1,2,9,1]
TupleInt2 := [10,2,4,3,2]
tuple_union(TupleInt1, TupleInt2, Union)

* 对两个 Tuple 数组进行交集操作;即两个数组中相同的元素被保留下来,不同的元素被丢弃
TupleInt3 := [3,1,2,9,1]
TupleInt4 := [10,2,4,3,2]
tuple_intersection(TupleInt3, TupleInt4, Intersection)

*对 Tuple 数组元素进行替换;
*将数组中第0个元素和第1个元素分别用字符串x,y替换
originalTuple := [0,1,2,3,4,5]
tuple_replace(originalTuple, [0, 1], ['x', 'y'], Replaced)

我们可以从 变量窗口控制变量 中查看计算结果,如图 1.1 所示 


halcon深度学习语义分割 halcon语法_赋值

图1.1 上述代码的运行结果


 

3. 字符数组格式化

* 8 进制, 0 为前缀
i1 := 123$'#o' 

* 16 进制, 0x 为前缀,7b 为赋值
i2 := 123$'#x' 

* 16 进制, 0x 为前缀, 7b 为赋值,其中,7b 与 7B 是一样的
i3 := 123$'#X' 

* double 型,默认保留小数点后六位
i4 := 123$'#f' 

* 使数字始终保持六位,不足补零
i5 := 123$'#g' 

* 使数字始终保持六位,不足补零
i6 := 123$'#G' 

* 转换成科学计数,即指数形式
i7 := 123$'#e'  

* 转换成科学计数,即指数形式
i8 := 123$'#E' 



**************** 整数 ***************

* 小于六位时,文本右对齐,大于不影响
* 6 代表有 6 个占位符,不足用空格代替
d1 := 123$'6' 

* 小于六位时,文本左对齐,大于不影响
d2 := 123$'-6' 

* 小于六位时,在左边补零,大于不影响
d3 := 123$'.6'

* 小于十位时,文本右对齐,小于五位则在左边补零,大于不影响
d4 := 1345$'10.5'



**************** 文本 ***************

* 文本右对齐; 10 代表有 10 个占位符,除了Hugo四个外,还有六个占位符用空格代替
s1 := 'Hugo'$'10'

* 文本左对齐
s2 := 'Hugo'$'-10'

字符数组格式化结果如图 1.2 所示 


halcon深度学习语义分割 halcon语法_halcon深度学习语义分割_02

图1.2 字符数组格式化结果