bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

LUA怎么實現串口數據采集與TCP單向透傳

本篇內容主要講解“LUA怎么實現串口數據采集與TCP單向透傳”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“LUA怎么實現串口數據采集與TCP單向透傳”吧!

創新互聯建站公司2013年成立,先為環翠等服務建站,環翠等地企業,進行企業商務咨詢服務。為環翠企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

前言:    

    LUA在游戲行業使用廣泛,尤其是編寫一些擴展模塊與C語言之間的協調工作。其效率高于其他很多腳本語言,本人從事工業控制方向的軟件開發,想讓這種腳本語言來適應自己的工作環境,編有了個想法。

  1. 為什么是轉發而不是串口與網絡的雙向透傳?

    測試的時候只有打開方式是"rb"串口才能讀數據,理論上用"wb"可以雙向讀寫串口,如果您知道怎么解決這個問題請告訴我。

  2. lua串口參數怎么設置?如波特率?
     

    我用minicom設置好參數再運行lua腳本

     
  3. 網絡模塊支持

    使用了luasocket庫(luasocket-2.0.2)

    Lua 5.2.2  Copyright (C) 1994-2013 Lua.org, PUC-Rio

--init sock
socket = require("socket")
if nil == socket then
	print( "socket environment load fail.")
	os.exit();
end

--init server socket
net_host = "192.168.17.7"
net_port = 8888
server = socket.bind(net_host,net_port)
if nil == server then
	print( "server socket bind fail.")
	os.exit();
end

::io_ret::

--wair connect
print("wait tcp client connect...")
client = server:accept(1)
if nil == client then
	print("tcp client connect fail")
	os.exit()
else
	print("tcp client connect succ")
end

client:settimeout(0)

--init serial port

serial_port = "/dev/ttyS2"
serial = io.open(serial_port,"rb")
if nil == serial then
	print( "serial port open fail.")
	os.exit();
else
	print("serial port open succ")
end

--serial to tcp proc 
while true do
	local ser_byte = nil
	local net_byte = nil
	
	--network data proc
	net_str,net_state = client:receive(1)
	
	--check socket
	if net_state ~= "closed" then
		
		--check serial port
		ser_str = serial:read(1)
		if ser_str then
			--serial data valid
			ser_byte = string.byte( ser_str )
			
			--serial to tcp
			client:send( string.char(ser_byte) )
			
			--debug output
			io.write( string.format("\nSER:[%02X]\n",ser_byte) )
		end
	
		--[[
		if net_str then
			--network data valid
			net_byte = string.byte( net_str )
			
			--tcp to serial
			serial:write(100)--string.char(net_byte) )
			
			--debug output
			io.write(string.format("\nNET:[%02X]\n",net_byte) )
		end
		]]--
	else
		print("tcp client closed")
		client = nil
		serial = nil
		goto io_ret
	end
end

serial:close()
client:close()

到此,相信大家對“LUA怎么實現串口數據采集與TCP單向透傳”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

當前題目:LUA怎么實現串口數據采集與TCP單向透傳
轉載源于:http://vcdvsql.cn/article20/jhiico.html

成都網站建設公司_創新互聯,為您提供網站排名自適應網站網站收錄網站營銷網站維護

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

營銷型網站建設