IDE_RC cmpCallbackBASEHandshake(cmiProtocolContext *aProtocolContext, cmiProtocol *aProtocol, void * /*aSessionOwner*/, void * /*aUserContext*/) { cmpArgBASEHandshake *sArg = CMI_PROTOCOL_GET_ARG(*aProtocol, BASE, Handshake); cmmSession *sSession = aProtocolContext->mSession; UChar sBaseVersion; UChar sModuleVersion; /* * Module ID 검사 */ if (sSession != NULL) { IDE_TEST_RAISE(sSession->mModuleID != sArg->mModuleID, InvalidModule); } else { IDE_TEST_RAISE((sArg->mModuleID == CMP_MODULE_BASE) || (sArg->mModuleID >= CMP_MODULE_MAX), InvalidModule); } /* * 사용할 Version 세팅 */ sBaseVersion = IDL_MIN(sArg->mBaseVersion, gCmpModule[CMP_MODULE_BASE]->mVersionMax - 1); sModuleVersion = IDL_MIN(sArg->mModuleVersion, gCmpModule[sArg->mModuleID]->mVersionMax - 1); /* * Session에 Version 세팅 */ if (sSession != NULL) { sSession->mBaseVersion = sBaseVersion; sSession->mModuleVersion = sModuleVersion; } return answerHandshake(aProtocolContext, sBaseVersion, sArg->mModuleID, sModuleVersion); IDE_EXCEPTION(InvalidModule); { IDE_SET(ideSetErrorCode(cmERR_ABORT_INVALID_MODULE)); } IDE_EXCEPTION_END; return answerError(aProtocolContext); }
void eapsUta12Port::receivedMsg( QByteArray msg ) { unsigned char msgValues[MESSAGE_LENGTH]; if( !checkAnswerFormat( msg, msgValues ) ) { return; } switch( msgValues[3] ) { case 0x1F: { answerSetVoltage(); break; } case 0x2F: { answerGetVoltage( msgValues ); break; } case 0x3F: { answerSetCurrent(); break; } case 0x4F: { answerGetCurrent( msgValues ); break; } case 0x5F: { answerSetStatus(); break; } case 0x6F: { answerGetStatus( msgValues ); break; } case 0x7F: { answerSetIdString(); break; } case 0x8F: { answerGetIdString( msg ); break; } case 0x9F: { answerEcho( msgValues ); break; } case 0xAF: { answerError( msgValues ); break; } case 0xEF: { answerSetIdn(); break; } case 0xFF: { answerGetIdn( msgValues ); break; } case 0x48: { answerGetMaxValues( msgValues ); break; } case 0xC8: { answerSetUserText(); break; } case 0xD8: { answerGetUserText( msg ); break; } default: emit portError( "Unknown answer!" ); break; } }