From: <nra...@us...> - 2013-02-25 23:21:06
|
Revision: 3031 http://openlcb.svn.sourceforge.net/openlcb/?rev=3031&view=rev Author: nratonpass Date: 2013-02-25 23:20:58 +0000 (Mon, 25 Feb 2013) Log Message: ----------- Modified main menu.py fixed protocolIdentProtocol.py, testAliasConflict.py aand testConsumerOutput.py Modified Paths: -------------- trunk/prototypes/python_gui/olcbtests/src/olcbtests/menu.py trunk/prototypes/python_gui/olcbtests/src/olcbtests/protocolIdentProtocol.py trunk/prototypes/python_gui/olcbtests/src/olcbtests/testAliasConflict.py trunk/prototypes/python_gui/olcbtests/src/olcbtests/testConsumerOutput.py Added Paths: ----------- trunk/prototypes/python_gui/olcbtests/src/olcbtests/ethernet_connect.py trunk/prototypes/python_gui/olcbtests/src/olcbtests/serial_connect.py Removed Paths: ------------- trunk/prototypes/python_gui/olcbtests/path.txt Deleted: trunk/prototypes/python_gui/olcbtests/path.txt =================================================================== --- trunk/prototypes/python_gui/olcbtests/path.txt 2013-02-24 23:06:14 UTC (rev 3030) +++ trunk/prototypes/python_gui/olcbtests/path.txt 2013-02-25 23:20:58 UTC (rev 3031) @@ -1 +0,0 @@ -PATH=C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\MiKTeX 2.9\miktex\bin;C:\WinAVR-20100110\bin;C:\WinAVR-20100110\utils\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\TortoiseHg;C:\Python27;C:\Users\Tim\AppData\Roaming\Python/Scripts;C:\tools\libxml\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Android\android-sdk\platform-tools;C:\PyGTK\bin;C:\Program Files (x86)\GTK2-Runtime\bin;C:\Program Files\TortoiseHg\;C:\Program Files (x86)\Flash Magic;C:\FPC\2.6.0\bin\i386-Win32;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\MiKTeX 2.9\miktex\bin;C:\WinAVR-20100110\bin;C:\WinAVR-20100110\utils\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\TortoiseHg;C:\Python27;C:\Python27\Scripts;C:\tools\libxml\;C:\Program Files\TortoiseSVN\bin;C:\Program Files(x86)\Android\android-sdk\platform-tools;C:\PyGTK\bin;C:\Program Files (x86)\GTK2-Runtime\bin;C:\Program Files\TortoiseHg\;C:\Program Files (x86)\Flash Magic;C:\FPC\2.6.0\bin\i386-Win32;C:\PROGRA~2\FLASHM~1 \ No newline at end of file Added: trunk/prototypes/python_gui/olcbtests/src/olcbtests/ethernet_connect.py =================================================================== --- trunk/prototypes/python_gui/olcbtests/src/olcbtests/ethernet_connect.py (rev 0) +++ trunk/prototypes/python_gui/olcbtests/src/olcbtests/ethernet_connect.py 2013-02-25 23:20:58 UTC (rev 3031) @@ -0,0 +1,53 @@ +''' +Sends Ethernet connection + +@author: Tim Hatch +''' +# Copyright 2013 Timothy C. Hatch +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#from openlcb.can import messages + +from openlcb.can import messages +from openlcb import communication +import logging + +logger = logging.getLogger(__name__) + +def Ethernet_Connect(self, ip_data): + ip_address = self.builder.get_object("ip_address_entry").get_text() + port_data =self.builder.get_object("port_entry_2").get_text() + src_alias = self.builder.get_object("eth_src_alias_entry").get_text().strip() + dst_alias = self.builder.get_object("eth_dst_alias_combo_box").get_active_text().strip() + node_id = self.builder.get_object("eth_node_id_entry").get_text().strip() + self.conn = communication.EthernetConnection(ip_address, int(port_data)) + msg = messages.VerifiedNodeAddressed(src_alias=int(src_alias, 16), + dst_alias=int(dst_alias, 16)) + logger.info('Sending Verify Node Addressed message from {src} to {dst} '.format( + src=msg.src_alias, + dst=msg.dst_alias + )) + self.conn.connect() + self.config = {'src_alias':int(src_alias, 16), + 'dst_alias':int(dst_alias, 16),'node_id':int(node_id, 16)} + self.conn.send(msg) + responses = self.conn.receive_multi() + for response in responses: + msg = messages.parse_frame(response) + logger.info('Received Node alias {0} and Node ID {1}'.format(msg.src_alias, msg.node_id)) + self.connect_status.set_text("Connected to Alias {0} via IP Address {1} Port {2} with Node ID {3}".format( + msg.src_alias, ip_address, port_data, msg.node_id)) + self.ethernet_dialog.hide() + self.Show_Connected_OK(ip_data) + self.eth_disconnect.show_all() + self.connected_no.hide() \ No newline at end of file Modified: trunk/prototypes/python_gui/olcbtests/src/olcbtests/menu.py =================================================================== --- trunk/prototypes/python_gui/olcbtests/src/olcbtests/menu.py 2013-02-24 23:06:14 UTC (rev 3030) +++ trunk/prototypes/python_gui/olcbtests/src/olcbtests/menu.py 2013-02-25 23:20:58 UTC (rev 3031) @@ -21,6 +21,7 @@ # from olcbtests import util +from openlcb import communication from identify_events import identify_events_global from identify_events import identify_events_addressed from identify_consumers import identify_consumers_unknown @@ -32,7 +33,6 @@ from nodeverificationaddressed import verify_node_addressed from test_p_c_loopback import test_p_c_loopback from testpcNotification import test_pc_notification -from openlcb import communication from resetDatagram import reset_datagram from testAliasConflict import alias_conflict from testStartup import test_start_up @@ -41,6 +41,12 @@ from testDatagram import test_datagram from unknownDatagramType import unknown_datagram_type from event_id_reset import mfr_clear +from serial_connect import Serial_Connect +from serial_connect import Serial_Discover_Nodes +from serial_connect import Serial_Reconnection +from ethernet_connect import Ethernet_Connect + +from serial_connect import Serial_Reconnection import serial import threading import logging @@ -171,46 +177,32 @@ def Find_Nodes(self, w): - comport_active = self.builder.get_object("serial_entry_2").get_active() - comport_model = self.builder.get_object("serial_entry_2").get_model() - comport = comport_model[comport_active][0] - baud = self.builder.get_object("baud_entry").get_active_text() - src_alias = self.builder.get_object("src_alias_entry").get_text().strip() - conn = communication.SerialConnection(comport, baud) - msg = messages.VerifyNodeIDNumberSimple(src_alias=int(src_alias, 16)) - logger.info('Sending VerifyNode message from {src}'.format( - src=msg.src_alias - )) - with conn: - #self.config = {'src_alias':int(src_alias, 16)} - conn.send(msg) - cbo = self.builder.get_object('dst_alias_combo_box') - model = cbo.get_model() - model.clear() - responses = conn.receive_multi() - logger.info('Received response from {0} node(s)'.format(len(responses))) - for response in responses: - response = messages.parse_frame(response) - logger.info('Received {0} message from Node alias -- {1}'.format( - response.__class__.__name__, response.src_alias)) - model.append([response.src_alias]) + serial_discover_nodes=Serial_Discover_Nodes(self, w) + def Serial_Connect(self, w): + serial_connect=Serial_Connect(self, w) + + def Ethernet_connect(self, ip_data): + ethernet_connect=Ethernet_Connect(self, ip_data) + def Reconnect(self, w): - comport_active = self.builder.get_object("serial_entry_2").get_active() - comport_model = self.builder.get_object("serial_entry_2").get_model() - comport = comport_model[comport_active][0] - baud = self.builder.get_object("baud_entry").get_active_text() - src_alias = self.builder.get_object("src_alias_entry").get_text().strip() - conn = communication.SerialConnection(comport, baud) + serial_reconnect=Serial_Reconnection(self,w) + + + + def Discover_Nodes(self, ip_data): + ip_address = self.builder.get_object("ip_address_entry").get_text() + port_data = self.builder.get_object("port_entry_2").get_text() + src_alias = self.builder.get_object("eth_src_alias_entry").get_text().strip() + conn = communication.EthernetConnection(ip_address, int(port_data)) msg = messages.VerifyNodeIDNumberSimple(src_alias=int(src_alias, 16)) logger.info('Sending VerifyNode message from {src}'.format( src=msg.src_alias )) with conn: - #self.config = {'src_alias':int(src_alias, 16)} conn.send(msg) - status_cbo = self.builder.get_object('status_dst_alias_combo_box') - model = status_cbo.get_model() + cbo_ = self.builder.get_object('eth_dst_alias_combo_box') + model = cbo_.get_model() model.clear() responses = conn.receive_multi() logger.info('Received response from {0} node(s)'.format(len(responses))) @@ -219,105 +211,7 @@ logger.info('Received {0} message from Node alias -- {1}'.format( response.__class__.__name__, response.src_alias)) model.append([response.src_alias]) - self.status_connect_button.show_all() - - def Serial_Connect(self, w): - - connect_status = self.builder.get_object("connect_status") - comport_active = self.builder.get_object("serial_entry_2").get_active() - comport_model = self.builder.get_object("serial_entry_2").get_model() - comport = comport_model[comport_active][0] - baud = self.builder.get_object("baud_entry").get_active_text() - src_alias = self.builder.get_object("src_alias_entry").get_text().strip() - dst_alias = self.builder.get_object("dst_alias_combo_box").get_active_text().strip() - node_id = self.builder.get_object("node_id_entry").get_text().strip() - self.conn = communication.SerialConnection(comport, baud) - msg = messages.VerifiedNodeAddressed(src_alias=int(src_alias, 16), - dst_alias=int(dst_alias, 16)) - logger.info('Sending Verify Node Addressed message from {src} to {dst} '.format( - src=msg.src_alias, - dst=msg.dst_alias - )) - - self.conn.connect() - self.config = {'src_alias':int(src_alias, 16), - 'dst_alias':int(dst_alias, 16),'dst_id':int(node_id, 16)} - self.conn.send(msg) - responses = self.conn.receive_multi() - for response in responses: - msg = messages.parse_frame(response) - logger.info('Received Node alias {0} with Node ID {1}'.format(msg.src_alias, msg.node_id)) - connect_status.set_text("Connected to Alias {0} via Comport {1} with Node ID {2} ".format( - msg.src_alias, comport, msg.node_id)) - - self.Show_Connected_OK(w) - self.close_connection.show_all() - self.connected_no.hide() - self.status_connect_button.hide() - self.comport_dialog.hide() - - def Serial_Reconnect(self, w): - connect_status = self.builder.get_object("connect_status") - comport_active = self.builder.get_object("serial_entry_2").get_active() - comport_model = self.builder.get_object("serial_entry_2").get_model() - comport = comport_model[comport_active][0] - baud = self.builder.get_object("baud_entry").get_active_text() - src_alias = self.builder.get_object("src_alias_entry").get_text().strip() - dst_alias = self.builder.get_object("status_dst_alias_combo_box").get_active_text().strip() - node_id = self.builder.get_object("node_id_entry").get_text().strip() - self.conn = communication.SerialConnection(comport, baud) - msg = messages.VerifiedNodeAddressed(src_alias=int(src_alias, 16), - dst_alias=int(dst_alias, 16)) - logger.info('Sending Verify Node Addressed message from {src} to {dst} '.format( - src=msg.src_alias, - dst=msg.dst_alias - )) - self.conn.connect() - self.config = {'src_alias':int(src_alias, 16), - 'dst_alias':int(dst_alias, 16),'dst_id':int(node_id, 16)} - self.conn.send(msg) - responses = self.conn.receive_multi() - for response in responses: - msg = messages.parse_frame(response) - logger.info('Received Node alias {0} with Node ID {1}'.format(msg.src_alias, msg.node_id)) - - connect_status.set_text("Connected to Alias {0} via Comport {1} with Node ID {2} ".format( - msg.src_alias, comport, msg.node_id)) - - self.Show_Connected_OK(w) - self.close_connection.show_all() - self.connected_no.hide() - self.reconnect_button.hide() - self.status_connect_button.hide() - self.status_dst_alias_combo_box.hide() - - def Ethernet_connect(self, ip_data): - #connect_status = self.builder.get_object("connect_status") - ip_address = self.builder.get_object("ip_address_entry").get_text() - port_data =self.builder.get_object("port_entry_2").get_text() - src_alias = self.builder.get_object("eth_src_alias_entry").get_text().strip() - dst_alias = self.builder.get_object("eth_dst_alias_entry").get_text().strip() - node_id = self.builder.get_object("eth_node_id_entry").get_text().strip() - self.conn = communication.EthernetConnection(ip_address, int(port_data)) - msg = messages.VerifiedNodeAddressed(src_alias=int(src_alias, 16), - dst_alias=int(dst_alias, 16)) - logger.info('Sending Verify Node Addressed message from {src} to {dst} '.format( - src=msg.src_alias, - dst=msg.dst_alias - )) - self.conn.connect() - self.config = {'src_alias':int(src_alias, 16), - 'dst_alias':int(dst_alias, 16),'node_id':int(node_id, 16)} - self.conn.send(msg) - responses = self.conn.receive_multi() - for response in responses: - msg = messages.parse_frame(response) - logger.info('Received Node alias {0} and Node ID {1}'.format(msg.src_alias, msg.node_id)) - self.connect_status.set_text("Connected to Alias {0} via IP Address {1} Port {2} with Node ID {3}".format( - msg.src_alias, ip_address, port_data, msg.node_id)) - self.ethernet_dialog.hide() - def serial_connection(self, w): self.serial_ports() self.baud_rates(w) @@ -357,14 +251,26 @@ self.conn.close() self.status_connect_button.show_all() self.connected_no.show_all() - #self.reconnect_button.show_all() self.status_dst_alias_combo_box.show_all() self.Clear_Text(w) self.connect_status.set_text("Disconnected") self.connected_ok.hide() self.close_connection.hide() + + def close_eth(self, w): + logger.debug('Closing connection to {hostname}:{port}'.format( + hostname=self.conn.hostname, + port=self.conn.port + )) + self.conn._socket.close() + self.connected_no.show_all() + self.Clear_Text(w) + self.connect_status.set_text("Disconnected") + self.connected_ok.hide() + self.eth_disconnect.hide() + ''' Messages to Identify Events Global and Addressed Consumers and Producer Events Global and Addressed @@ -561,10 +467,13 @@ self.status_connect_button = self.builder.get_object("status_connect_button") self.status_connect_button.hide() - + self.close_connection = self.builder.get_object("close_connection") self.close_connection.hide() + self.eth_disconnect = self.builder.get_object("eth_disconnect") + self.eth_disconnect.hide() + self.status_dst_alias_combo_box = self.builder.get_object("status_dst_alias_combo_box") self.status_dst_alias_combo_box.hide() @@ -576,8 +485,8 @@ self.error_serial_dialog.hide() self.pbar = self.builder.get_object("progress_bar") - self.pbar.hide() self.pbar.pulse() + self.pbar.hide() self.output_box = self.builder.get_object('output_box') self.output_box_2 = self.builder.get_object('output_box_2') @@ -586,6 +495,7 @@ default_formatter = logging.Formatter( #'%(message)s' '[%(levelname)s] %(name)s (%(funcName)s): %(message)s' + #'(%(funcName)s): %(message)s' #'[%(asctime)s] [%(levelname)s] %(name)s (%(funcName)s): %(message)s' ) default_formatter_2 = logging.Formatter() Modified: trunk/prototypes/python_gui/olcbtests/src/olcbtests/protocolIdentProtocol.py =================================================================== --- trunk/prototypes/python_gui/olcbtests/src/olcbtests/protocolIdentProtocol.py 2013-02-24 23:06:14 UTC (rev 3030) +++ trunk/prototypes/python_gui/olcbtests/src/olcbtests/protocolIdentProtocol.py 2013-02-25 23:20:58 UTC (rev 3031) @@ -31,7 +31,7 @@ if not isinstance(msg, messages.PIPMessageRecv): logger.error('Received unexpected {0} message: {1}'.format( msg.__class__.__name__, response)) - logger.info('Received {0} Datagram messages'.format(len(responses))) + logger.info('Received {0} event messages'.format(len(responses))) Added: trunk/prototypes/python_gui/olcbtests/src/olcbtests/serial_connect.py =================================================================== --- trunk/prototypes/python_gui/olcbtests/src/olcbtests/serial_connect.py (rev 0) +++ trunk/prototypes/python_gui/olcbtests/src/olcbtests/serial_connect.py 2013-02-25 23:20:58 UTC (rev 3031) @@ -0,0 +1,114 @@ +''' +Sends serial connection + +@author: Tim Hatch +''' +# Copyright 2013 Timothy C. Hatch +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#from openlcb.can import messages + +from openlcb.can import messages +from openlcb import communication +import logging + +logger = logging.getLogger(__name__) + +def Serial_Connect(self, w): + connect_status = self.builder.get_object("connect_status") + comport_active = self.builder.get_object("serial_entry_2").get_active() + comport_model = self.builder.get_object("serial_entry_2").get_model() + comport = comport_model[comport_active][0] + baud = self.builder.get_object("baud_entry").get_active_text() + src_alias = self.builder.get_object("src_alias_entry").get_text().strip() + dst_alias = self.builder.get_object("dst_alias_combo_box").get_active_text().strip() + node_id = self.builder.get_object("node_id_entry").get_text().strip() + self.conn = communication.SerialConnection(comport, baud) + msg = messages.VerifiedNodeAddressed(src_alias=int(src_alias, 16), + dst_alias=int(dst_alias, 16)) + logger.info('Sending Verify Node Addressed message from {src} to {dst} '.format( + src=msg.src_alias, + dst=msg.dst_alias + )) + self.conn.connect() + self.config = {'src_alias':int(src_alias, 16), + 'dst_alias':int(dst_alias, 16),'node_id':int(node_id, 16)} + self.conn.send(msg) + responses = self.conn.receive_multi() + for response in responses: + msg = messages.parse_frame(response) + logger.info('Received Node alias {0} with Node ID {1}'.format(msg.src_alias, msg.node_id)) + connect_status.set_text("Connected to Alias {0} via Comport {1} with Node ID {2} ".format( + msg.src_alias, comport, msg.node_id)) + + self.Show_Connected_OK(w) + self.close_connection.show_all() + self.connected_no.hide() + self.status_connect_button.hide() + self.comport_dialog.hide() + self.status_dst_alias_combo_box.hide() + +def Serial_Discover_Nodes(self, w): + comport_active = self.builder.get_object("serial_entry_2").get_active() + comport_model = self.builder.get_object("serial_entry_2").get_model() + comport = comport_model[comport_active][0] + baud = self.builder.get_object("baud_entry").get_active_text() + src_alias = self.builder.get_object("src_alias_entry").get_text().strip() + conn = communication.SerialConnection(comport, baud) + msg = messages.VerifyNodeIDNumberSimple(src_alias=int(src_alias, 16)) + logger.info('Sending VerifyNode message from {src}'.format( + src=msg.src_alias + )) + with conn: + #self.config = {'src_alias':int(src_alias, 16)} + conn.send(msg) + cbo = self.builder.get_object('dst_alias_combo_box') + model = cbo.get_model() + model.clear() + responses = conn.receive_multi() + logger.info('Received response from {0} node(s)'.format(len(responses))) + for response in responses: + response = messages.parse_frame(response) + logger.info('Received {0} message from Node alias -- {1}'.format( + response.__class__.__name__, response.src_alias)) + model.append([response.src_alias]) + +def Serial_Reconnection(self, w): + comport_active = self.builder.get_object("serial_entry_2").get_active() + comport_model = self.builder.get_object("serial_entry_2").get_model() + comport = comport_model[comport_active][0] + baud = self.builder.get_object("baud_entry").get_active_text() + src_alias = self.builder.get_object("src_alias_entry").get_text().strip() + conn = communication.SerialConnection(comport, baud) + msg = messages.VerifyNodeIDNumberSimple(src_alias=int(src_alias, 16)) + logger.info('Sending VerifyNode message from {src}'.format( + src=msg.src_alias + )) + with conn: + conn.send(msg) + status_cbo = self.builder.get_object('status_dst_alias_combo_box') + model = status_cbo.get_model() + model.clear() + responses = conn.receive_multi() + logger.info('Received response from {0} node(s)'.format(len(responses))) + for response in responses: + response = messages.parse_frame(response) + logger.info('Received {0} message from Node alias -- {1}'.format( + response.__class__.__name__, response.src_alias)) + model.append([response.src_alias]) + self.status_connect_button.show_all() + + + + + Modified: trunk/prototypes/python_gui/olcbtests/src/olcbtests/testAliasConflict.py =================================================================== --- trunk/prototypes/python_gui/olcbtests/src/olcbtests/testAliasConflict.py 2013-02-24 23:06:14 UTC (rev 3030) +++ trunk/prototypes/python_gui/olcbtests/src/olcbtests/testAliasConflict.py 2013-02-25 23:20:58 UTC (rev 3031) @@ -37,7 +37,7 @@ def alias_conflict(conn, config): '''Sends the events addressed command to the whole bus''' - src_alias, dst_alias, node_id = config['src_alias'], config['dst_alias'], config['dst_id'] + src_alias, dst_alias, node_id = config['src_alias'], config['dst_alias'], config['node_id'] #conn._socket.settimeout(.7) #commented out because does not work on serial com logger.info("check no-response global message with alias conflict") Modified: trunk/prototypes/python_gui/olcbtests/src/olcbtests/testConsumerOutput.py =================================================================== --- trunk/prototypes/python_gui/olcbtests/src/olcbtests/testConsumerOutput.py 2013-02-24 23:06:14 UTC (rev 3030) +++ trunk/prototypes/python_gui/olcbtests/src/olcbtests/testConsumerOutput.py 2013-02-25 23:20:58 UTC (rev 3031) @@ -24,7 +24,7 @@ ) conn.send(msg) - responses = conn.receive_multi(.2) + responses = conn.receive_multi(.5) for frame in responses: response = messages.parse_frame(frame) if not isinstance(response, messages.ConsumerIdentifiedValid): @@ -40,7 +40,7 @@ conn.send(msg) logger.info('Should not receive response') - response2 = conn.receive_multi(.2) + response2 = conn.receive_multi(.5) for frame in response2: response = messages.parse_frame(frame) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |