Counter-Strike Robot (14 / 16 stap)

Stap 14: Raspberry Pi servercode - functionele Code

In de vorige sectie gingen we over het deel van de code die de Raspberry Pi-server ingesteld. In deze stap gaan we tijdens de tweede helft van de servercode.

Eerste plaats moeten wij een manier om te ontleden berichten die via de TCP-socket binnenkomen. Wij ontwikkelen onze eigen protocol voor het interpreteren van berichten: geldige opdrachten moeten beginnen met een letter die betekent het type opdracht, een parameters waarmee de waarde (indien van toepassing), en eindigt met een |. Zoals u in de commentaren zien kunt, de ' |' helpt ons vermijden waar opdrachten worden gebundelde samen en we de server crash.

 # Use this to parse the data.# Our incoming data protocol comes first with a single capital letter signifying the type of command# It then comes with the value, whose ending is marked by a '|'# The '|' is necessary to prevent bunching together of network packets # For example: `Y1320|` tells the Pi that this is a 'Y' command (turret), set it to a value of 1320, and the '|' indicates end of this command# We need the '|' to demarcate the end of a command to prevent bunching together of data# For example, we might accidentally have commands like `Y1230X343` without the pipe, and the pi wouldn't know what to do with the command def parse_data(raw_data): pipe_pos = raw_data.find('|') command_key = raw_data[0] command_value = raw_data[1:pipe_pos] return [command_key, command_value] 

Tot slot, we gaan over de werkelijke actiecode. Aangezien wij een heleboel code gedefinieerd als helper methodes in vorige delen van het bestand, deze sectie ziet er eigenlijk relatief schone. Dit is in wezen een if/else-instructie die schakelt door middel van de opdrachten, en als het zakken op een juiste opdracht, wordt de juiste beweging code uitgevoerd. En aan het einde van het bestand, zodra de cliënt heeft afgesloten, we zullen sluit vervolgens de verbinding.

 while True: # Read in data raw_data = connection.recv(1024).rstrip() # rstrip removes trailing spaces print "Received raw data of " + str(raw_data) data = parse_data(raw_data) # Y commands the turret angle if data[0] == "Y": print "Received Y direction for: " + str(data[1]) turretX(int(data[1])) # X commands the spin of the vehicle (left or right) elif data[0] == "X": if (float(data[1]) < 0): # negative, spin left print "Received LEFT X direction for: " + str(data[1]) spinLeft(abs(float(data[1]))) elif (float(data[1]) > 0): # positive, spin right print "Received RIGHT X direction for: " + str(data[1]) spinRight(abs(float(data[1]))) else: # Full stop print "received 0 X - full stop!" # fullStop() # F commands firing elif data[0] == "F": print "Received Firing command" fireGun() # W commands forward elif data[0] == "W": print "FORWARD" moveForward() # S commands reverse elif data[0] == "S": print "REVERSE" moveReverse() # P commands full-stop elif data[0] == "P": print "FULLSTOP" fullStop() else: print "No mapped command: (Key/Value) = " + str(data[0]) + "/" + str(data[1]) print 'Closed'connection.close() 

En dat is het voor de servercode! In het volgende gedeelte gaan we over de clientcode.

Gerelateerde Artikelen

How to verkrijgen & installeren CS:S(Counter Strike Source) texturen op Garry's Mod

How to verkrijgen & installeren CS:S(Counter Strike Source) texturen op Garry's Mod

Met behulp van een eenvoudige server updater kunnen we installeren Counter Strike Source texturen op Garry van Mod.Stap 1: Stap 1: verkrijgen van stoom CMDDownload hierUn-Zip het steamcmd_win32.zip bestand in een nieuwe mapStap 2: Stap 2: uitvoeren v
Het bereiken van een hogere rang in Counter-Strike: Global offensief

Het bereiken van een hogere rang in Counter-Strike: Global offensief

Counter-Strike: Global offensief is één van de meest populaire concurrerende spelen. Op het bovenste niveau van spelen, kunnen professionele spelers winnen honderden duizenden dollars in toernooien. Als u deze handleiding hebt gevonden, u waarschijnl
Counter Strike Game speler Assault Hoodie

Counter Strike Game speler Assault Hoodie

