Meddelande från en WinForms till en TinyDuino (12 / 14 steg)
Steg 12: Skicka seriella meddelandet
Nu när vi har ComboBox fylls i med tillgängliga seriella portar blir nästa steg att få vårt program pratar med Tinyduino att lägga till en funktion som skickar ett seriellt meddelande till TinyDuino och uppdaterar hastigheterna som två motorer. Vår serial protocol är utbyggbart men för nu innehåller endast tre byte. Varav först är ett info-paket på typ av meddelande som vi skickar.
Första sak första, definiera en tom funktion som kallas "UpdateMotors()" och inkluderar en konstant byte kallas "messageType" såhär:
void UpdateMotors()
{
meddelande typ konstant
CONST byte messageType = 2;
}
När definierade som denna visual studio kommer att konvertera int nummer 2 underförstått till en byte.
Nästa vi kommer att läsa värden för våra reglagen och tilldela dem till sina egna byte variabler:
void UpdateMotors()
{
meddelande typ konstant
CONST byte messageType = 2;
Läs reglagen
motor 1
byte motorOneSpeed = (byte)tbMotorOne.Value;
motor 2
byte motorTwoSpeed = (byte)tbMotorTwo.Value;
}
När definierade såhär men Visual Studio kräver en gjuten mellan det returnerade värdet av tbMotor.Value och en byte.
Nu med tre byte skapade vi fyller en byte-array som en buffert för att skicka vårt budskap, och naturligtvis skicka själva meddelandet:
void UpdateMotors()
{
meddelande typ konstant
CONST byte messageType = 2;
Läs reglagen
motor 1
byte motorOneSpeed = (byte)tbMotorOne.Value;
motor 2
byte motorTwoSpeed = (byte)tbMotorTwo.Value;
skapa och fylla en bytematris som vårt budskap
byte [] serialMessage = {messageType, motorOneSpeed, motorTwoSpeed};
Skicka meddelande
följetong. Skriva (serialMessage, 0, serialMessage.Length);
}
Märka följetongen. Anropa; tar tre argument: själva meddelandet som en byte-array, ett heltal som representerar den första byten att skicka och en andra int som storleken på hela meddelandet.