From e2e5286d25357e7ccc52fe5b7b48452c042efbca Mon Sep 17 00:00:00 2001 From: Dirk Alders Date: Mon, 11 Jan 2021 07:20:20 +0100 Subject: [PATCH] Logging improvements --- __init__.py | 46 +++++++++++----------- _docs_/index.html | 88 +++++++++++++++++++------------------------ _docs_/searchindex.js | 2 +- 3 files changed, 62 insertions(+), 74 deletions(-) diff --git a/__init__.py b/__init__.py index 2c0e84d..e96b7f4 100644 --- a/__init__.py +++ b/__init__.py @@ -69,10 +69,11 @@ class tcp_base(object): COM_TIMEOUT = 0.5 IS_CLIENT = False - def __init__(self, host, port, channel_name=None): + def __init__(self, host, port, channel_name=None, rx_tx_log_lvl=logging.INFO): self.host = host self.port = port self.init_channel_name(channel_name) + self.__rx_tx_log_lvl__ = rx_tx_log_lvl self.__socket__ = None self.__data_available_callback__ = None self.__supress_data_available_callback__ = False @@ -93,7 +94,7 @@ class tcp_base(object): self.__supress_data_available_callback__ = False def __clean_receive_buffer__(self): - self.logger.debug("Cleaning up receive-buffer") + self.logger.debug("%s Cleaning up receive-buffer", self.__log_prefix__()) self.__receive_buffer__ = b'' def __connection_lost__(self): @@ -101,13 +102,16 @@ class tcp_base(object): self.__connection__.close() self.__connection__ = None self.__client_address__ = None - self.logger.info('Connection lost...') + self.logger.info('%s Connection lost...', self.__log_prefix__()) if self.__disconnect_callback__ is not None: self.__disconnect_callback__() def __del__(self): self.close() + def __log_prefix__(self): + return 'comm-client:' if self.IS_CLIENT else 'comm-server:' + def __receive_task__(self, queue_inst): if self.__connection__ is not None: try: @@ -119,7 +123,7 @@ class tcp_base(object): time.sleep(.05) else: if len(data) > 0: - self.logger.info('RX <- "%s"', stringtools.hexlify(data)) + self.logger.log(self.__rx_tx_log_lvl__, '%s RX <- "%s"', self.__log_prefix__(), stringtools.hexlify(data)) self.__receive_buffer__ += data else: self.__connection_lost__() @@ -187,7 +191,7 @@ class tcp_base(object): if self.__connection__ is None: return None if time.time() > tm + timeout: - self.logger.warning('TIMEOUT (%ss): Not enough data in buffer. Requested %s and buffer size is %d.', repr(timeout), repr(num or 'all'), len(self.__receive_buffer__)) + self.logger.warning('%s TIMEOUT (%ss): Not enough data in buffer. Requested %s and buffer size is %d.', self.__log_prefix__(), repr(timeout), repr(num or 'all'), len(self.__receive_buffer__)) return None time.sleep(0.05) if num is None: @@ -226,7 +230,7 @@ class tcp_base(object): """ self.__disconnect_callback__ = callback - def send(self, data, timeout=1, log_lvl=logging.INFO): + def send(self, data, timeout=1): """ This method sends data via the initiated communication channel. @@ -234,8 +238,6 @@ class tcp_base(object): :type data: bytes :param timeout: The timeout for sending data (e.g. time to establish new connection). :type timeout: float - :param log_lvl: The log level to log outgoing TX-data - :type log_lvl: int :return: True if data had been sent, otherwise False. :rtype: bool """ @@ -247,15 +249,15 @@ class tcp_base(object): except BlockingIOError: time.sleep(.1) # try again till timeout exceeds except BrokenPipeError: - self.logger.exception('Exception while sending data') + self.logger.exception('%s Exception while sending data', self.__log_prefix__()) self.__connection_lost__() return False else: - self.logger.log(log_lvl, 'TX -> "%s"', stringtools.hexlify(data)) + self.logger.log(self.__rx_tx_log_lvl__, '%s TX -> "%s"', self.__log_prefix__(), stringtools.hexlify(data)) return True else: time.sleep(.1) # give some time to establish the connection - self.logger.warning('Cound NOT send -> "%s"', stringtools.hexlify(data)) + self.logger.warning('%s Cound NOT send -> "%s"', self.__log_prefix__(), stringtools.hexlify(data)) return False @@ -290,7 +292,7 @@ class tcp_server(tcp_base): self.__socket__.settimeout(self.COM_TIMEOUT) self.__socket__.setblocking(False) if not self.__listening_message_displayed__: - self.logger.info('Server listening to %s:%d', self.host, self.port) + self.logger.info('%s Server listening to %s:%d', self.__log_prefix__(), self.host, self.port) self.__listening_message_displayed__ = True try: self.__connection__, self.__client_address__ = self.__socket__.accept() @@ -300,7 +302,7 @@ class tcp_server(tcp_base): else: time.sleep(.05) else: - self.logger.info('Connection established... (from %s)', self.client_address()) + self.logger.info('%s Connection established... (from %s:%s)', self.__log_prefix__(), self.client_address(), self.port) self.__clean_receive_buffer__() self.__connection__.setblocking(False) if self.__connect_callback__ is not None: @@ -345,7 +347,7 @@ class tcp_client(tcp_base): self.__connection__ = None time.sleep(.05) else: - self.logger.info('Connection to %s:%s established', self.host, self.port) + self.logger.info('%s Connection established... (to %s:%s)', self.__log_prefix__(), self.host, self.port) self.__clean_receive_buffer__() self.__connection__ = self.__socket__ if self.__connect_callback__ is not None: @@ -374,11 +376,11 @@ class tcp_base_stp(tcp_base): """ def __init__(self, host, port, channel_name=None): - tcp_base.__init__(self, host, port, channel_name=channel_name) + tcp_base.__init__(self, host, port, channel_name=channel_name, rx_tx_log_lvl=logging.DEBUG) self.__stp__ = stringtools.stp.stp() def __clean_receive_buffer__(self): - self.logger.debug("Cleaning up receive-buffer") + self.logger.debug("%s Cleaning up receive-buffer", self.__log_prefix__()) self.__receive_buffer__ = [] def __receive_task__(self, queue_inst): @@ -394,10 +396,10 @@ class tcp_base_stp(tcp_base): time.sleep(.05) else: if len(data) > 0: - self.logger.debug('RX <- "%s"', stringtools.hexlify(data)) + self.logger.log(self.__rx_tx_log_lvl__, '%s RX <- "%s"', self.__log_prefix__(), stringtools.hexlify(data)) content = self.__stp__.process(data) for msg in content: - self.logger.info('RX <- "%s"', stringtools.hexlify(msg)) + self.logger.info('%s RX <- "%s"', self.__log_prefix__(), stringtools.hexlify(msg)) self.__receive_buffer__.append(msg) else: self.__connection_lost__() @@ -420,7 +422,7 @@ class tcp_base_stp(tcp_base): except TypeError: return None - def send(self, data, timeout=1, log_lvl=logging.INFO): + def send(self, data, timeout=1): """ This method sends one stp message via the initiated communication channel. @@ -428,13 +430,11 @@ class tcp_base_stp(tcp_base): :type data: bytes :param timeout: The timeout for sending data (e.g. time to establish new connection). :type timeout: float - :param log_lvl: The log level to log outgoing TX-data - :type log_lvl: int :return: True if data had been sent, otherwise False. :rtype: bool """ - if tcp_base.send(self, stringtools.stp.build_frame(data), timeout=timeout, log_lvl=logging.DEBUG): - self.logger.log(log_lvl, 'TX -> "%s"', stringtools.hexlify(data)) + if tcp_base.send(self, stringtools.stp.build_frame(data), timeout=timeout): + self.logger.info('%s TX -> "%s"', self.__log_prefix__(), stringtools.hexlify(data)) return True else: return False diff --git a/_docs_/index.html b/_docs_/index.html index 80321ee..2decfd1 100644 --- a/_docs_/index.html +++ b/_docs_/index.html @@ -176,7 +176,7 @@