Yup, is dit xmas gift gemaakt voor de dezelfde jongen met de TARDIS boekenkast en de Halo M5AB geweer prop. Lijkt zijn laatste belang is het computerspel Counter Strike en is altijd bedelen om sommige stoom punten naar voren brengen in app aankopen.
HLDS Counter Strike 1.6 [Linux]

HLDS Counter Strike 1.6 [Linux]

zodat u Counter Strike voor een tijdje spelen en zijn denken over het opzetten van uw eigen server. Dan dit de tutorial voor u is.Welkom bij mijn tweede tutorial over het opzetten van een Half leven Dedicated Server, HLDS voor gaming. Deze tutorial z
Counter Strike C4 Prop

Counter Strike C4 Prop

Door het volgen van dit instructable tot kunt u uw zeer eigen CS:GO C4-prop.Voor dit project zal u het volgende nodig:KaartBruin papier/tassenPlakbandVeel van hete lijmEen oude LCD-ModuleEen oude toetsenbordEen 9 volt batterijDraadLint draadEen rode
Counter-Strike Source kaart aan 3D-model.

Counter-Strike Source kaart aan 3D-model.

Iets ik willen doen voor een lange tijd sinds ik heb de Source SDK ontdekt voor het maken van kaarten voor de Half-life bron spellen naar exporteren konden. DXF. Dit was niet een eenvoudig proces. Exporteren naar. DXF maakte alles als losse onderdele
Counter-Strike Source Console Commands.

Counter-Strike Source Console Commands.

In bijna elk spel met opdrachten van de console ingeschakeld ze spelen een grote rol, van modding de grootte van uw kruiscursor tot fijne tweaken uw server console commando's zijn overal.In dit instructable ik zal je laten zien hoe u kunt deze opdrac
Het toevoegen van een nucleaire optie aan risico (bordspel Mod)

Het toevoegen van een nucleaire optie aan risico (bordspel Mod)

Risico is een klassieke bordspel dat vaak huisregels heeft. Sommige van deze mods zijn zelfs officiële mods, zoals Starcraft, Lord van de ringen, Halo, Doctor Who, Wandelen Dead, en 2210. Omdat risico oorspronkelijk over de post-Koude Oorlog van de T
StatTrak Fedora (nieuwe fabriek)

StatTrak Fedora (nieuwe fabriek)

Maak je eigen StatTrak Fedora.Deze hoed zal zitten kundig voor bijhouden hoe vaak u het uiteinde. Hoewel het niet wordt gedetecteerd door de actie, dus je moet druk op een knop everytime wilt u de teller op het scherm om omhoog te gaan. (Voor wie nie
Cosplay Karambit mes

Cosplay Karambit mes

Oorspronkelijk uit Indonesië is de karambit een handheld mes waarvan het ontwerp zou worden insired door de cat's claw. De functies van de karambit in het populaire computerspel Counter Strike. Ik maakte deze cosplay karambit mes voor #1Son. Het lemm
Warm bij het maken van een eenvoudige maar effectieve katapult in GMOD 10

Warm bij het maken van een eenvoudige maar effectieve katapult in GMOD 10

dit instructable zal u tonen hoe maak je een eenvoudige, but ver vuren katapult in garry's mod 10. het is een gemeenschappelijk contraption die ideaal is voor beginners. de meeste Garry Mod spelers weten hoe maak je zoiets als dit.Geniet van!Vereiste
Oude toetsenbord Transormed in aangepaste Gaming toetsenbord

Oude toetsenbord Transormed in aangepaste Gaming toetsenbord

Hallo iedereen, dit is een instructable over hoe te maken en oude, nu waardeloos, toetsenbord in een up-to-date gokkentoetsenbord. Dit zal worden meest effectief zijn als gedaan voor een specifieke game (D.W.Z. Counter-Strike ) wegens sleutel verwijd
PC Rapid Fire

PC Rapid Fire

bewerken: het definitieve programma vast zodat u niet hoeft te wijzigen van de extensieSemi-automatische pistolen met automatische snelheid schieten! Dit is een risico-vrije software mod, dus er is geen manier die u kan permanent verpesten uw muis/jo
DRAADLOZE muis wijziging van het 555 timer

DRAADLOZE muis wijziging van het 555 timer

eerste, mijn blog/het origineel.Tweede van allen, ik zou willen vermelden hoe gemakkelijk Instructables is te gebruiken. Het is gewoon zo veel makkelijker om instructies te geven wanneer u kunt uw foto's een label en opmerkingen te beantwoorden.Laat