kopia lustrzana https://github.com/ge0rg/aprsdroid
				
				
				
			refactor APRS-IS TNC protocol
							rodzic
							
								
									e29a1a3206
								
							
						
					
					
						commit
						8d8021345a
					
				|  | @ -57,8 +57,7 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsIsUpl | ||||||
| 		val TAG = "APRSdroid.TcpSocketThread" | 		val TAG = "APRSdroid.TcpSocketThread" | ||||||
| 		var running = true | 		var running = true | ||||||
| 		var socket : Socket = null | 		var socket : Socket = null | ||||||
| 		var reader : BufferedReader = null | 		var tnc : TncProto = null | ||||||
| 		var writer : PrintWriter = null |  | ||||||
| 
 | 
 | ||||||
| 		def init_socket() { | 		def init_socket() { | ||||||
| 			Log.d(TAG, "init_socket()") | 			Log.d(TAG, "init_socket()") | ||||||
|  | @ -72,12 +71,9 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsIsUpl | ||||||
| 				socket = new Socket(host, port) | 				socket = new Socket(host, port) | ||||||
| 				socket.setKeepAlive(true) | 				socket.setKeepAlive(true) | ||||||
| 				socket.setSoTimeout(so_timeout*1000) | 				socket.setSoTimeout(so_timeout*1000) | ||||||
| 				reader = new BufferedReader(new InputStreamReader( |  | ||||||
| 						socket.getInputStream()), 256) |  | ||||||
| 				writer = new PrintWriter(new OutputStreamWriter( |  | ||||||
| 						socket.getOutputStream()), true) |  | ||||||
| 				Log.d(TAG, login + setupFilter()) | 				Log.d(TAG, login + setupFilter()) | ||||||
| 				writer.println(login + setupFilter()) | 				tnc = new AprsIsProto(socket.getInputStream(), socket.getOutputStream(), | ||||||
|  | 					login + setupFilter()) | ||||||
| 			} | 			} | ||||||
| 			Log.d(TAG, "init_socket() done") | 			Log.d(TAG, "init_socket() done") | ||||||
| 		} | 		} | ||||||
|  | @ -101,7 +97,7 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsIsUpl | ||||||
| 					} | 					} | ||||||
| 					Log.d(TAG, "waiting for data...") | 					Log.d(TAG, "waiting for data...") | ||||||
| 					var line : String = null | 					var line : String = null | ||||||
| 					while (running && { line = reader.readLine(); line != null }) { | 					while (running && { line = tnc.readPacket(); line != null }) { | ||||||
| 						Log.d(TAG, "recv: " + line) | 						Log.d(TAG, "recv: " + line) | ||||||
| 						if (line(0) != '#') | 						if (line(0) != '#') | ||||||
| 							service.postSubmit(line) | 							service.postSubmit(line) | ||||||
|  | @ -128,7 +124,7 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsIsUpl | ||||||
| 
 | 
 | ||||||
| 		def update(packet : APRSPacket) : String = { | 		def update(packet : APRSPacket) : String = { | ||||||
| 			if (socket != null && socket.isConnected()) { | 			if (socket != null && socket.isConnected()) { | ||||||
| 				writer.println(packet) | 				tnc.writePacket(packet) | ||||||
| 				"TCP OK" | 				"TCP OK" | ||||||
| 			} else "TCP disconnected" | 			} else "TCP disconnected" | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | package org.aprsdroid.app | ||||||
|  | import _root_.java.io.{BufferedReader, InputStream, InputStreamReader, OutputStream, OutputStreamWriter, PrintWriter} | ||||||
|  | 
 | ||||||
|  | import _root_.net.ab0oo.aprs.parser._ | ||||||
|  | 
 | ||||||
|  | class AprsIsProto(is : InputStream, os : OutputStream, login : String) extends TncProto(is, os) { | ||||||
|  | 
 | ||||||
|  | 	val reader = new BufferedReader(new InputStreamReader(is), 256) | ||||||
|  | 	val writer = new PrintWriter(new OutputStreamWriter(os), true) | ||||||
|  | 
 | ||||||
|  | 	writer.println(login) | ||||||
|  | 
 | ||||||
|  | 	def readPacket() : String = reader.readLine() | ||||||
|  | 	def writePacket(p : APRSPacket) = writer.println(p) | ||||||
|  | } | ||||||
		Ładowanie…
	
		Reference in New Issue
	
	 Georg Lukas
						Georg Lukas