Module Documentation:

-class tcp_socket.tcp_base(host, port, channel_name=None)
+class tcp_socket.tcp_base(host, port, channel_name=None, rx_tx_log_lvl=20)

This is the base class for other classes in this module.

@@ -316,7 +316,7 @@ given as first argument.

-send(data, timeout=1, log_lvl=20)
+send(data, timeout=1)

This method sends data via the initiated communication channel.

@@ -325,7 +325,6 @@ given as first argument.

@@ -382,7 +381,7 @@ given as first argument.

-send(data, timeout=1, log_lvl=20)
+send(data, timeout=1)

This method sends one stp message via the initiated communication channel.

Parameters:
  • data (bytes) – The data to be send over the communication channel.
  • timeout (float) – The timeout for sending data (e.g. time to establish new connection).
  • -
  • log_lvl (int) – The log level to log outgoing TX-data
@@ -391,7 +390,6 @@ given as first argument.

@@ -409,7 +407,7 @@ given as first argument.

-class tcp_socket.tcp_client(host, port, channel_name=None)
+class tcp_socket.tcp_client(host, port, channel_name=None, rx_tx_log_lvl=20)

This class creates a tcp-client for transfering a serial stream of bytes (characters). See also parent tcp_base.

Parameters:
  • data (bytes) – The message to be send over the communication channel.
  • timeout (float) – The timeout for sending data (e.g. time to establish new connection).
  • -
  • log_lvl (int) – The log level to log outgoing TX-data
