获取byte中每一位的值
byte byData = 0x36; int n0, n1, n2, n3, n4, n5, n6, n7; n0 = (byData & 0x01) == 0x01 ? 1 : 0; n1 = (byData & 0x02) == 0x02 ? 1 : 0; n2 = (byData & 0x04) == 0x04 ? 1 : 0; n3 = (byData & 0x08) == 0x08 ? 1 : 0; n4 = (byData & 0x10) == 0x10 ? 1 : 0; n5 = (byData & 0x20) == 0x20 ? 1 : 0; n6 = (byData & 0x40) == 0x40 ? 1 : 0; n7 = (byData & 0x80) == 0x80 ? 1 : 0;
获取int16中其中某几位的数值
| bit | 内容 | |
| 11-15 | 预留 | |
| 10 | 值7 | |
| 6-9 | 值6 | |
| 5 | 值5 | |
| 4 | 值4 | |
| 3 | 值3 | |
| 2 | 值2 | |
| 0-1 | 值1 |
/// <param name="val"></param> public virtual void SetValue(UInt16 val) { Fac = (Enmus.FactoryDebugStatus)(val & 0x03); Fligh = (Enmus.FlyLock)((val & 0x04)); Remoti = (Enmus.RemotingLock)(val & 0x08); Air = (Enmus.AirCtrl)((val & 0x10)); Alt = (Enmus.AltHold)((val & 0x20)); Vertl = (Enmus.VerticalCtrl)(((val >> 6) & 0x0F)); Engin= (Enmus.Start_StopState)((val & 0x400)); }
|
Bit |
内容 |
类型 |
初始值 |
说明 |
|
11~15 |
预留 |
R |
0 |
|
|
10 |
发动机控制 |
R |
0 |
0:停车 1:起车 |
|
6~9 |
垂向控制 |
R |
0 |
2:二维平飞 3:三维平飞(保持当前高度飞行) 4:三维飞行(按目标高度上升下降飞行) |
|
5 |
定高模式 |
R |
0 |
0:无效 1:有效 |
|
4 |
空速控制 |
R |
0 |
0:空速控制无效 1:空速控制有效 |
|
3 |
遥控解锁 |
R |
0 |
0:遥控锁定 1:遥控解锁 |
|
2 |
飞行锁定 |
R |
0 |
0:飞机锁定(飞行状态) 1:飞机解锁(地面调试状态) |
|
0~1 |
飞控模式 |
R |
0 |
0:正常模式 1:油门标定模式 2:油门验证模式 3:系留耐久模式 |