POGO c++ code

本文提供了一个TANGO设备服务器编程的具体实例,包括多个函数的实现方式,如处理浮点数、整型数组、字符串及字符串数组等,并展示了如何进行数据处理与返回。

 

1 Tango::DevFloat DocDs::dev_simple(Tango::DevFloat argin)

2 {

3 Tango::DevFloat argout ;

4 DEBUG_STREAM << "DocDs::dev_simple(): entering... !" << endl;

5

6 // Add your own code to control device here

7

8 argout = argin * 2;

9 return argout;

10 }

 

1 Tango::DevVarLongArray *DocDs::dev_array(const Tango::DevVarLongArray *argin)

2 {

3 // POGO has generated a method core with argout allocation.

4 // If you would like to use a static reference without copying,

5 // See "TANGO Device Server Programmer’s Manual"

6 // (chapter x.x)

7 //------------------------------------------------------------

8 Tango::DevVarLongArray *argout = new Tango::DevVarLongArray();

9

10 DEBUG_STREAM << "DocDs::dev_array(): entering... !" << endl;

11

12 // Add your own code to control device here

13

14 long argin_length = argin->length();

15 argout->length(argin_length);

16 for (int i = 0;i < argin_length;i++)

17 (*argout)[i] = (*argin)[i] * 2;

18

19 return argout;

20 }

1 Tango::DevString DocDs::dev_string(Tango::DevString argin)

2 {

3 // POGO has generated a method core with argout allocation.

4 // If you would like to use a static reference without copying,

5 // See "TANGO Device Server Programmer’s Manual"

6 // (chapter x.x)

7 //------------------------------------------------------------

8 Tango::DevString argout;

9 DEBUG_STREAM << "DocDs::dev_string(): entering... !" << endl;

10

11 // Add your own code to control device here

12

13 cout << "the received string is " << argin << endl;

14

15 string str("Am I a good Tango dancer ?");

16 argout = new char[str.size() + 1];

17 strcpy(argout,str.c_str());

18

19 return argout;

20 }

 

1 Tango::DevVarStringArray *DocDs::dev_str_array()

2 {

3 // POGO has generated a method core with argout allocation.

4 // If you would like to use a static reference without copying,

5 // See "TANGO Device Server Programmer’s Manual"

6 // (chapter x.x)

7 //------------------------------------------------------------

8 Tango::DevVarStringArray *argout = new Tango::DevVarStringArray();

9

10 DEBUG_STREAM << "DocDs::dev_str_array(): entering... !" << endl;

11

12 // Add your own code to control device here

13

14 argout->length(3);

15 (*argout)[0] = CORBA::string_dup("Rumba");

16 (*argout)[1] = CORBA::string_dup("Waltz");

17 string str("Jerck");

18 (*argout)[2] = CORBA::string_dup(str.c_str());

19 return argout;

20 }

1 Tango::DevVarDoubleStringArray *DocDs::dev_struct()

2 {

3 // POGO has generated a method core with argout allocation.

4 // If you would like to use a static reference without copying,

5 // See "TANGO Device Server Programmer’s Manual"

6 // (chapter x.x)

7 //------------------------------------------------------------

8 Tango::DevVarDoubleStringArray *argout = new Tango::DevVarDoubleStringArray();

9

10 DEBUG_STREAM << "DocDs::dev_struct(): entering... !" << endl;

11

12 // Add your own code to control device here

13

14 argout->dvalue.length(3);

15 argout->dvalue[0] = 0.0;

16 argout->dvalue[1] = 11.11;

17 argout->dvalue[2] = 22.22;

18

19 argout->svalue.length(2);

20 argout->svalue[0] = CORBA::string_dup("Be Bop");

21 string str("Smurf");

22 argout->svalue[1] = CORBA::string_dup(str.c_str());

23

24 return argout;

25 }

 

 protected :

4 // Add your own data members here

5 //-----------------------------------------

6 Tango::DevString attr_str_array[5];

7 Tango::DevLong attr_rd;

8 Tango::DevLong attr_wr;

 

转载于:https://www.cnblogs.com/greencolor/archive/2013/01/02/2842501.html

