CAN-BUS通信-MSG结构(Winuser.h)Linux等效
Can-Bus Communication - MSG-Structure (WinUser.h) Linux equivalent
你好stackoverflow社区
我已经搜索了一段时间,但是我找不到解决问题的解决方案。我现在正在研究一个项目,在该项目中,我必须将Windows工具移植到Linux操作系统(Ubuntu 12.04lts是特定的)。基于Windows的工具是用C 编写的,因此我试图在Linux上重写C 工具。我目前面临的问题是,在Windows解决方案中,有一个使用" msg"的部分。在这里,来自Windows解决方案的代码片段:
/** Callback to send CAN message */
#define CB_SEND_MSG( MSG ) CanWriteCB( MSG )
我已经实现了CANWRITECB方法,但是我没有找到等于" MSG"的Linux。我在" winuser.h"中的Windows工具中发现了MSG的声明。看起来如下:
/*
* Message structure
*/
typedef struct tagMSG {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
#ifdef _MAC
DWORD lPrivate;
#endif
} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
我不知道它是否对您有帮助,但这也是" canwritecb"方法的实现:
boolean_t CanWriteCB( Can_Msg *msg )
{
return (CanDispatcher_SendMsgByCanBus( msg ) == CanDisp_Err_Ok ) ? TRUE : FALSE;
}
const Det_Config detCfg =
{
WriteDebugErrorData
};
有人知道如何在Linux平台上实现此结构吗?我唯一发现的是如何创建消息队列,但我不知道这将如何帮助我?
谢谢您的时间
最好的问候Alex
您提到的MSG是一个宏参数,并且完全与struct tagMSG
无关。
Linux可以使用SocketCan支持can Bus的套接字接口,并支持各种HW设备。最接近消息结构的东西是struct can_frame
。
相关文章:
- 在C++/Linux中设置单调时钟的一些技巧
- Linux的Cpp上的计时器
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 在Linux中哪里可以找到互斥、未来等的源代码
- createFile() 和 DeviceIoControl() 等效于 Unix/Linux 中的卷设备
- 在 c/c++ 中打开 PhysicalDrive 的句柄并写入 MBR 的 linux 等效是什么?
- 在 Linux 上等效Win32_PerfRawData_PerfDisk_PhysicalDisk?
- 在.NET Core中是否有与DllImport等效的Linux?
- Linux和macOS中的WinAPI等效于什么?
- Linux等效的注册表
- CAN-BUS通信-MSG结构(Winuser.h)Linux等效
- SHGetKnownFolderPath等效于Linux中的API
- Linux C++ ._MyFirst ._MyLast向量等效
- FindExecutablePath的linux等效命令
- Qt Linux "QMAKE_CXXFLAGS += -std=c++11"等效于Windows?
- Linux中的SEH等效或如何处理操作系统信号(如SIGSERV)并保持继续
- Linux下的AutoResetEvent在c++中的等效函数是什么?
- 我在Linux C或c++中搜索等效的Windows msg.exe
- Windows . net (c++) SpinWait在Linux和Mac OS X上的等效是什么?
- 在linux上创建等效的CreateFile CREATE_NEW