nim_duilib/examples/proto_debuger/modbus_form.h
2023-01-24 23:05:06 +08:00

70 lines
1.4 KiB
C++

#pragma once
// C runtime header
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <fstream>
// base header
#include "base/base.h"
#include "serial_port.h"
// duilib
#include "duilib/UIlib.h"
#include "lua_wraper.h"
#include "global.h"
#include "utils.h"
#include "modbus.h"
#include "modbus-rtu.h"
#include "modbus.h"
#define MODBUS_LUA_SCRIPT "modbus_script.lua"
class ModbusMasterForm :
public ui::ChildBox,
LuaBindInterface
{
public:
ModbusMasterForm(ui::Window* window, std::wstring name,
uint32_t baurate, UINT portnum,
uint8_t data_bits,
uint8_t stop_bits,
uint8_t verify,
uint8_t flow_control);
~ModbusMasterForm();
void ShowDataInEdit(const char*) override;
void OnUpdateUart();
LuaDelegate* LuaVM();
/// 重写父类方法,提供个性化功能,请参考父类声明
virtual void Init() override;
void UpdateRecvEdit();
UINT m_portnum;
std::wstring m_name;
uint32_t m_baurate;
uint8_t m_data_bits;
uint8_t m_stop_bits;
uint8_t m_verify;
uint8_t m_flow_contro;
bool m_runing;
std::thread* m_thread_recv;
wstring m_show_recv;
ui::Label* m_label_1;
ui::RichEdit* m_rich_edit_1;
ui::Button* m_button_1;
ui::RichEdit* m_rich_edit_2;
ui::RichEdit* m_rich_edit_3;
HWND m_hwnd;
LuaDelegate* mLua;
std::string mLuaScript;
std::ifstream mLuaFile;
std::ofstream mLuaFileEdit;
modbus_t* mModbus;
private:
virtual void HandleMessage(ui::EventArgs& msg);
};