机器故障?购置更换零件?停产设备麻烦?不要犹豫,请速与我们联系,我们可以快速提供优质、合格的工业备件,解决您各处寻找的烦恼!
--------------------------------------------------
允许我给您介绍下这个产品和我们的服务:现货 全新原装*** 15天质量问题无条件包退换
一年质保 完善的***服务 雄厚的技术人才后盾 真正的为客户排忧解难
客户的满意 是对我们的肯定 更是我们的动力
单子,得之,我幸。不得,我力争到底 全心服务
--------------------------------------------------
ABB 3HAC2481-1 DSQC 372
优质的产品★优质的价格★优质的***★优质的服务,是您***佳的选择!
按钮、滑动块、标签和其它UI元素均可通过drag-and-drop环境插入一个表格(一个简单的对话窗口)中去。产生一个这样的表格就会生成一个C++类的框架。例如,每当用户点击一个图像或移动一个滑动块时,都会产生一组事件,而该表格中的每个元素都有这样一组事件与其对应。究竟需要对哪些事件作出反映则由程序员来选择。这些响应就被写成该表格所产生的类的成员函数。
如果前面板是由一个工业设计小组设计的,那么就会有整个显示图像可供利用。或者如果物理原型已经存在,那么一幅该物理原型的数字相片就可以用来作为背景。
我采用图像目标(在CPB内也叫作Timage)来显示大多数物理元件。因为采用了图像目标就可以引入位图,然后进行显示。例如可以引入一个发光二极管的图像。在该应用中,显示了一个包含5个按钮和4个LED的接口原图,如图1所示。背景图像中LED处于关断状态。一旦软件决定其中的一个LED应打开,那么这个发光LED图像的可见属性就被设为真,于是点亮的LED的图像就覆盖了不亮的LED图像。
有了这种简单的重叠多幅图像的诀窍,我们就可以仿真一个物理显示屏的其它部分。例如,假设我们采用CPB IDE来创建一个包含单词“ALARM”的标注,并将这一元素命名为AlarmIndicator,那么我们就可以编写一个函数来控制它:
void setAlarmState(Boolean state)
{
PanelForm->AlarmIndicator
->Visible = state;
}
面板表格中包含了我们仿真时所用到的所有图形对象。Alarm-Indicator就是我们将一个标签放到面板表格上之后为其分配的名字。当我们将该标签通过拖拽到表格窗口中的方式加入该表格时,它就成为了该表格的一个数据成员。
在CPB中,显示屏上的一个元素的所有属性都可以作为表征该元素的类的公共数据成员。因此,Visible属性只需进行一个简单的分配操作就能改变。公共数据成员可以在程序中的任何地方通过分配而改变。在CPB中,各属性也有其特殊状态,允许在IDE中通过该状态改变属性。开发者可以点击一个标注,并在属性窗口设置Visible属性。显示的颜色和字体也可以通过类似的方法改变。
现在来看一个setAlarmState()程序,该程序用于驱动基于CPB的仿真。以下代码为CPB专用代码,在***终的目标上无法运行。不用多久,我们将不得不为目标接口编写该函数的另一个版本,形式如下:
void setAlarmState(Boolean state)
{
if (state)
{
ledRegister |= 0x02;
}
else
{
ledRegister &= ~0x02;
}
}
有时,编程的风格会导致一些小函数造成函数调用开销。在较小的系统中这一问题较受关注,而这些函数中有一些可以写成宏或者内联(inline)函数。我通常只在项目的***后阶段才开始进行这类优化。
代码的***
如果我们已经编写了两个版本的setAlarm-State()函数,那么我们必须保证一次只编译其中的一个。要达到这一目的,一种方法是一直采用CPB代码,直到目标硬件设计好之后,再用目标专用的代码代替其中所有CPB专用的代码。如果我们这样做,那么在我们开始目标硬件的开发工作之后,就无法再运行仿真了。读者可能认为这不是什么问题,但事实上,即使硬件设计好之后,仿真也是有用的。