08-06
<think>嗯,用户这次问的是pogo板的静电防护使用注意事项。从上下文看,用户应该是在电子制造或测试领域工作的工程师,之前讨论过静电测试中断开PE的重要性,现在转向具体测试工具的应用。 用户可能正在搭建测试治具,担心pogo板接触点会成为静电薄弱环节。需要重点解决三个层面问题:pogo板自身设计防护、测试环境搭建规范、异常放电路径预防。特别要注意用户之前提到的"实际使用时一直接PE"这个背景,说明应用场景可能是带接地系统的生产线。 pogo板的静电隐患主要来自三方面:弹簧针内部间隙放电、探针与外壳爬电、测试信号线耦合。防护要点应围绕接地设计展开——但这里的接地和之前讨论的PE接地不同,需要区分信号地和保护地。参考IEC 61340-5-1标准,弹簧针的绝缘阻抗需满足$R>1\times10^{11}\Omega$才能有效隔离。 实际案例中常见错误是误用尼龙外壳,虽然机械强度足够但表面电阻仅$10^9\Omega$级别。应该建议用户用PEEK或PTFE材质,并通过$$ \lambda = \frac{\sigma}{d} $$(其中$\sigma$为表面电导率,$d$为爬电距离)计算最小安全间距。 测试信号线需要特别提醒,很多用户忽略屏蔽层双端接地会导致天线效应。应该强调屏蔽层要360°端接,且转移阻抗需满足$Z_t<100m\Omega/m$。对于高频测试场景,还要补充微放电现象的解释——当弹簧针长度$l>\lambda/10$时可能形成驻波。 最后要关联之前的PE讨论:在pogo板应用的测试机台,PE断开点应设置在接口板而非pogo板本身,否则会破坏接地连续性。可以举一个反例,某FT测试机因在pogo板端断开PE,导致接触器触点烧蚀。</think>以下是关于Pogo板在静电防护(ESD)中的使用注意事项,结合电子制造与测试设备场景的核心要点: --- ### 一、Pogo板ESD防护设计要点 1. **接地拓扑优化** - **弹簧针独立接地**:每根信号针旁需配置专用接地针(间距$d≤2mm$),形成低阻抗回路(阻抗$Z<1\Omega$)[^1] - **分级接地架构**: ```mermaid graph LR A[信号Pogo针] --> B[局部接地环] B --> C[板级铜带] C --> D[机架接地母线] D --> E[大地($R<4\Omega$)] ``` 2. **材料选择规范** | 组件 | ESD安全材料 | 禁⽤材料 | 原因 | |--------------|--------------------------|------------------|-----------------------| | 针套 | PEEK/PTFE($\rho>10^{15}\Omega\cdot m$) | 尼龙($\rho<10^{12}\Omega\cdot m$) | 防表面漏电[^2] | | 基板 | 4层板(专用接地层) | 2层板 | 降低回路电感$L$ | | 外壳 | 导电阳极化铝($R_s<0.1\Omega/\square$) | 普通喷漆钢 | 屏蔽效能>40dB[^2] | --- ### 二、操作防护关键措施 1. **测试前处理** - **离子中和**:使用离子风机吹扫Pogo板表面(±100V平衡度) - **阻抗验证**:测量信号针对地电阻(要求$R>1\times10^{11}\Omega$,$V_{test}=100V$)[^1] 2. **测试中防护** - **双重泄放路径**: $$ I_{ESD} = I_{GND} + I_{TVS} $$ 其中$I_{GND}$经接地针泄放(>90%电流),$I_{TVS}$为TVS管残余电流 - **接触顺序**: 先接接地针(提前1~2ms)→ 后接信号针(防Hot Plugging) 3. **异常放电预防** - **尖端放电控制**:Pogo针尖端曲率半径$r≥0.2mm$(避免$E>3\times10^6V/m$引发放电) - **爬电距离**:高压测试点(如$V>8kV$)间距满足: $$ d \geq \frac{V}{500} + 0.6 \quad (mm) \quad \text{[IEC 61010-1]} $$ --- ### 三、典型失效案例与对策 | 失效现象 | 根本原因 | 解决方案 | |------------------|--------------------------|------------------------------| | 接触点熔蚀 | 电弧能量$E=\frac{1}{2}CV^2$聚集 | 并联100nF MLCC分流[^3] | | 信号抖动 | 接地环路感应电压$V=L\frac{di}{dt}$ | 缩短接地针距($d<λ/10$) | | 待测芯片损伤 | HBM放电未泄放 | 增加ESD夹具接地冗余(双路径)| --- ### 四、维护与检测规范 1. **周期性维护** - 每日:接触阻抗测试(要求$R_{contact}<0.5\Omega$) - 每月:绝缘电阻测试($R_{ins}>10^{11}\Omega$ @500V) 2. **清洁流程** 使用IPA+无纺布擦拭 → 干燥 → 喷涂抗静电剂(表面电阻$10^6-10^9\Omega$) 3. **寿命管理** 弹簧针按压次数$N$与失效关系: $$ \lambda = \frac{1}{MTTF} = kN^{0.7} \quad (k\text{为磨损系数}) $$ 建议$N>50,000$次后强制更换[^3] --- **总结**: > Pogo板的ESD防护核心在于**低阻抗接地设计**、**材料绝缘控制**和**操作规范**。需确保: > 1. 接地路径阻抗$Z<1\Omega$ > 2. 非接触区绝缘电阻$R>10^{11}\Omega$ > 3. 接触点曲率半径$r≥0.2mm$ > 任何接地中断(如维修时)必须重新验证ESD性能[^1][^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值