diff --git a/examples/proto_debuger/tcp_client.lua b/examples/proto_debuger/tcp_client.lua index dae452fd..04a85e75 100644 --- a/examples/proto_debuger/tcp_client.lua +++ b/examples/proto_debuger/tcp_client.lua @@ -1,12 +1,11 @@ require("string") -local file = io.open("writetest.txt", "w+") function OnNewClient(ip,port) showdata("on new client from lua " .. ip..port) end -function OnClientRecvData(data,ip,port) - showdata("client recieve data from lua "..data.. ip..port) +function OnClientRecvData(data) + showdata("client recieve data from lua "..data) end diff --git a/examples/proto_debuger/tcp_client_form.cpp b/examples/proto_debuger/tcp_client_form.cpp index 495d4a0a..a2ea6c5d 100644 --- a/examples/proto_debuger/tcp_client_form.cpp +++ b/examples/proto_debuger/tcp_client_form.cpp @@ -1,5 +1,6 @@ #include "tcp_client_form.h" #include "utils.h" +#include "lua_bind.h" TcpClientForm::TcpClientForm(ui::Window* hwnd,std::string url, uint32_t port, TcpClientLibevent* p): m_connected(false), @@ -12,7 +13,7 @@ TcpClientForm::TcpClientForm(ui::Window* hwnd,std::string url, uint32_t port, Tc } mLua = new LuaDelegate; - mLuaFile.open("tcp_server.lua"); + mLuaFile.open("tcp_client.lua"); std::string lua_script; if (mLuaFile.is_open()) { std::string s; @@ -28,6 +29,7 @@ TcpClientForm::TcpClientForm(ui::Window* hwnd,std::string url, uint32_t port, Tc m_url = url; m_port = port; mLua = new LuaDelegate(); + this->mLua->BindFunction("showdata", LuaShowData); } void TcpClientForm::ShowDataInEdit(const char*p) { @@ -50,7 +52,9 @@ void TcpClientForm::Init() m_check_box_2 = dynamic_cast(FindSubControl(L"check_time_send")); m_check_box_3 = dynamic_cast(FindSubControl(L"check_hex_send")); m_check_box_4 = dynamic_cast(FindSubControl(L"check_hex_recv")); + m_btn_save_lua = dynamic_cast(FindSubControl(L"btn_save_lua")); + m_rich_edit_2->SetRich(true); m_rich_edit_2->SetReturnMsgWantCtrl(true); m_rich_edit_2->SetText(string2wstring(mLuaScript)); @@ -71,6 +75,21 @@ void TcpClientForm::Init() } return true; }); + if (nullptr != m_btn_save_lua) { + m_btn_save_lua->AttachClick([this](ui::EventArgs*) { + std::cout << "±£´ælua½Å±¾\r\n"; + std::string lua = wstring2string(m_rich_edit_2->GetText()); + if (0 == this->mLua->UpdateScript(lua)) { + this->mLuaScript = lua; + } + else { + MessageBox(0, L"lua½Å±¾´íÎó", L"", 0); + return true; + } + std::cout << lua.c_str() << "\r\n"; + return true; + }); + } } TcpClientLibevent* TcpClientForm::ClientEvent() @@ -103,7 +122,11 @@ void TcpClientForm::OnData(uint8_t* dat, uint64_t len) { //std::cout << (char*)dat << "len is " << len << std::endl; //m_rich_edit_1->AppendText(string2wstring(std::string((char*)dat)), false); - + int ret = this->mLua->CallFuntion + ("OnClientRecvData", std::string((char*)dat)); + if (ret < 0) { + MessageBox(0, L"lua½Å±¾´íÎó OnClientRecvData", L"", 0); + } } void TcpClientForm::OnClose() diff --git a/examples/proto_debuger/tcp_client_form.h b/examples/proto_debuger/tcp_client_form.h index a1c0e960..00786eeb 100644 --- a/examples/proto_debuger/tcp_client_form.h +++ b/examples/proto_debuger/tcp_client_form.h @@ -46,6 +46,7 @@ private: ui::RichEdit* m_rich_edit_2; ui::RichEdit* m_uart_send_edit; ui::Button* m_btn_send_data; + ui::Button* m_btn_save_lua; ui::CheckBox* m_check_box_1; ui::CheckBox* m_check_box_2; ui::CheckBox* m_check_box_3; diff --git a/examples/x64/Debug/resources/themes/default/basic/tcp_form.xml b/examples/x64/Debug/resources/themes/default/basic/tcp_form.xml index b968f411..0163391c 100644 --- a/examples/x64/Debug/resources/themes/default/basic/tcp_form.xml +++ b/examples/x64/Debug/resources/themes/default/basic/tcp_form.xml @@ -23,10 +23,13 @@