@@ -447,12 +445,12 @@ given as first argument.

print('The Client received: %s'%repr(c.receive())) -
2021-01-08 02:31:06,310: root.tcp_socket.all_others - DEBUG - Cleaning up receive-buffer
-2021-01-08 02:31:06,462: root.tcp_socket.all_others - INFO - Connection to 127.0.0.1:17000 established
-2021-01-08 02:31:06,462: root.tcp_socket.all_others - DEBUG - Cleaning up receive-buffer
-2021-01-08 02:31:06,511: root.tcp_socket.all_others - INFO - TX -> "(3): 61 62 63"
-2021-01-08 02:31:06,563: root.tcp_socket.all_others - INFO - RX <- "(3): 61 62 63"
-2021-01-08 02:31:06,612: root.tcp_socket.all_others - DEBUG - Cleaning up receive-buffer
+
2021-01-11 07:17:54,183: root.tcp_socket.all_others - DEBUG - comm-client: Cleaning up receive-buffer
+2021-01-11 07:17:54,233: root.tcp_socket.all_others - INFO - comm-client: Connection established... (to 127.0.0.1:17000)
+2021-01-11 07:17:54,234: root.tcp_socket.all_others - DEBUG - comm-client: Cleaning up receive-buffer
+2021-01-11 07:17:54,283: root.tcp_socket.all_others - INFO - comm-client: TX -> "(3): 61 62 63"
+2021-01-11 07:17:54,284: root.tcp_socket.all_others - INFO - comm-client: RX <- "(3): 61 62 63"
+2021-01-11 07:17:54,334: root.tcp_socket.all_others - DEBUG - comm-client: Cleaning up receive-buffer
 The Client received: b'abc'
 
@@ -499,26 +497,16 @@ See print('The Client received: %s' % repr(c.receive()))
-
2021-01-08 02:31:05,904: root.tcp_socket.all_others - DEBUG - Cleaning up receive-buffer
-2021-01-08 02:31:06,055: root.tcp_socket.all_others - INFO - Connection to 127.0.0.1:17017 established
-2021-01-08 02:31:06,056: root.tcp_socket.all_others - DEBUG - Cleaning up receive-buffer
-2021-01-08 02:31:06,105: root.tcp_socket.all_others - DEBUG - TX -> "(7): 3a 3c 61 62 63 3a 3e"
-2021-01-08 02:31:06,105: root.tcp_socket.all_others - INFO - TX -> "(3): 61 62 63"
-2021-01-08 02:31:06,157: root.tcp_socket.all_others - DEBUG - RX <- "(7): 3a 3c 61 62 63 3a 3e"
-2021-01-08 02:31:06,157: root.stringtools.stp - DEBUG - STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1
-2021-01-08 02:31:06,157: root.stringtools.stp - DEBUG - STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA
-2021-01-08 02:31:06,157: root.stringtools.stp - DEBUG - STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2
-2021-01-08 02:31:06,157: root.stringtools.stp - DEBUG - STP: end pattern (3a 3e) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE
-2021-01-08 02:31:06,157: root.stringtools.stp - INFO - STP: message identified - (3): 61 62 63
-2021-01-08 02:31:06,158: root.tcp_socket.all_others - INFO - RX  <- "(3): 61 62 63"
-The Client received: b'abc'
+
2021-01-11 07:15:57,784: root.tcp_socket.all_others - DEBUG - comm-client: Cleaning up receive-buffer
+2021-01-11 07:15:57,839: root.tcp_socket.all_others - INFO - comm-client: Connection established... (to 127.0.0.1:17017)
+2021-01-11 07:15:57,839: root.tcp_socket.all_others - DEBUG - comm-client: Cleaning up receive-buffer
 
