麦谷芯™(MachCore)应用开发教程3 --- 组件,方法和字段

本文介绍了麦芯操作系统,一种基于Windows的设备专用软件开发平台,通过IComponent类及其子类如SerialPortDvc,展示了如何快速开发包括方法和字段的组件,并集成到麦芯系统中,提供直观的界面显示。
麦谷芯™是构建在windows系统上的设备应用操作系统,利用该系统可以快速高效的开发一款设备专用软件。希望进一步了解请email: acloud@163.com

黄国强 2024/03/18 

        在从事设备软件开发之前,需要了解设备的相关概念。从这些概念中我们提炼出相关对象形成对象模型。下面列出了麦谷芯™所涉及的领域对象。

  • 时序
  • 组件(或称子设备)
  • 组件方法和字段
  • 麦芯文件系统
  • 处方
  • 通用子设备

每个子设备需要从IComponent类继承,IComponent定义如下:

namespace MACH_CORE
{
	class IComponent
	{
	public:
		// 结束清理资源的时候调用
		virtual void				Fini() = 0;
		// 初始化数字量
		virtual bool				InitDigital(DIFactory CreateDI, DOFactory CreateDO) = 0;
		// 初始化数据成员
		virtual bool				InitField(IFieldFactory * pFieldFactory) = 0;
		// 初始化方法成员
		virtual bool				InitMethod(IMethodFactory* pMethodFactory) = 0;
		// 初始化引用数据成员(其他的组件的数据成员)
		virtual bool				InitRef(
										const std::string& strDvcName,		// 组件名称
										IPlatform * pPlatform) = 0;			// 查找设备其他对象
		// 初始化时序任务
		virtual bool				InitSeq(
										const std::string& strDvcName, 
										SeqFactory CreateSeq) = 0;

	public:
		virtual ~IComponent() {};
	};	
};

下面的代码展示一个串口组件的C++具体代码细节。

class SerialPortDvc : public MACH_CORE::IComponent
{
public: // IComponent
	virtual void				Fini() override;
	virtual bool				InitDigital(DIFactory CreateDI, DOFactory CreateDO) override;
	virtual bool				InitField(IFieldFactory* pFieldFactory) override;
	virtual bool				InitMethod(IMethodFactory* pMethodFactory) override;
	virtual bool				InitRef(
									const std::string& strDvcName,
									IPlatform* pPlatform) override;
	virtual bool				InitSeq(
									const std::string& strDvcName,
									MACH_CORE::SeqFactory CreateSeq) override ; 
};

增加组件方法的实现:

bool SerialPortDvc::InitMethod(IMethodFactory* pMethodFactory)
{
	if(!pMethodFactory->AddMethod("Send", [&]() { SendDataByUI(); })) return false;
	return true;
}

增加组件字段的实现:

bool SerialPortDvc::InitField(IFieldFactory* pFieldFactory)
{
	_pPort = pFieldFactory->Create_e("port", FIELD_UI_RW);
	_pBaudRate = pFieldFactory->Create_e("baud_rate", FIELD_UI_RW);
	assert(_pBaudRate);
	_pCharacterSize = pFieldFactory->Create_e("character_size", FIELD_UI_RW);
	assert(_pCharacterSize);
	_pParity = pFieldFactory->Create_e("parity", FIELD_UI_RW);
	assert(_pParity);
    // 更多字段按上面同样代码创立,略去 
}

将组件加入麦谷芯™后,上述代码创建的方法和字段自动显示在界面上,如下图所示。

从中我们可以看出麦谷芯™增加组件以及组件包含的方法和字段非常容易得。

[参考]
麦谷芯(MachCore)应用开发教程2 --- 时序 
麦谷芯(MachCore)应用开发教程4 --- 文件系统
 

让每台设备运行麦谷芯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

acloud_csu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值