// // The main read loop is in ANT.cpp, it will pass us // the inbound message received for our channel. // XXX fix this up to re-use ANTMessage for decoding // all the inbound messages // void ANTChannel::receiveMessage(unsigned char *ant_message) { switch (ant_message[2]) { case ANT_CHANNEL_EVENT: channelEvent(ant_message); break; case ANT_BROADCAST_DATA: broadcastEvent(ant_message); break; case ANT_ACK_DATA: ackEvent(ant_message); break; case ANT_CHANNEL_ID: channelId(ant_message); break; case ANT_BURST_DATA: burstData(ant_message); break; default: break; //XXX should trap error here, but silently ignored for now } if (get_timestamp() > blanking_timestamp + timeout_blanking) { if (!blanked) { blanked=1; value2=value=0; emit staleInfo(number); } } else blanked=0; }
// --------------------------------------------------------- // CDpMif::SendNameAddReqL // This method sends name add request to Name Service. // --------------------------------------------------------- // void CDpMif::SendNameAddReqL( const TUint aUnit ) { OstTrace0( TRACE_NORMAL, CDPMIF_SENDNAMEADDREQL, "CDpMif::SendNameAddReqL" ); LOGM(" CDpMif::SendNameAddReq"); __ASSERT_ALWAYS( aUnit <= KDataPortCommHighUnit, User::Leave( KErrNotSupported ) ); TBuf8<SIZE_PNS_NAME_ADD_REQ> messageData; // Add reserved bytes messageData.Append( KDpPadding ); messageData.Append( KDpPadding ); // Add 32bit name (Big-endian) switch ( aUnit ) { case KDpCsdPort: case KDpPort6: { messageData.Append( aUnit ); //name messageData.Append( PN_PEP_SUB_TYPE_SYMBIAN_INTERNAL ); //name messageData.Append( PN_PEP_TYPE_COMM ); //name messageData.Append( PN_PIPE ); //name break; } case KDpDialUpPort: case KDpPort4: case KDpPort5: { messageData.Append( aUnit ); //name messageData.Append( KDpPadding ); //name messageData.Append( PN_PEP_TYPE_COMM ); //name messageData.Append( PN_PIPE ); //name break; } case KDpBtAccHfPort: { messageData.Append( KDpPadding ); //name messageData.Append( PN_PEP_SUB_TYPE_BT_ACC_HF ); //name messageData.Append( PN_PEP_TYPE_BT_ACC ); //name messageData.Append( PN_PIPE ); //name break; } case KDpBtAccHsPort: { messageData.Append( KDpPadding ); //name messageData.Append( PN_PEP_SUB_TYPE_BT_ACC_HS ); //name messageData.Append( PN_PEP_TYPE_BT_ACC ); //name messageData.Append( PN_PIPE ); //name break; } default: { User::Leave( KErrGeneral ); } } // Add Device id messageData.Append( THIS_DEVICE ); // Create Object id TUint8 channelId( 0 ); switch ( aUnit ) { case KDpCsdPort: { channelId = EIscNokiaDataport1; break; } case KDpDialUpPort: { channelId = EIscNokiaDataport2; break; } case KDpBtAccHfPort: case KDpBtAccHsPort: { channelId = EIscNokiaBtAppl; break; } case KDpPort4: { channelId = EIscNokiaDataport3; break; } case KDpPort5: { channelId = EIscNokiaDataport4; break; } case KDpPort6: { channelId = EIscNokiaDataport5; break; } default: { //Do nothing break; } } TBuf8<2> data; TInt ret( iDataPort.ISAHandle().GetChannelInfo( channelId, data ) ); _LIT(KPanicStr, "Dataport::SendNameAddReqL"); __ASSERT_ALWAYS( KErrNone == ret, User::Panic( KPanicStr, 0 ) ); // Set obj id TUint16 obj( static_cast<TUint16>( ( static_cast<TUint16>( data[0] ) << 8 ) + data[1] ) ); LOG1(" Dataport::SendNameAddReqL obj = 0x%x", obj ); OstTraceExt1( TRACE_NORMAL, DUP1_CDPMIF_SENDNAMEADDREQL, "CDpMif:: obj = 0x%hx", obj ); // Add Object id messageData.Append( obj ); // Add Record flags messageData.Append( PN_NAME_UNDEF/**PN_NAME_CLEARED**/ ); //fill messageData.Append( KDpPadding ); #if defined(_DEBUG) ret = #endif SendMessage( PN_NAMESERVICE, iDataPort.CreateTransactionId(), PNS_NAME_ADD_REQ, messageData ); LOG1(" <== PNS_NAME_ADD_REQ req sent, obj id: %x", obj ); OstTraceExt1( TRACE_NORMAL, DUP2_CDPMIF_SENDNAMEADDREQL, "CDpMif:: <== PNS_NAME_ADD_REQ req sent, obj id: %hx", obj ); #if defined(_DEBUG) if (KErrNone != ret ) { LOG1(" Error isc api send %d", ret ); OstTrace1( TRACE_NORMAL, DUP3_CDPMIF_SENDNAMEADDREQL, "CDpMif:: Error isc api send %d", ret ); } //no else #endif }