本文整理汇总了C++中serialize8函数的典型用法代码示例。如果您正苦于以下问题:C++ serialize8函数的具体用法?C++ serialize8怎么用?C++ serialize8使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了serialize8函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: serialize8
size_t CInitMessage_Header::Serialize(unsigned char *p) const
{
unsigned char *buf = p;
p += serialize8(p, type);
p += serialize8(p, subtype);
return p - buf;
}
开发者ID:Clemenshemmerling,项目名称:Stratagus,代码行数:7,代码来源:net_message.cpp
示例2: headSerialResponse
void headSerialResponse(unsigned char s){ // Data package header { $ M > dataNum cmd}
serialize8('$');
serialize8('M');
serialize8('>');
checkSum = 0; // start a new check sum
serialize8(s);
serialize8(cmd);
}
开发者ID:scorpionqiu,项目名称:Quadcopter,代码行数:8,代码来源:Usart.c
示例3: headSerialResponse
void headSerialResponse(uint8_t err, uint8_t s) {
serialize8('$');
serialize8('M');
serialize8(err ? '!' : '>');
checksum[CURRENTPORT] = 0; // start calculating a new checksum
serialize8(s);
serialize8(cmdMSP[CURRENTPORT]);
}
开发者ID:DaehyunKwon,项目名称:openuasl-multiwii-upgrade,代码行数:8,代码来源:Protocol.cpp
示例4: headSerialResponse
void headSerialResponse(uint8_t err, uint8_t s)
{
serialize8('$');
serialize8('M');
serialize8(err ? '!' : '>');
currentPortState->checksum = 0; // start calculating a new checksum
serialize8(s);
serialize8(currentPortState->cmdMSP);
}
开发者ID:fiendie,项目名称:baseflight,代码行数:9,代码来源:serial.c
示例5: serialize8
void MSP::headSerialResponse(uint8_t err, uint8_t s)
{
serialize8('$');
serialize8('M');
serialize8(err ? '!' : '>');
portState.checksum = 0; // start calculating a new checksum
serialize8(s);
serialize8(portState.cmdMSP);
}
开发者ID:f8industries,项目名称:hackflight,代码行数:9,代码来源:msp.cpp
示例6: debugmsg_serialize
static void debugmsg_serialize(uint8_t l) {
for (uint8_t i=0; i<l; i++) {
if (head_debug != tail_debug) {
serialize8(debug_buf[tail_debug++]);
if (tail_debug == DEBUG_MSG_BUFFER_SIZE) {
tail_debug = 0;
}
} else {
serialize8('\0');
}
}
}
开发者ID:DaehyunKwon,项目名称:openuasl-multiwii-upgrade,代码行数:12,代码来源:Protocol.cpp
示例7: MSPEncode
// Skypup 2015.07.26
void MSPEncode()
{
CURRENTPORT = 0;
// if (serialHeadTX[CURRENTPORT] != serialTailTX[CURRENTPORT])
// return;
// Head
serialize8('$');
serialize8('M');
serialize8('>');
checksum[CURRENTPORT] = 0; // start calculating a new checksum
serialize8(RC_CHANS*2);
serialize8(MSP_ENCODE);
// Payload
s_struct_partial((uint8_t*)&rcData,RC_CHANS*2);
// Tail
tailSerialReply();
}
开发者ID:FlexbotNG,项目名称:MSPBus,代码行数:20,代码来源:Protocol.cpp
示例8: serialBuzzerRefresh
void serialBuzzerRefresh()
{
// for (unsigned char nSendRepeat = 0; nSendRepeat < 3; nSendRepeat++)
// {
serialize8('$');
serialize8('M');
serialize8('!');
checksum[CURRENTPORT] = 0; // start calculating a new checksum
serialize8(1);
serialize8(0x0D);
serialize8(cStateBuzzer);
tailSerialReply();
// }
}
开发者ID:FlexbotNG,项目名称:MultiWiiVTOL,代码行数:14,代码来源:Protocol.cpp
示例9: serializeBoxNamesReply
void serializeBoxNamesReply(void)
{
int i, idx, j, flag = 1, count = 0, len;
reset:
// in first run of the loop, we grab total size of junk to be sent
// then come back and actually send it
for (i = 0; i < numberBoxItems; i++) {
idx = availableBoxes[i];
len = strlen(boxes[idx].boxName);
if (flag) {
count += len;
} else {
for (j = 0; j < len; j++)
serialize8(boxes[idx].boxName[j]);
}
}
if (flag) {
headSerialReply(count);
flag = 0;
goto reset;
}
}
开发者ID:jef79m,项目名称:baseflight,代码行数:24,代码来源:serial.c
示例10: s_struct
void s_struct(uint8_t *cb,uint8_t siz) {
headSerialReply(siz);
while(siz--) serialize8(*cb++);
}
开发者ID:DaehyunKwon,项目名称:openuasl-multiwii-upgrade,代码行数:4,代码来源:Protocol.cpp
示例11: serializeNames
void serializeNames(PGM_P s) {
headSerialReply(strlen_P(s));
for (PGM_P c = s; pgm_read_byte(c); c++) {
serialize8(pgm_read_byte(c));
}
}
开发者ID:DaehyunKwon,项目名称:openuasl-multiwii-upgrade,代码行数:6,代码来源:Protocol.cpp
示例12: tailSerialReply
void tailSerialReply() {
serialize8(checksum[CURRENTPORT]);UartSendData(CURRENTPORT);
}
开发者ID:DaehyunKwon,项目名称:openuasl-multiwii-upgrade,代码行数:3,代码来源:Protocol.cpp
示例13: serialize16
void serialize16(int a){ // Low first, high later
serialize8((a ) & 0xFF);
serialize8((a>>8) & 0xFF);
}
开发者ID:scorpionqiu,项目名称:Quadcopter,代码行数:4,代码来源:Usart.c
示例14: serialize32
void serialize32(uint32_t a) {
serialize8((a ) & 0xFF);
serialize8((a>> 8) & 0xFF);
serialize8((a>>16) & 0xFF);
serialize8((a>>24) & 0xFF);
}
开发者ID:DaehyunKwon,项目名称:openuasl-multiwii-upgrade,代码行数:6,代码来源:Protocol.cpp
示例15: serialize16
void serialize16(int16_t a) {
serialize8((a ) & 0xFF);
serialize8((a>>8) & 0xFF);
}
开发者ID:DaehyunKwon,项目名称:openuasl-multiwii-upgrade,代码行数:4,代码来源:Protocol.cpp
示例16: tailSerialReply
void tailSerialReply(void)
{
serialize8(checksum);
}
开发者ID:jef79m,项目名称:baseflight,代码行数:4,代码来源:serial.c
示例17: tailSerialReply
//void headSerialReply(unsigned char s){
// headSerialResponse(s);
//}
void tailSerialReply(void){ // Add check sum , then start to send
serialize8(checkSum);
UartSendData();
}
开发者ID:scorpionqiu,项目名称:Quadcopter,代码行数:7,代码来源:Usart.c
示例18: s_struct
void s_struct(unsigned char *cb, unsigned char siz){
headSerialResponse(siz);
while(siz--) serialize8(*cb++);
}//OUTPUT: $ M > charCnt cmd data (+checksum)
开发者ID:scorpionqiu,项目名称:Quadcopter,代码行数:4,代码来源:Usart.c
示例19: evaluateCommand
//.........这里部分代码省略.........
#if BARO && (!defined(SUPPRESS_BARO_ALTHOLD))
if(f.BARO_MODE) tmp |= 1<<BOXBARO;
#endif
#if MAG
if(f.MAG_MODE) tmp |= 1<<BOXMAG;
#if !defined(FIXEDWING)
if(f.HEADFREE_MODE) tmp |= 1<<BOXHEADFREE;
if(rcOptions[BOXHEADADJ]) tmp |= 1<<BOXHEADADJ;
#endif
#endif
#if defined(SERVO_TILT) || defined(GIMBAL)|| defined(SERVO_MIX_TILT)
if(rcOptions[BOXCAMSTAB]) tmp |= 1<<BOXCAMSTAB;
#endif
#if defined(CAMTRIG)
if(rcOptions[BOXCAMTRIG]) tmp |= 1<<BOXCAMTRIG;
#endif
#if GPS
if(f.GPS_HOME_MODE) tmp |= 1<<BOXGPSHOME;
if(f.GPS_HOLD_MODE) tmp |= 1<<BOXGPSHOLD;
#endif
#if defined(FIXEDWING) || defined(HELICOPTER)
if(f.PASSTHRU_MODE) tmp |= 1<<BOXPASSTHRU;
#endif
if(f.ARMED) tmp |= 1<<BOXARM;
st.flag = tmp;
st.set = global_conf.currentSet;
s_struct((uint8_t*)&st,11);
break;
case MSP_RAW_IMU:
s_struct((uint8_t*)&imu,18);
break;
case MSP_SERVO:
break;
case MSP_SERVO_CONF:
s_struct((uint8_t*)&conf.servoConf[0].min,56); // struct servo_conf_ is 7 bytes length: min:2 / max:2 / middle:2 / rate:1 ---- 8 servo => 8x7 = 56
break;
case MSP_SET_SERVO_CONF:
s_struct_w((uint8_t*)&conf.servoConf[0].min,56);
break;
case MSP_MOTOR:
s_struct((uint8_t*)&motor,16);
break;
case MSP_RC:
s_struct((uint8_t*)&rcData,RC_CHANS*2);
break;
case MSP_ATTITUDE:
s_struct((uint8_t*)&att,6);
break;
case MSP_ALTITUDE:
s_struct((uint8_t*)&alt,6);
break;
case MSP_ANALOG:
s_struct((uint8_t*)&analog,5);
break;
case MSP_RC_TUNING:
s_struct((uint8_t*)&conf.rcRate8,7);
break;
case MSP_PID:
s_struct((uint8_t*)&conf.pid[0].P8,3*PIDITEMS);
break;
case MSP_PIDNAMES:
serializeNames(pidnames);
break;
case MSP_BOX:
s_struct((uint8_t*)&conf.activate[0],2*CHECKBOXITEMS);
break;
case MSP_BOXNAMES:
serializeNames(boxnames);
break;
case MSP_BOXIDS:
headSerialReply(CHECKBOXITEMS);
for(uint8_t i=0;i<CHECKBOXITEMS;i++) {
serialize8(pgm_read_byte(&(boxids[i])));
}
break;
case MSP_MOTOR_PINS:
s_struct((uint8_t*)&PWM_PIN,8);
break;
case MSP_RESET_CONF:
if(!f.ARMED) LoadDefaults();
headSerialReply(0);
break;
case MSP_ACC_CALIBRATION:
if(!f.ARMED) calibratingA=512;
headSerialReply(0);
break;
case MSP_MAG_CALIBRATION:
if(!f.ARMED) f.CALIBRATE_MAG = 1;
headSerialReply(0);
break;
case MSP_EEPROM_WRITE:
//writeParams(0);
headSerialReply(0);
break;
default: // we do not know how to handle the (valid) message, indicate error MSP $M!
headSerialError(0);
break;
}
tailSerialReply();
}
开发者ID:sooyewguan,项目名称:RobotChipKit,代码行数:101,代码来源:PSerial.cpp
示例20: evaluateCommand
static void evaluateCommand(void)
{
uint32_t i, tmp, junk;
uint8_t wp_no;
int32_t lat = 0, lon = 0, alt = 0;
switch (cmdMSP) {
case MSP_SET_RAW_RC:
for (i = 0; i < 8; i++)
rcData[i] = read16();
headSerialReply(0);
break;
case MSP_SET_ACC_TRIM:
cfg.angleTrim[PITCH] = read16();
cfg.angleTrim[ROLL] = read16();
headSerialReply(0);
break;
case MSP_SET_RAW_GPS:
f.GPS_FIX = read8();
GPS_numSat = read8();
GPS_coord[LAT] = read32();
GPS_coord[LON] = read32();
GPS_altitude = read16();
GPS_speed = read16();
GPS_update |= 2; // New data signalisation to GPS functions
headSerialReply(0);
break;
case MSP_SET_PID:
for (i = 0; i < PIDITEMS; i++) {
cfg.P8[i] = read8();
cfg.I8[i] = read8();
cfg.D8[i] = read8();
}
headSerialReply(0);
break;
case MSP_SET_BOX:
for (i = 0; i < numberBoxItems; i++)
cfg.activate[availableBoxes[i]] = read16();
headSerialReply(0);
break;
case MSP_SET_RC_TUNING:
cfg.rcRate8 = read8();
cfg.rcExpo8 = read8();
cfg.rollPitchRate = read8();
cfg.yawRate = read8();
cfg.dynThrPID = read8();
cfg.thrMid8 = read8();
cfg.thrExpo8 = read8();
headSerialReply(0);
break;
case MSP_SET_MISC:
read16(); // powerfailmeter
mcfg.minthrottle = read16();
read32(); // mcfg.maxthrottle, mcfg.mincommand
cfg.failsafe_throttle = read16();
read16();
read32();
cfg.mag_declination = read16() * 10;
mcfg.vbatscale = read8(); // actual vbatscale as intended
mcfg.vbatmincellvoltage = read8(); // vbatlevel_warn1 in MWC2.3 GUI
mcfg.vbatmaxcellvoltage = read8(); // vbatlevel_warn2 in MWC2.3 GUI
read8(); // vbatlevel_crit (unused)
headSerialReply(0);
break;
case MSP_SET_MOTOR:
for (i = 0; i < 8; i++)
motor_disarmed[i] = read16();
break;
case MSP_SELECT_SETTING:
if (!f.ARMED) {
mcfg.current_profile = read8();
if (mcfg.current_profile > 2)
mcfg.current_profile = 0;
// this writes new profile index and re-reads it
writeEEPROM(0, false);
}
headSerialReply(0);
break;
case MSP_SET_HEAD:
magHold = read16();
headSerialReply(0);
break;
case MSP_IDENT:
headSerialReply(7);
serialize8(VERSION); // multiwii version
serialize8(mcfg.mixerConfiguration); // type of multicopter
serialize8(MSP_VERSION); // MultiWii Serial Protocol Version
serialize32(CAP_PLATFORM_32BIT | CAP_DYNBALANCE | (mcfg.flaps_speed ? CAP_FLAPS : 0)); // "capability"
break;
case MSP_STATUS:
headSerialReply(11);
serialize16(cycleTime);
serialize16(i2cGetErrorCounter());
serialize16(sensors(SENSOR_ACC) | sensors(SENSOR_BARO) << 1 | sensors(SENSOR_MAG) << 2 | sensors(SENSOR_GPS) << 3 | sensors(SENSOR_SONAR) << 4);
// OK, so you waste all the fucking time to have BOXNAMES and BOXINDEXES etc, and then you go ahead and serialize enabled shit simply by stuffing all
// the bits in order, instead of setting the enabled bits based on BOXINDEX. WHERE IS THE FUCKING LOGIC IN THIS, FUCKWADS.
// Serialize the boxes in the order we delivered them, until multiwii retards fix their shit
junk = 0;
tmp = f.ANGLE_MODE << BOXANGLE | f.HORIZON_MODE << BOXHORIZON |
f.BARO_MODE << BOXBARO | f.MAG_MODE << BOXMAG | f.HEADFREE_MODE << BOXHEADFREE | rcOptions[BOXHEADADJ] << BOXHEADADJ |
//.........这里部分代码省略.........
开发者ID:jef79m,项目名称:baseflight,代码行数:101,代码来源:serial.c
注:本文中的serialize8函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论