-class tcp_socket.tcp_server(host, port, channel_name=None)
+class tcp_socket.tcp_server(host, port, channel_name=None, rx_tx_log_lvl=20)

This class creates a tcp-server for transfering a serial stream of bytes (characters). See also parent tcp_base.

@@ -564,15 +552,15 @@ See time.sleep(.1) # wait for disconnect -
2021-01-08 02:31:05,587: root.tcp_socket.all_others - DEBUG - Cleaning up receive-buffer
-2021-01-08 02:31:05,588: root.tcp_socket.all_others - INFO - Server listening to 127.0.0.1:17000
-2021-01-08 02:31:05,638: root.tcp_socket.all_others - INFO - Connection established... (from 127.0.0.1)
-2021-01-08 02:31:05,639: root.tcp_socket.all_others - DEBUG - Cleaning up receive-buffer
-2021-01-08 02:31:05,740: root.tcp_socket.all_others - INFO - RX <- "(3): 61 62 63"
-2021-01-08 02:31:05,740: root.tcp_socket.all_others - DEBUG - Cleaning up receive-buffer
-2021-01-08 02:31:05,741: root.tcp_socket.all_others - INFO - TX -> "(3): 61 62 63"
-2021-01-08 02:31:05,842: root.tcp_socket.all_others - INFO - Connection lost...
-2021-01-08 02:31:05,842: root.tcp_socket.all_others - INFO - Server listening to 127.0.0.1:17000
+
2021-01-11 07:15:57,392: root.tcp_socket.all_others - DEBUG - comm-server: Cleaning up receive-buffer
+2021-01-11 07:15:57,392: root.tcp_socket.all_others - INFO - comm-server: Server listening to 127.0.0.1:17000
+2021-01-11 07:15:57,544: root.tcp_socket.all_others - INFO - comm-server: Connection established... (from 127.0.0.1:17000)
+2021-01-11 07:15:57,544: root.tcp_socket.all_others - DEBUG - comm-server: Cleaning up receive-buffer
+2021-01-11 07:15:57,594: root.tcp_socket.all_others - INFO - comm-server: RX <- "(3): 61 62 63"
+2021-01-11 07:15:57,595: root.tcp_socket.all_others - DEBUG - comm-server: Cleaning up receive-buffer
+2021-01-11 07:15:57,595: root.tcp_socket.all_others - INFO - comm-server: TX -> "(3): 61 62 63"
+2021-01-11 07:15:57,747: root.tcp_socket.all_others - INFO - comm-server: Connection lost...
+2021-01-11 07:15:57,748: root.tcp_socket.all_others - INFO - comm-server: Server listening to 127.0.0.1:17000
 
