科技匠|用python编写一个无人汽车自动驾驶程序( 二 )


科技匠|用python编写一个无人汽车自动驾驶程序5、基于以上的数据分析使用tensorflow进行学习训练生成模型 , 最后使用模型分析获得指令通过win32 api发送键盘消息控制游戏中的车辆转向和启停
import ctypesimport timeSendInput = ctypes.windll.user32.SendInputW=0x11A=0x1ES=0x1FD=0x20Q=0x10# C struct redefinitions PUL = ctypes.POINTER(ctypes.c_ulong)class KeyBdInput(ctypes.Structure):_fields_ = [("wVk", ctypes.c_ushort),("wScan", ctypes.c_ushort),("dwFlags", ctypes.c_ulong),("time", ctypes.c_ulong),("dwExtraInfo", PUL)]class HardwareInput(ctypes.Structure):_fields_ = [("uMsg", ctypes.c_ulong),("wParamL", ctypes.c_short),("wParamH", ctypes.c_ushort)]class MouseInput(ctypes.Structure):_fields_ = [("dx", ctypes.c_long),("dy", ctypes.c_long),("mouseData", ctypes.c_ulong),("dwFlags", ctypes.c_ulong),("time",ctypes.c_ulong),("dwExtraInfo", PUL)]class Input_I(ctypes.Union):_fields_ = [("ki", KeyBdInput),("mi", MouseInput),("hi", HardwareInput)]class Input(ctypes.Structure):_fields_ = [("type", ctypes.c_ulong),("ii", Input_I)]# Actuals Functionsdef PressKey(hexKeyCode):extra = ctypes.c_ulong(0)ii_ = Input_I()ii_.ki = KeyBdInput( 0, hexKeyCode, 0x0008, 0, ctypes.pointer(extra) )x = Input( ctypes.c_ulong(1), ii_ )ctypes.windll.user32.SendInput(1, ctypes.pointer(x), ctypes.sizeof(x))def ReleaseKey(hexKeyCode):extra = ctypes.c_ulong(0)ii_ = Input_I()ii_.ki = KeyBdInput( 0, hexKeyCode, 0x0008 | 0x0002, 0, ctypes.pointer(extra) )x = Input( ctypes.c_ulong(1), ii_ )ctypes.windll.user32.SendInput(1, ctypes.pointer(x), ctypes.sizeof(x))if __name__== '__main__':while (True):#PressKey(0x11)time.sleep(1)ReleaseKey(0x11)time.sleep(1)【科技匠|用python编写一个无人汽车自动驾驶程序】好了 , 想要源码的朋友可以关注我 , 私信发送“自动驾驶” , 即可获得完整源码 。