|
#1
|
|||
|
|||
File Management
Hello,
I am trying to do a file management of a number of .py files each of which has a sequence of operations. To mark the event (that is completion of execution of one .py file), I was trying to send something to the serial port by using........ character1.scale(0,0,0)# (say), this is end of execution of 1.py file. ser = serial.Serial() #Use the Serial port ser.baudrate = 9600 ser.port = 'COM3' ser.open() ser.write('s') x = ser.read() print x When I am executing my 1.py file, I am getting 's' in the input/output window. Like this there will be 2.py, 3.py....files. From my master .py file, I am trying to execute one after another... def FileManagement(): #Set variables count = 0 if count == 0: import 1.pyser = serial.Serial() ser.baudrate = 9600ser.port = 'COM3'ser.open()x = ser.read()print x count += 1 if count == 1:import 2.pycount += 1 if count == 2:import 3.py count += 1 if count == 3:import 4.py Now, I want to mark the end of execution of each .py file. In doing so when I am trying to read the serial port where I have written already during execution of the 1.py, 2.py....files, from my master .py file, I am getting error messages Traceback (most recent call last): File "C:\Program Files\WorldViz\Vizard3002701\Vizard30\python\vizta sk.py", line 676, in __onupdate self.__task = [ t for t in self.__task if not t.update() ] File "C:\Program Files\WorldViz\Vizard3002701\Vizard30\python\vizta sk.py", line 643, in update val = self.__stack[-1].next() File "Sum08_Demo1_NEC_1A_4p5F.py", line 135, in StartStory ser.open() File "C:\Program Files\WorldViz\Vizard3002701\Vizard30\bin\lib\site-packages\serial\serialwin32.py", line 49, in open raise SerialException("could not open port %s: %s" % (self.portstr, msg)) serial.serialutil.SerialException: could not open port COM3: (5, 'CreateFile', 'Access is denied.') Is it a problem with accessing the same port multiple times....or may be a synchronization problem...that is when the port is being written, it is not being opened for reading. Thanks in advance for any valuable suggestion....regarding this problem....or for any other suggested better ways of doing the file management. Thanks Uttama |
#2
|
|||
|
|||
From the error you are getting the problem seems to be that you are trying to open the same COM port multiple times, which is failing. Instead of having multiple files for each operation, I would suggest using one file and implementing each operation as a function in the file. This way, you can open the serial port once in the global scope of the file and all the functions can use the existing handle to it.
|
#3
|
|||
|
|||
Hello,
Yes, of course that would be the easiest solution. I have tried that out and it works. In fact, if I open and close the COM port multiple times from the same .py file, there is also no error. What, I feel that trying to access the same COM port simultaneously from different files is giving errors due to synchronization problem. But, my application demands that I use separate .py files and one master .py file for managing the different .py files. I have found out a solution to this and now it is working fine. What I have done is that I have tried to write in a separate .txt file some message conveying the end of execution of one .py file and then I have tried to access that .txt file, check its contents and when the condition matches, I have made my master .py file to recognize that as an event marker. Now, it is working fine. Thanks for your valuable suggestion. Uttama |
Thread Tools | |
Display Modes | Rate This Thread |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Read file....many issues | Uttama_vizard | Vizard | 9 | 07-08-2008 02:16 PM |
Failed to load wav file | BrynJ | Vizard | 1 | 04-24-2008 09:35 AM |
Could not find plugin to load objects... | halley | Vizard | 1 | 05-30-2006 11:01 AM |
file input | vsully | Vizard | 1 | 12-21-2004 10:51 PM |
Closing file handles from within function | FlyingWren | Vizard | 1 | 10-01-2003 06:02 PM |