@@ -626,21 +614,21 @@ See time.sleep(.1) # wait for disconnect
-
2021-01-08 02:31:06,713: root.tcp_socket.all_others - DEBUG - Cleaning up receive-buffer
-2021-01-08 02:31:06,713: root.tcp_socket.all_others - INFO - Server listening to 127.0.0.1:17017
-2021-01-08 02:31:06,814: root.tcp_socket.all_others - INFO - Connection established... (from 127.0.0.1)
-2021-01-08 02:31:06,815: root.tcp_socket.all_others - DEBUG - Cleaning up receive-buffer
-2021-01-08 02:31:06,916: root.tcp_socket.all_others - DEBUG - RX <- "(7): 3a 3c 61 62 63 3a 3e"
-2021-01-08 02:31:06,916: root.stringtools.stp - DEBUG - STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1
-2021-01-08 02:31:06,916: root.stringtools.stp - DEBUG - STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA
-2021-01-08 02:31:06,916: root.stringtools.stp - DEBUG - STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2
-2021-01-08 02:31:06,916: root.stringtools.stp - DEBUG - STP: end pattern (3a 3e) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE
-2021-01-08 02:31:06,917: root.stringtools.stp - INFO - STP: message identified - (3): 61 62 63
-2021-01-08 02:31:06,917: root.tcp_socket.all_others - INFO - RX  <- "(3): 61 62 63"
-2021-01-08 02:31:06,917: root.tcp_socket.all_others - DEBUG - TX -> "(7): 3a 3c 61 62 63 3a 3e"
-2021-01-08 02:31:06,917: root.tcp_socket.all_others - INFO - TX -> "(3): 61 62 63"
-2021-01-08 02:31:07,069: root.tcp_socket.all_others - INFO - Connection lost...
-2021-01-08 02:31:07,069: root.tcp_socket.all_others - INFO - Server listening to 127.0.0.1:17017
+
2021-01-11 07:17:54,425: root.tcp_socket.all_others - DEBUG - comm-server: Cleaning up receive-buffer
+2021-01-11 07:17:54,425: root.tcp_socket.all_others - INFO - comm-server: Server listening to 127.0.0.1:17017
+2021-01-11 07:17:54,526: root.tcp_socket.all_others - INFO - comm-server: Connection established... (from 127.0.0.1:17017)
+2021-01-11 07:17:54,526: root.tcp_socket.all_others - DEBUG - comm-server: Cleaning up receive-buffer
+2021-01-11 07:17:54,627: root.tcp_socket.all_others - DEBUG - comm-server: RX <- "(7): 3a 3c 61 62 63 3a 3e"
+2021-01-11 07:17:54,627: root.stringtools.stp - DEBUG - STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1
+2021-01-11 07:17:54,628: root.stringtools.stp - DEBUG - STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA
+2021-01-11 07:17:54,628: root.stringtools.stp - DEBUG - STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2
+2021-01-11 07:17:54,628: root.stringtools.stp - DEBUG - STP: end pattern (3a 3e) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE
+2021-01-11 07:17:54,628: root.stringtools.stp - INFO - STP: message identified - (3): 61 62 63
+2021-01-11 07:17:54,628: root.tcp_socket.all_others - INFO - comm-server: RX  <- "(3): 61 62 63"
+2021-01-11 07:17:54,628: root.tcp_socket.all_others - DEBUG - comm-server: TX -> "(7): 3a 3c 61 62 63 3a 3e"
+2021-01-11 07:17:54,629: root.tcp_socket.all_others - INFO - comm-server: TX -> "(3): 61 62 63"
+2021-01-11 07:17:54,780: root.tcp_socket.all_others - INFO - comm-server: Connection lost...
+2021-01-11 07:17:54,780: root.tcp_socket.all_others - INFO - comm-server: Server listening to 127.0.0.1:17017
 
diff --git a/_docs_/searchindex.js b/_docs_/searchindex.js index 186803b..c54a9a2 100644 --- a/_docs_/searchindex.js +++ b/_docs_/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["index.rst"],objects:{"":{tcp_socket:[0,0,0,"-"]},"tcp_socket.tcp_base":{client_address:[0,2,1,""],close:[0,2,1,""],init_channel_name:[0,2,1,""],is_connected:[0,2,1,""],receive:[0,2,1,""],register_callback:[0,2,1,""],register_connect_callback:[0,2,1,""],register_disconnect_callback:[0,2,1,""],send:[0,2,1,""]},"tcp_socket.tcp_base_stp":{receive:[0,2,1,""],send:[0,2,1,""]},tcp_socket:{tcp_base:[0,1,1,""],tcp_base_stp:[0,1,1,""],tcp_client:[0,1,1,""],tcp_client_stp:[0,1,1,""],tcp_server:[0,1,1,""],tcp_server_stp:[0,1,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method"},terms:{"byte":0,"class":0,"float":0,"function":0,"import":0,"int":0,"new":0,"return":0,"true":0,"while":0,The:0,With:0,abc:0,abl:0,address:0,after:0,alder:0,all:0,all_oth:0,also:0,append:0,argument:0,author:0,avail:0,base:0,been:0,bool:0,buffer:0,callback:0,can:0,chang:0,channel:0,channel_nam:0,charact:0,clean:0,client:0,client_address:0,close:0,commun:0,connect:0,creat:0,data:0,debug:0,def:0,descript:0,design:0,direct:0,dirk:0,disconnect:0,end:0,establish:0,exampl:0,execut:0,exist:0,fals:0,first:0,from:0,get:0,given:0,had:0,host:0,identifi:0,index:0,info:0,inform:0,init_channel_nam:0,initi:0,instanc:0,is_connect:0,least:0,level:0,listen:0,log:0,log_lvl:0,log_name_lvl:0,lost:0,messag:0,method:0,mirror_callback:0,mockeri:0,modul:0,more:0,mount:0,name:0,need:0,none:0,num:0,number:0,one:0,other:0,otherwis:0,outgo:0,over:0,pack:0,page:0,paramet:0,parent:0,path:0,pattern:0,port:0,print:0,receiv:0,register_callback:0,register_connect_callback:0,register_disconnect_callback:0,report:0,repr:0,root:0,run:0,search:0,see:0,send:0,sent:0,serial:0,server:0,sleep:0,start:0,state:0,statu:0,stdoutloggingconfigur:0,store:0,stp:0,stp_state_escape_1:0,stp_state_escape_2:0,stp_state_idl:0,stp_state_store_data:0,str:0,stream:0,stringtool:0,submodul:0,sudo:0,support:0,sync:0,sys:0,tcp_base:0,tcp_base_stp:0,tcp_client:0,tcp_client_stp:0,tcp_server:0,tcp_server_stp:0,thi:0,time:0,timeout:0,transfer:0,type:0,unittest:0,unpack:0,usag:0,use:0,via:0,wait:0,when:0,which:0,you:0},titles:["Welcome to tcp_socket\u2019s documentation!"],titleterms:{document:0,indic:0,socket:0,tabl:0,tcp:0,tcp_socket:0,welcom:0}}) \ No newline at end of file +Search.setIndex({docnames:["index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["index.rst"],objects:{"":{tcp_socket:[0,0,0,"-"]},"tcp_socket.tcp_base":{client_address:[0,2,1,""],close:[0,2,1,""],init_channel_name:[0,2,1,""],is_connected:[0,2,1,""],receive:[0,2,1,""],register_callback:[0,2,1,""],register_connect_callback:[0,2,1,""],register_disconnect_callback:[0,2,1,""],send:[0,2,1,""]},"tcp_socket.tcp_base_stp":{receive:[0,2,1,""],send:[0,2,1,""]},tcp_socket:{tcp_base:[0,1,1,""],tcp_base_stp:[0,1,1,""],tcp_client:[0,1,1,""],tcp_client_stp:[0,1,1,""],tcp_server:[0,1,1,""],tcp_server_stp:[0,1,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method"},terms:{"byte":0,"class":0,"float":0,"function":0,"import":0,"int":0,"new":0,"return":0,"true":0,"while":0,The:0,With:0,abc:0,abl:0,address:0,after:0,alder:0,all:0,all_oth:0,also:0,append:0,argument:0,author:0,avail:0,base:0,been:0,bool:0,buffer:0,callback:0,can:0,chang:0,channel:0,channel_nam:0,charact:0,clean:0,client:0,client_address:0,close:0,comm:0,commun:0,connect:0,creat:0,data:0,debug:0,def:0,descript:0,design:0,direct:0,dirk:0,disconnect:0,end:0,establish:0,exampl:0,execut:0,exist:0,fals:0,first:0,from:0,get:0,given:0,had:0,host:0,identifi:0,index:0,info:0,inform:0,init_channel_nam:0,initi:0,instanc:0,is_connect:0,least:0,listen:0,log:0,log_name_lvl:0,lost:0,messag:0,method:0,mirror_callback:0,mockeri:0,modul:0,more:0,mount:0,name:0,need:0,none:0,num:0,number:0,one:0,other:0,otherwis:0,over:0,pack:0,page:0,paramet:0,parent:0,path:0,pattern:0,port:0,print:0,receiv:0,register_callback:0,register_connect_callback:0,register_disconnect_callback:0,report:0,repr:0,root:0,run:0,rx_tx_log_lvl:0,search:0,see:0,send:0,sent:0,serial:0,server:0,sleep:0,start:0,state:0,statu:0,stdoutloggingconfigur:0,store:0,stp:0,stp_state_escape_1:0,stp_state_escape_2:0,stp_state_idl:0,stp_state_store_data:0,str:0,stream:0,stringtool:0,submodul:0,sudo:0,support:0,sync:0,sys:0,tcp_base:0,tcp_base_stp:0,tcp_client:0,tcp_client_stp:0,tcp_server:0,tcp_server_stp:0,thi:0,time:0,timeout:0,transfer:0,type:0,unittest:0,unpack:0,usag:0,use:0,via:0,wait:0,when:0,which:0,you:0},titles:["Welcome to tcp_socket\u2019s documentation!"],titleterms:{document:0,indic:0,socket:0,tabl:0,tcp:0,tcp_socket:0,welcom:0}}) \ No newline at end of file