[UWP] [C ++]如何跨不同页面引用SerialDevice对象? [英] [UWP] [C++] How to refer SerialDevice object across different pages?
问题描述
我正在创建一个与串行设备通信的UWP应用程序。当我在单页上运行代码时,我能够从设备读取数据,但是当我要分割代码时,我想创建一个单独的设备连接页面"ConnectDevice.xaml"。这将允许
用户连接/断开设备,然后是其他页面"ReadData.xaml"。阅读&接收数据,我无法引用在"ConnectDevice.xaml.cpp"上创建的SerialDevice对象。查看要显示哪些数据的页面。
我尝试过使用extern功能&在全局范围内声明对象。
Hello Singh Hardeep,
似乎可以很好地实现单例模式。 Singleton Pattern 通常用作全局实例。您可以参考以下代码:
ClsSingletonSerialDevice.h
使用命名空间Windows :: Devices :: SerialCommunication;
class ClsSingletonSerialDevice
{
public:
static SerialDevice ^ GetInstance(:: Platform :: String ^);
private:
ClsSingletonSerialDevice();
~ClsSingletonSerialDevice();
};ClsSingletonSerialDevice.cpp
#include" pch.h"
#include" ClsSingletonSerialDevice.h"
静态SerialDevice ^ _serialDevice(nullptr);
SerialDevice ^ ClsSingletonSerialDevice :: GetInstance(:: Platform :: String ^ deviceId){
if(_serialDevice == nullptr)
{
_serialDevice = SerialDevice :: FromIdAsync(deviceId) - > GetResults();
}
return _serialDevice;
}
ClsSingletonSerialDevice :: ClsSingletonSerialDevice()
{
}
ClsSingletonSerialDevice :: ~ClsSingletonSerialDevice()
{
}如何使用:
< pre class ="prettyprint"> SerialDevice ^ serialDevice = ClsSingletonSerialDevice :: GetInstance(" {deviceid}");
最好的问候,
Michael
I am creating a UWP App to communicate with a serial device. I am able to read data from device when i run code on single page, but when i am splitting code as i want to create a separate device connection page "ConnectDevice.xaml" which will let user to connect/disconnect to device and then other page "ReadData.xaml" to read & receive data, i am unable to refer SerialDevice Object created on "ConnectDevice.xaml.cpp" to page on which data is to be displayed.
I have tried using extern function & declaring object in global scope.
Hello Singh Hardeep,
It seems that the singleton pattern can be implemented in a good way. Singleton Pattern is generally used as a global instance. You can refer to following code:
ClsSingletonSerialDevice.h
using namespace Windows::Devices::SerialCommunication; class ClsSingletonSerialDevice { public: static SerialDevice^ GetInstance(::Platform::String^); private: ClsSingletonSerialDevice(); ~ClsSingletonSerialDevice(); };ClsSingletonSerialDevice.cpp
#include "pch.h" #include "ClsSingletonSerialDevice.h" static SerialDevice^ _serialDevice(nullptr); SerialDevice^ ClsSingletonSerialDevice::GetInstance(::Platform::String^ deviceId) { if (_serialDevice == nullptr) { _serialDevice = SerialDevice::FromIdAsync(deviceId)->GetResults(); } return _serialDevice; } ClsSingletonSerialDevice::ClsSingletonSerialDevice() { } ClsSingletonSerialDevice::~ClsSingletonSerialDevice() { }How to use:
SerialDevice^ serialDevice = ClsSingletonSerialDevice::GetInstance("{deviceid}");
Best Regards,
Michael
这篇关于[UWP] [C ++]如何跨不同页面引用SerialDevice对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!