Blame |
Last modification |
View Log
| RSS feed
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace MKLiveView
{
class ExternControl
{
byte digital0
;
byte digital1
;
byte remoteVisualization
;
sbyte pitch
;
sbyte yaw
;
sbyte roll
;
byte throttle
;
sbyte high
; // affects the pressure sensor according to the MoteCtrl project comments
byte unused
; // free unused byte
byte frameConfirmation
; // confimation
byte config
; // set to 1 to signal new command
public ExternControl
(byte[] data
)
{
Bytes
= data
;
}
public ExternControl
(sbyte yaw,
sbyte pitch,
sbyte roll,
byte throttle
)
{
digital0
= 0;
digital1
= 0;
remoteVisualization
= 0;
this.pitch = pitch
;
this.roll = roll
;
this.yaw = yaw
;
this.throttle = throttle
;
high
= 0;
unused
= 0;
frameConfirmation
= 0;
config
= 1;
}
public sbyte Pitch
{
get { return pitch
; }
set { pitch
= value; }
}
public sbyte Roll
{
get { return roll
; }
set { roll
= value; }
}
public sbyte Yaw
{
get { return yaw
; }
set { yaw
= value; }
}
public byte Throttle
{
get { return throttle
; }
set { throttle
= value; }
}
public byte[] Bytes
{
get
{
byte[] data
= new byte[11];
data
[0] = digital0
;
data
[1] = digital1
;
data
[2] = remoteVisualization
;
data
[3] = (byte)pitch
;
data
[4] = (byte)roll
;
data
[5] = (byte)yaw
;
data
[6] = throttle
;
data
[7] = (byte)high
;
data
[8] = unused
;
data
[9] = frameConfirmation
;
data
[10] = config
;
return data
;
}
set
{
Debug
.Assert(value.Length >= 11);
digital0
= value[0];
digital1
= value[1];
remoteVisualization
= value[2];
pitch
= (sbyte)value[3];
roll
= (sbyte)value[4];
yaw
= (sbyte)value[5];
throttle
= value[6];
high
= (sbyte)value[7];
unused
= value[8];
frameConfirmation
= value[9];
config
= value[10];
}
}
}
}