User Tools

Site Tools


module:micropython:esp32udpclientserver:esp32udpclientserver02v01

This is an old revision of the document!


Esp32UdpClientServer 01V01

Übersicht

  • Esp32(Wlan, Uart): Bidirektionales Senden und -Empfangen von UDP-Datenpaketen ohne Blocking mit Threads
  • Programmierung mit VSCode(PyMakr) unter MicroPython mit Uart-MicroPython-Terminal
  • Erweiterung von VSCode mit Python-Terminal und Ampy(Adafruits)

Benutzung

#
# Syntax-Arguments: <headerid> <rxipport> <txipaddress> <txipport>
#
# WindowsPC[192.168.178.33] <-> # WindowsPC[192.168.178.33]:
# WinPC: python CheckUdpClientServer.py Windows 4321 192.168.178.33 4321
 
 
# WindowsPC[192.168.178.33] <-> UbuntuPC[192.168.178.48]
# WinPC: python CheckUdpClientServer.py Windows 5001 192.168.178.48 5000
# LinPC: python CheckUdpClientServer.py Ubuntu  5000 192.168.178.33 5001 
#
import sys
import time
import socket as SKT
#
import Thread as THR
import UdpClientServer as UCS
#
UDP_HEADERID = 'UDPHID'
#-----------------------------------------------------------
#   UDP - TxD - TransmitData
#-----------------------------------------------------------
UDP_IPADDRESS_TX = '127.0.0.255'
UDP_IPPORT_TX = 5000
#
#-----------------------------------------------------------
#   UDP - RxD - ReceiveData
#-----------------------------------------------------------
UDP_IPADDRESS_LOCAL = '127.0.0.1' # dummy
UDP_IPPORT_RX = 5000
#   
#-----------------------------------------------------------
#   Callback - UdpClient
#-----------------------------------------------------------
def CBOnTxData(udpclientserver, txdata):
    Line = 'CBOnTxData[{}]<{}>'.format(udpclientserver.GetHeaderID(), txdata)
    print(Line)
    return
#
def CBOnRxData(udpclientserver, rxdata):
    Line = 'CBOnRxData[{}]<{}>'.format(udpclientserver.GetHeaderID(), rxdata)
    print(Line)
    return
#
def CBOnStart(udpclientserver):
    # debug print('Main-CBOnStart')
    return
#
def CBOnBusy(udpclientserver):
    # debug print('Main-CBOnBusy')
    return
#
def CBOnAbort(udpclientserver):
    # debug print('Main-CBOnAbort')
    return
#
def CBOnEnd(udpclientserver):
    # debug print('Main-CBOnEnd')
    return
#   
#-----------------------------------------------------------
#   Main
#-----------------------------------------------------------
if ('__main__' == __name__):
    #
    print('*** CheckUdpClientServer: begin')
    if (5 <= len(sys.argv)):
        # Analyse Arguments für Tx/Rx-Parameter
        UDP_HEADERID = sys.argv[1]
        # RX
        UDP_IPPORT_RX = int(sys.argv[2])
        # TX
        UDP_IPADDRESS_TX = sys.argv[3]
        UDP_IPPORT_TX = int(sys.argv[4])
    #
    UdpCS = UCS.CUdpClientServer(UDP_HEADERID, UDP_IPPORT_RX,
                                 UDP_IPADDRESS_TX, UDP_IPPORT_TX, 
                                 CBOnTxData, CBOnRxData, 
                                 CBOnStart, CBOnBusy, CBOnAbort, CBOnEnd)
    #        
    print('{}: TxIP-Address[{}]-Port[{}]'.format(UdpCS.GetHeaderID(), 
                                                 UdpCS.GetIPAddressTX(), 
                                                 UdpCS.GetIPPortTX()))
    print('{}: RxIP(local)-Address[{}]-Port[{}]'.format(UdpCS.GetHeaderID(), 
                                                 UdpCS.GetIPAddressRXLocal(),
                                                 UdpCS.GetIPPortRX()))
    UdpCS.Open()
    for I in range(0, 6):
        time.sleep(5.0)
        UdpCS.Transmit('{}[{}]'.format(I,UdpCS.GetHeaderID()))
    time.sleep(1.0)
    UdpCS.Close()
    #
    print('*** CheckUdpClientServer: end')
    #
#
 
 

MicroPython-Terminal-Commands:

> import os
> print(os.listdir())

Ampy-Commands:

> ampy -p COM22 ls
> ampy -p COM22 rm /project.pymakr
> ampy -p COM22 reset

Ausgabe in Terminal:

 

Version

module/micropython/esp32udpclientserver/esp32udpclientserver02v01.1639391720.txt.gz · Last modified: 2021/12/13 12:35 (external edit)