Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 How to stop Xmodem after bin file transfer was finished
#1
hello freinds,


I am sending a BIN file successfully to my energy meter through serial port using the code in the bottom. My problem is that Xmodem doesn't stop after all 128 blocks where sent and i have no idea how to break from it and communicate again with my meter.

Please your kind help.
def sendFile():
    fileSize = os.path.getsize('104_new.BIN')
    total = math.ceil(fileSize /128) 
    ser= serialPort.serialport
    ser.flushInput()
    print (ser)

    def getc(size, timeout=0):
        gbytes = ser.read(1)
        #sleep(0.008)
        print(f'Read Byte: {gbytes}')
        return gbytes or None


    def putc(data, timeout=0):
        pbytes = ser.write(data)
        sleep(0.2)
        print(f'Put Byte: {pbytes}')
        return pbytes or None

    modem =XMODEM(getc,putc)
    f = open('104_new.BIN', "rb")
    modem.send(f,retry=50,callback=total)
    f.close()
    ser.close()
    ser.flushOutput()
    senddata_edit.insert(0,'scan\r')
this is the error code i get:

Error:
send error: expected ACK; got None Exception in thread Thread-2: Traceback (most recent call last): File "C:\Users\shay\AppData\Local\Programs\Python\Python37-32\lib\threading.py", line 926, in _bootstrap_inner self.run() File "C:\Users\shay\AppData\Local\Programs\Python\Python37-32\lib\threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "C:\PythonTerminal-master\PythonTerminal-master\mainpy2.py", line 211, in sendFile status= modem.send(f,retry=50,timeout=0) File "C:\Users\shay\AppData\Local\Programs\Python\Python37-32\lib\site-packages\xmodem\__init__.py", line 349, in send self.putc(EOT) File "C:\PythonTerminal-master\PythonTerminal-master\mainpy2.py", line 203, in putc pbytes = ser.write(data) File "C:\Users\shay\AppData\Local\Programs\Python\Python37-32\lib\site-packages\serial\serialwin32.py", line 315, in write raise SerialException("WriteFile failed ({!r})".format(ctypes.WinError())) serial.serialutil.SerialException: WriteFile failed (OSError(9, 'The handle is invalid.', None, 6))
Larz60+ wrote Nov-28-2019, 03:25 AM:
Please post all code, output and errors (in it's entirety) between their respective tags. I did it for you this time, Here are instructions on how to do it yourself next time.
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  Splitting the audio file into smaller packets before transfer using UDP protocol in p MuhammadAli152 0 127 May-15-2020, 03:01 PM
Last Post: MuhammadAli152
  problems sending BIN file with XMODEM python shaya2103 0 323 Nov-23-2019, 10:27 AM
Last Post: shaya2103
  Xmodem error neethuvp 6 642 Oct-18-2019, 06:08 AM
Last Post: neethuvp
  Process finished with exit code -107374819 (0xC0000375) mrazko 2 5,238 Apr-05-2019, 12:46 PM
Last Post: mrazko
  Fabric - Run method is not being finished mglowinski93 3 997 Dec-29-2018, 10:45 AM
Last Post: mglowinski93
  Progress Finished Question malonn 32 6,301 May-23-2018, 02:43 AM
Last Post: malonn
  Python script that transfer it self iboman5 6 1,720 Nov-13-2017, 05:27 PM
Last Post: AceScottie
  Python script that transfer it self iboman5 2 1,362 Nov-10-2017, 06:56 PM
Last Post: iboman5
  How to transfer a music file, from "uploads" directory into my project sylas 15 3,681 Sep-10-2017, 09:16 PM
Last Post: sylas
  How to transfer a music file, from "Telechargements" into my project sylas 6 1,965 Sep-02-2017, 09:27 PM
Last Post: Larz60+

Forum Jump:


Users browsing this thread: 1 Guest(s)