本文整理汇总了C++中UTIL1_strncmp函数的典型用法代码示例。如果您正苦于以下问题:C++ UTIL1_strncmp函数的具体用法?C++ UTIL1_strncmp怎么用?C++ UTIL1_strncmp使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了UTIL1_strncmp函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: VS_ParseCommand
uint8_t VS_ParseCommand(const unsigned char *cmd, bool *handled, const CLS1_StdIOType *io)
{
const uint8_t *p;
uint32_t val32u;
if (UTIL1_strcmp((char*)cmd, CLS1_CMD_HELP)==0 || UTIL1_strcmp((char*)cmd, "VS1053 help")==0) {
*handled = TRUE;
return PrintHelp(io);
} else if ((UTIL1_strcmp((char*)cmd, CLS1_CMD_STATUS)==0) || (UTIL1_strcmp((char*)cmd, "VS1053 status")==0)) {
*handled = TRUE;
return PrintStatus(io);
} else if (UTIL1_strncmp((char*)cmd, "VS1053 volume ", sizeof("VS1053 volume ")-1)==0) {
*handled = TRUE;
p = cmd+sizeof("VS1053 volume ")-1;
if (UTIL1_xatoi(&p, &val32u)==ERR_OK) {
return VS_SetVolume((uint16_t)val32u);
} else {
CLS1_SendStr("Failed reading volume", io->stdErr);
return ERR_FAILED;
}
} else if (UTIL1_strncmp((char*)cmd, "VS1053 play ", sizeof("VS1053 play ")-1)==0) {
*handled = TRUE;
p = cmd+sizeof("VS1053 play ")-1;
return VS_PlaySong(p, io);
}
return ERR_OK;
}
示例2: RADIO_DataIndicationPacket
void RADIO_DataIndicationPacket(tRxPacket *sRxPacket) {
if (sRxPacket->u8Status==SMAC1_TIMEOUT) { /* Put timeout condition code here */
LED1_Neg(); LED2_Neg(); /* indicator for bad or no communication */
EVNT_SetEvent(EVNT_RADIO_TIMEOUT);
} else if (sRxPacket->u8Status == SMAC1_SUCCESS) { /* good packet received: handle it. */
if (RADIO_isSniffing) {
QueueMessage(RADIO_QUEUE_MSG_SNIFF, (const char*)sRxPacket->pu8Data, sRxPacket->u8DataLength);
}
/* check if it is the packet we expect...*/
if ( RADIO_AppStatus==RADIO_WAITING_FOR_ACK
&& UTIL1_strncmp((char*)sRxPacket->pu8Data, RADIO_PREFIX_STR RADIO_ACK_STR, sizeof(RADIO_PREFIX_STR RADIO_ACK_STR)-1)==0
) /* is it our acknowledge packet? */
{
EVNT_SetEvent(EVNT_RADIO_ACK);
} else if (UTIL1_strncmp((char*)sRxPacket->pu8Data, RADIO_PREFIX_STR, sizeof(RADIO_PREFIX_STR)-1)==0) {
#if PL_HAS_REMOTE && PL_HAS_MOTOR
/*! \todo Implement your own message handling */
if (UTIL1_strncmp((char*)sRxPacket->pu8Data, RADIO_PREFIX_STR REMOTE_ACCEL_PREFIX, sizeof(RADIO_PREFIX_STR REMOTE_ACCEL_PREFIX)-1)==0) {
QueueMessage(RADIO_QUEUE_MSG_ACCEL, (const char*)sRxPacket->pu8Data, sRxPacket->u8DataLength);
}
#endif
EVNT_SetEvent(EVNT_RADIO_DATA);
} else { /* unknown packet? */
EVNT_SetEvent(EVNT_RADIO_UNKNOWN);
}
} else if (sRxPacket->u8Status==SMAC1_OVERFLOW) { /* received packet, but it was longer than what we expect. */
EVNT_SetEvent(EVNT_RADIO_OVERFLOW);
LED1_Neg(); LED2_Neg(); /* indicator for bad or no communication */
}
}
示例3: MOT_ParseCommand
uint8_t MOT_ParseCommand(const unsigned char *cmd, bool *handled, const CLS1_StdIOType *io) {
uint8_t res = ERR_OK;
int32_t val;
const unsigned char *p;
if (UTIL1_strcmp((char*)cmd, (char*)CLS1_CMD_HELP)==0 || UTIL1_strcmp((char*)cmd, (char*)"motor help")==0) {
MOT_PrintHelp(io);
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, (char*)CLS1_CMD_STATUS)==0 || UTIL1_strcmp((char*)cmd, (char*)"motor status")==0) {
MOT_PrintStatus(io);
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, (char*)"motor L forward")==0) {
MOT_SetDirection(&motorL, MOT_DIR_FORWARD);
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, (char*)"motor R forward")==0) {
MOT_SetDirection(&motorR, MOT_DIR_FORWARD);
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, (char*)"motor both go")==0) {
MOT_StartMotors();
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, (char*)"motor both fw")==0) {
MOT_DriveForward();
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, (char*)"motor both bw")==0) {
MOT_DriveBackward();
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, (char*)"motor stop")==0) {
MOT_StopMotors();
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, (char*)"motor L backward")==0) {
MOT_SetDirection(&motorL, MOT_DIR_BACKWARD);
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, (char*)"motor R backward")==0) {
MOT_SetDirection(&motorR, MOT_DIR_BACKWARD);
*handled = TRUE;
} else if (UTIL1_strncmp((char*)cmd, (char*)"motor L duty ", sizeof("motor L duty ")-1)==0) {
p = cmd+sizeof("motor L duty");
if (UTIL1_xatoi(&p, &val)==ERR_OK && val >=-100 && val<=100) {
MOT_SetSpeedPercent(&motorL, (MOT_SpeedPercent)val);
*handled = TRUE;
} else {
CLS1_SendStr((unsigned char*)"Wrong argument, must be in the range -100..100\r\n", io->stdErr);
res = ERR_FAILED;
}
} else if (UTIL1_strncmp((char*)cmd, (char*)"motor R duty ", sizeof("motor R duty ")-1)==0) {
p = cmd+sizeof("motor R duty");
if (UTIL1_xatoi(&p, &val)==ERR_OK && val >=-100 && val<=100) {
MOT_SetSpeedPercent(&motorR, (MOT_SpeedPercent)val);
*handled = TRUE;
} else {
CLS1_SendStr((unsigned char*)"Wrong argument, must be in the range -100..100\r\n", io->stdErr);
res = ERR_FAILED;
}
}
return res;
}
示例4: ParsePidParameter
static uint8_t ParsePidParameter(PID_Config *config, const unsigned char *cmd, bool *handled, const CLS1_StdIOType *io) {
const unsigned char *p;
uint8_t val8u;
uint32_t val32u;
uint8_t res = ERR_OK;
if (UTIL1_strncmp((char*)cmd, (char*)"p ", sizeof("p ")-1)==0) {
p = cmd+sizeof("p");
if (UTIL1_ScanDecimal32uNumber(&p, &val32u)==ERR_OK) {
config->pFactor100 = val32u;
*handled = TRUE;
} else {
CLS1_SendStr((unsigned char*)"Wrong argument\r\n", io->stdErr);
res = ERR_FAILED;
}
} else if (UTIL1_strncmp((char*)cmd, (char*)"i ", sizeof("i ")-1)==0) {
p = cmd+sizeof("i");
if (UTIL1_ScanDecimal32uNumber(&p, &val32u)==ERR_OK) {
config->iFactor100 = val32u;
*handled = TRUE;
} else {
CLS1_SendStr((unsigned char*)"Wrong argument\r\n", io->stdErr);
res = ERR_FAILED;
}
} else if (UTIL1_strncmp((char*)cmd, (char*)"d ", sizeof("d ")-1)==0) {
p = cmd+sizeof("d");
if (UTIL1_ScanDecimal32uNumber(&p, &val32u)==ERR_OK) {
config->dFactor100 = val32u;
*handled = TRUE;
} else {
CLS1_SendStr((unsigned char*)"Wrong argument\r\n", io->stdErr);
res = ERR_FAILED;
}
} else if (UTIL1_strncmp((char*)cmd, (char*)"w ", sizeof("w ")-1)==0) {
p = cmd+sizeof("w");
if (UTIL1_ScanDecimal32uNumber(&p, &val32u)==ERR_OK) {
config->iAntiWindup = val32u;
*handled = TRUE;
} else {
CLS1_SendStr((unsigned char*)"Wrong argument\r\n", io->stdErr);
res = ERR_FAILED;
}
} else if (UTIL1_strncmp((char*)cmd, (char*)"speed ", sizeof("speed ")-1)==0) {
p = cmd+sizeof("speed");
if (UTIL1_ScanDecimal8uNumber(&p, &val8u)==ERR_OK && val8u<=100) {
config->maxSpeedPercent = val8u;
*handled = TRUE;
} else {
CLS1_SendStr((unsigned char*)"Wrong argument\r\n", io->stdErr);
res = ERR_FAILED;
}
}
return res;
}
示例5: NEO_ParseCommand
uint8_t NEO_ParseCommand(const unsigned char *cmd, bool *handled, const CLS1_StdIOType *io) {
uint8_t res = ERR_OK;
uint32_t color;
int32_t tmp, x, y;
const uint8_t *p;
if (UTIL1_strcmp((char*)cmd, CLS1_CMD_HELP)==0 || UTIL1_strcmp((char*)cmd, "neo help")==0) {
CLS1_SendHelpStr((unsigned char*)"neo", (const unsigned char*)"Group of neo commands\r\n", io->stdOut);
CLS1_SendHelpStr((unsigned char*)" help|status", (const unsigned char*)"Print help or status information\r\n", io->stdOut);
CLS1_SendHelpStr((unsigned char*)" clear all", (const unsigned char*)"Clear all pixels\r\n", io->stdOut);
CLS1_SendHelpStr((unsigned char*)" set all <rgb>", (const unsigned char*)"Set all pixel with RGB value\r\n", io->stdOut);
CLS1_SendHelpStr((unsigned char*)" set <x> <y> <rgb>", (const unsigned char*)"Set pixel with RGB value\r\n", io->stdOut);
*handled = TRUE;
return ERR_OK;
} else if ((UTIL1_strcmp((char*)cmd, CLS1_CMD_STATUS)==0) || (UTIL1_strcmp((char*)cmd, "neo status")==0)) {
*handled = TRUE;
return PrintStatus(io);
} else if (UTIL1_strcmp((char*)cmd, "neo clear all")==0) {
NEO_ClearAllPixel();
NEO_TransferPixels();
*handled = TRUE;
return ERR_OK;
} else if (UTIL1_strncmp((char*)cmd, "neo set all", sizeof("neo set all")-1)==0) {
p = cmd+sizeof("neo set all")-1;
res = UTIL1_xatoi(&p, &tmp); /* read color RGB value */
if (res==ERR_OK && tmp>=0 && tmp<=0xffffff) { /* within RGB value */
color = tmp;
NEO_SetAllPixelColor(color);
NEO_TransferPixels();
*handled = TRUE;
}
} else if (UTIL1_strncmp((char*)cmd, "neo set", sizeof("neo set")-1)==0) {
p = cmd+sizeof("neo set")-1;
res = UTIL1_xatoi(&p, &x); /* read x pixel index */
if (res==ERR_OK && x>=0 && x<NEO_NOF_X) {
res = UTIL1_xatoi(&p, &y); /* read y pixel index */
if (res==ERR_OK && y>=0 && y<NEO_NOF_Y) {
res = UTIL1_xatoi(&p, &tmp); /* read color RGB value */
if (res==ERR_OK && tmp>=0 && tmp<=0xffffff) {
color = tmp;
NEO_SetPixelColor((NEO_PixelIdxT)x, (NEO_PixelIdxT)y, color);
NEO_TransferPixels();
*handled = TRUE;
}
}
}
}
return res;
}
示例6: RADIO_ParseCommand
uint8_t RADIO_ParseCommand(const unsigned char *cmd, bool *handled, const FSSH1_StdIOType *io) {
uint8_t res = ERR_OK;
long val;
const char *p;
if (UTIL1_strcmp(cmd, FSSH1_CMD_HELP)==0 || UTIL1_strcmp(cmd, "radio help")==0) {
RADIO_PrintHelp(io);
*handled = TRUE;
} else if (UTIL1_strcmp(cmd, FSSH1_CMD_STATUS)==0 || UTIL1_strcmp(cmd, "radio status")==0) {
RADIO_PrintStatus(io);
*handled = TRUE;
} else if (UTIL1_strcmp(cmd, "radio on")==0) {
RADIO_isOn = TRUE;
*handled = TRUE;
} else if (UTIL1_strcmp(cmd, "radio off")==0) {
RADIO_isOn = FALSE;
*handled = TRUE;
} else if (UTIL1_strcmp(cmd, "radio sniff on")==0) {
RADIO_isSniffing = TRUE;
*handled = TRUE;
} else if (UTIL1_strcmp(cmd, "radio sniff off")==0) {
RADIO_isSniffing = FALSE;
*handled = TRUE;
} else if (UTIL1_strncmp(cmd, "radio channel", sizeof("radio channel")-1)==0) {
p = cmd+sizeof("radio channel");
if (UTIL1_xatoi(&p, &val)==ERR_OK && val>=0 && val<=15) {
RADIO_SetChannel((uint8_t)val);
*handled = TRUE;
} else {
FSSH1_SendStr("Wrong argument, must be in the range 0..15\r\n", io->stdErr);
res = ERR_FAILED;
}
} else if (UTIL1_strncmp(cmd, "radio power", sizeof("radio power")-1)==0) {
p = cmd+sizeof("radio power");
if (UTIL1_xatoi(&p, &val)==ERR_OK && val>=0 && val<=15) {
RADIO_SetOutputPower((uint8_t)val);
*handled = TRUE;
} else {
FSSH1_SendStr("Wrong argument, must be in the range 0..15\r\n", io->stdErr);
res = ERR_FAILED;
}
} else if (UTIL1_strncmp(cmd, "radio send", sizeof("radio send")-1)==0) {
p = cmd+sizeof("radio send");
RADIO_SendString(p);
*handled = TRUE;
}
return res;
}
示例7: BUZ_ParseCommand
uint8_t BUZ_ParseCommand(const unsigned char *cmd, bool *handled, const CLS1_StdIOType *io) {
const unsigned char *p;
uint16_t freq, duration;
if (UTIL1_strcmp((char*)cmd, (char*)CLS1_CMD_HELP)==0 || UTIL1_strcmp((char*)cmd, (char*)"buzzer help")==0) {
*handled = TRUE;
return BUZ_PrintHelp(io);
} else if (UTIL1_strcmp((char*)cmd, (char*)CLS1_CMD_STATUS)==0 || UTIL1_strcmp((char*)cmd, (char*)"buzzer status")==0) {
*handled = TRUE;
return BUZ_PrintStatus(io);
} else if (UTIL1_strncmp((char*)cmd, (char*)"buzzer buz ", sizeof("buzzer buz ")-1)==0) {
*handled = TRUE;
p = cmd+sizeof("buzzer buz ")-1;
if (UTIL1_ScanDecimal16uNumber(&p, &freq)==ERR_OK && UTIL1_ScanDecimal16uNumber(&p, &duration)==ERR_OK) {
if (BUZ_Beep(freq, duration)!=ERR_OK) {
CLS1_SendStr((unsigned char*)"Starting buzzer failed\r\n", io->stdErr);
return ERR_FAILED;
}
return ERR_OK;
}
} else if (UTIL1_strcmp((char*)cmd, (char*)"buzzer play tune")==0) {
*handled = TRUE;
return BUZ_PlayTune();
}
return ERR_OK;
}
示例8: CompareString
bool CompareString(uint8_t* bfr, const uint8_t* req, const uint8_t length) {
if (ReadSim900(bfr)) {
if (UTIL1_strncmp(bfr, req, length) == 0) // is equal
return TRUE;
}
return FALSE;
}
示例9: ESP_GetIPAddrString
uint8_t ESP_GetIPAddrString(uint8_t *ipBuf, size_t ipBufSize) {
/* AT+CIFSR */
uint8_t rxBuf[32];
uint8_t res;
const unsigned char *p;
res = ESP_SendATCommand("AT+CIFSR\r\n", rxBuf, sizeof(rxBuf), NULL, ESP_DEFAULT_TIMEOUT_MS, NULL);
if (res!=ERR_OK) {
if (UTIL1_strtailcmp(rxBuf, "\r\n")) {
res = ERR_OK;
}
}
if (res==ERR_OK) {
if (UTIL1_strncmp(rxBuf, "AT+CIFSR\r\r\n", sizeof("AT+CIFSR\r\r\n")-1)==0) { /* check for beginning of response */
UTIL1_strCutTail(rxBuf, "\r\n"); /* cut tailing response */
p = rxBuf+sizeof("AT+CIFSR\r\r\n")-1; /* skip beginning */
SkipNewLines(&p);
UTIL1_strcpy(ipBuf, ipBufSize, p); /* copy IP information string */
} else {
res = ERR_FAILED;
}
}
if (res!=ERR_OK) {
UTIL1_strcpy(ipBuf, ipBufSize, "ERROR");
}
return res;
}
示例10: ESP_GetFirmwareVersionString
uint8_t ESP_GetFirmwareVersionString(uint8_t *fwBuf, size_t fwBufSize) {
/* AT+GMR */
uint8_t rxBuf[32];
uint8_t res;
const unsigned char *p;
res = ESP_SendATCommand("AT+GMR\r\n", rxBuf, sizeof(rxBuf), "\r\n\r\nOK\r\n", ESP_DEFAULT_TIMEOUT_MS, NULL);
if (res!=ERR_OK) {
if (UTIL1_strtailcmp(rxBuf, "\r\n\r\nOK\r\n")) {
res = ERR_OK;
}
}
if (res==ERR_OK) {
if (UTIL1_strncmp(rxBuf, "AT+GMR\r\r\n", sizeof("AT+GMR\r\r\n")-1)==0) { /* check for beginning of response */
UTIL1_strCutTail(rxBuf, "\r\n\r\nOK\r\n"); /* cut tailing response */
p = rxBuf+sizeof("AT+GMR\r\r\n")-1; /* skip beginning */
UTIL1_strcpy(fwBuf, fwBufSize, p); /* copy firmware information string */
} else {
res = ERR_FAILED;
}
}
if (res!=ERR_OK) {
UTIL1_strcpy(fwBuf, fwBufSize, "ERROR"); /* default error */
}
return res;
}
示例11: RADIO_ParseCommand
uint8_t RADIO_ParseCommand(const unsigned char *cmd, bool *handled, const CLS1_StdIOType *io) {
uint8_t res = ERR_OK;
const unsigned char *p;
uint8_t val;
if (UTIL1_strcmp((char*)cmd, (char*)CLS1_CMD_HELP)==0 || UTIL1_strcmp((char*)cmd, (char*)"radio help")==0) {
RADIO_PrintHelp(io);
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, (char*)CLS1_CMD_STATUS)==0 || UTIL1_strcmp((char*)cmd, (char*)"radio status")==0) {
RADIO_PrintStatus(io);
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, (char*)"radio sniff on")==0) {
RADIO_isSniffing = TRUE;
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, (char*)"radio sniff off")==0) {
RADIO_isSniffing = FALSE;
*handled = TRUE;
} else if (UTIL1_strncmp((char*)cmd, (char*)"radio channel", sizeof("radio channel")-1)==0) {
p = cmd+sizeof("radio channel");
if (UTIL1_ScanDecimal8uNumber(&p, &val)==ERR_OK && val>=0 && val<=0x7F) {
RADIO_SetChannel(val);
*handled = TRUE;
} else {
CLS1_SendStr((unsigned char*)"Wrong argument, must be in the range 0..128\r\n", io->stdErr);
res = ERR_FAILED;
}
}
return res;
}
示例12: ReadIntoIPDBuffer
static uint8_t ReadIntoIPDBuffer(uint8_t *buf, size_t bufSize, uint8_t *p, uint16_t msgSize, uint16_t msTimeout, const CLS1_StdIOType *io) {
uint8_t ch;
size_t nofInBuf;
int timeout;
nofInBuf = p-buf;
bufSize -= nofInBuf; /* take into account what we already have in buffer */
timeout = msTimeout;
while (msgSize>0 && bufSize>0) {
if (AS2_GetCharsInRxBuf()>0) {
(void)AS2_RecvChar(&ch);
*p = ch;
if (io!=NULL) { /* copy on console */
io->stdOut(ch);
}
p++;
*p = '\0'; /* terminate */
nofInBuf++; msgSize--; bufSize--;
} else {
/* check in case we recveive less characters than expected, happens for POST? */
if (nofInBuf>6 && UTIL1_strncmp(&p[-6], "\r\nOK\r\n", sizeof("\r\nOK\r\n")-1)==0) {
break;
} else {
timeout -= 10;
WAIT1_WaitOSms(10);
if (timeout<0) {
return ERR_BUSY;
}
}
}
}
return ERR_OK;
}
示例13: BLEUART_CMDMODE_ParseCommand
uint8_t BLEUART_CMDMODE_ParseCommand(const unsigned char *cmd, bool *handled, const CLS1_StdIOType *io) {
uint8_t res = ERR_OK;
if (UTIL1_strcmp((char*)cmd, CLS1_CMD_HELP)==0 || UTIL1_strcmp((char*)cmd, "uart help")==0) {
CLS1_SendHelpStr((unsigned char*)"uart", (const unsigned char*)"Group of Adafruit BLE commands\r\n", io->stdOut);
CLS1_SendHelpStr((unsigned char*)" help|status", (const unsigned char*)"Print help or status information\r\n", io->stdOut);
CLS1_SendHelpStr((unsigned char*)" enable", (unsigned char*)"Enable BLE UART\r\n", io->stdOut);
CLS1_SendHelpStr((unsigned char*)" disable", (unsigned char*)"Disable BLE UART\r\n", io->stdOut);
CLS1_SendHelpStr((unsigned char*)" tx <string>", (unsigned char*)"Send string\r\n", io->stdOut);
*handled = TRUE;
return ERR_OK;
} else if ((UTIL1_strcmp((char*)cmd, CLS1_CMD_STATUS)==0) || (UTIL1_strcmp((char*)cmd, "uart status")==0)) {
*handled = TRUE;
return PrintStatus(io);
} else if (UTIL1_strcmp((char*)cmd, "uart enable")==0) {
isEnabled = TRUE;
*handled = TRUE;
} else if (UTIL1_strcmp((char*)cmd, "uart disable")==0) {
isEnabled = FALSE;
*handled = TRUE;
} else if (UTIL1_strncmp((char*)cmd, "uart tx ", sizeof("uart tx ") - 1) == 0) {
*handled = TRUE;
taskENTER_CRITICAL();
UTIL1_strcpy(txBuffer, sizeof(txBuffer), cmd+sizeof("uart tx ")-1);
UTIL1_strcat(txBuffer, sizeof(txBuffer), "\\n\n"); /* add newline */
taskEXIT_CRITICAL();
}
return res; /* no error */
}
示例14: MPC4728_ParseCommand
byte MPC4728_ParseCommand(const unsigned char *cmd, bool *handled, const CLS1_StdIOType *io) {
const unsigned char *p;
if (UTIL1_strcmp((char*)cmd, CLS1_CMD_HELP)==0 || UTIL1_strcmp((char*)cmd, "MPC4728 help")==0) {
*handled = TRUE;
return PrintHelp(io);
} else if ((UTIL1_strcmp((char*)cmd, CLS1_CMD_STATUS)==0) || (UTIL1_strcmp((char*)cmd, "MPC4728 status")==0)) {
*handled = TRUE;
return PrintStatus(io);
} else if (UTIL1_strcmp((char*)cmd, "MPC4728 reset")==0) {
*handled = TRUE;
if (MPC4728_Reset()!=ERR_OK) {
return ERR_FAILED;
} else {
return ERR_OK;
}
} else if (UTIL1_strcmp((char*)cmd, "MPC4728 wakeup")==0) {
*handled = TRUE;
if (MPC4728_Wakeup()!=ERR_OK) {
return ERR_FAILED;
} else {
return ERR_OK;
}
} else if (UTIL1_strcmp((char*)cmd, "MPC4728 update")==0) {
*handled = TRUE;
if (MPC4728_Update()!=ERR_OK) {
return ERR_FAILED;
} else {
return ERR_OK;
}
} else if (UTIL1_strncmp((char*)cmd, "MPC4728 fastwrite ", sizeof("MPC4728 fastwrite ")-1)==0) {
uint16_t dac[4];
uint8_t pd[4];
int i;
*handled = TRUE;
p = cmd+sizeof("I2CSPY1 fastwrite ")-1;
for(i=0;i<4;i++) { /* init */
dac[i] = 0;
pd[i] = 0;
}
for(i=0;i<4;i++) {
if (UTIL1_ScanHex16uNumber(&p, &dac[i])!=ERR_OK) {
break;
}
dac[i] &= 0xFFF; /* ensure it is 12 bits */
}
if (i!=4) {
CLS1_SendStr((unsigned char*)"**** Not enough values, 4 expected.\r\n", io->stdErr);
return ERR_FAILED;
}
if (MPC4728_FastWrite(dac, sizeof(dac), pd, sizeof(pd))!=ERR_OK) {
CLS1_SendStr((unsigned char*)"**** FastWrite failed.\r\n", io->stdErr);
return ERR_FAILED;
} else {
return ERR_OK;
}
}
return ERR_OK;
}
示例15: MM_ParseCommand
uint8_t MM_ParseCommand(const unsigned char *cmd, bool *handled, const CLS1_StdIOType *io) {
const uint8_t *p;
uint8_t res;
int32_t tmp;
if (UTIL1_strcmp((char*)cmd, CLS1_CMD_HELP)==0 || UTIL1_strcmp((char*)cmd, "midi help")==0) {
CLS1_SendHelpStr((unsigned char*)"midi", (const unsigned char*)"Group of midi commands\r\n", io->stdOut);
CLS1_SendHelpStr((unsigned char*)" help|status", (unsigned char*)"Print help or status information\r\n", io->stdOut);
CLS1_SendHelpStr((unsigned char*)" play <number>", (const unsigned char*)"Play midi song (0, 1)\r\n", io->stdOut);
*handled = TRUE;
return ERR_OK;
} else if ((UTIL1_strcmp((char*)cmd, CLS1_CMD_STATUS)==0) || (UTIL1_strcmp((char*)cmd, "midi status")==0)) {
*handled = TRUE;
return PrintStatus(io);
} else if (UTIL1_strncmp((char*)cmd, "midi play", sizeof("midi play")-1)==0) {
p = cmd+sizeof("midi play")-1;
res = UTIL1_xatoi(&p, &tmp);
if (res==ERR_OK && tmp>=0) {
*handled = TRUE;
if (tmp==0) {
MM_Play();
} else if (tmp==1) {
MM_PlayPirate();
}
}
return res;
}
return ERR_OK;
}