Jump to content

Export.lua tcp socket - receive data


MKay
 Share

Recommended Posts

Hello

 

I am currently working on a little application which communicates with dcs.

I hooked up a tcp socket in the export lua, which sends every second a a few infos to the application.

 

This works all fine. Now I want to send data from the application to the export.lua and I am stuck.

I debugged the application with an external tcp client that communicates with my app and it received the data all fine, its just export.lua which ignores it.

 

Here is a little of my code (step is called on every LuaExportAfterNextFrame):

mkay.step = function()
       local ct = LoGetModelTime();
       if(mkay.nextStep <= ct) then
           mkay.nextStep = ct + 1;
           local val = list_indication(10);
           local sp = splitPCNData(val);
           local s = JSON:encode(sp):gsub("\n","").."\n";
           local c1, c2, c3 = mkay.con:send(s)
           if c1 then
           else
               if c3 == 0 then
                   if c2  == "closed" then
                       mkay.fo:write("c2 - ", "\n");
                       mkay.con = socket.tcp();
                       mkay.con:settimeout(.01);
                   end
                   mkay.con:connect(mkay.host, mkay.port);
                   mkay.fo:write("c3 - ", "\n");
                   
               end
           end
       end
       local line, err = mkay.con:receive();
       if err then
           
       else
           mkay.fo:write("received", "\n");
           
           local msg = line;
           local cmd = string.sub(msg,1,1);
           if(cmd == "D") then
               mkay.fo:write(msg, "\n");
               local args = StrSplit(string.sub(msg,2),",");
               local dev = GetDevice(args[1]);
               if(type(dev) == "table") then
                   dev:performClickableAction(args[2],args[3]);
               end
           end
       end
   end

 

I log to a file so see whats happening, but I never ever see a "received" in my log. If I do log the error from the receive I get "Timeout" all the time, as an error.

 

This is how I setup the socket.

           mkay.con = socket.tcp();
           mkay.con:settimeout(.01);
           mkay.con:connect(mkay.host, mkay.port);

 

 

Any ideas?

Thanks,

Mkay

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...