This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2564CSTBTBLESW:AVRCP 版本更新问题

Guru**** 2382630 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1347773/cc2564cstbtblesw-avrcp-version-update-issue

器件型号:CC2564CSTBTBLESW

尊敬的 

我正在使用您在另一个线程中提供的最新堆栈

("4111.CC2564CSTBTBLESW-v5.1.1-windows-x64-installer.exe")

我能够成功编译和加载固件。

HCI 日志仍将其显示为版本1.4。

我们正在使用 AUD API。

当我尝试降级到1.3版时、它可以正常工作。 但是、当我为版本1.5提供枚举时、我无法获得版本1.5。

我在这里连接 AUD 模块初始化。

int Initialize_Sink(unsigned int id)
{
	int                                      ret_val;
	AUD_Initialization_Info_t                InitializationInfo;
	AUD_Stream_Initialization_Info_t         InitializationInfoSNK;
	AUD_Remote_Control_Initialization_Info_t InitializationInfoAVR;
	AUD_Remote_Control_Role_Info_t           RemoteControlRoleInfo;
	AUD_Remote_Control_Role_Info_t           TargetRoleInfo;

	BluetoothStackID=id;
	AbsoluteVolumeEnabled=1;
	//VolumeChangedEventTransactionID=1;
	FWFlags.MusicStartSyncCount = 0;
	FWFlags.PrimaryPhone.AVRCPCommandSupported = TRUE;

	osTimerDef(ABS_VOLUME_PRESS_MAX, absVolume_gradMax);
	abs_Max_volumeTimerId=osTimerCreate(osTimer(ABS_VOLUME_PRESS_MAX), osTimerPeriodic, (void*) 0);

	osTimerDef(ABS_VOLUME_PRESS_MIN, absVolume_gradMin);
	abs_Min_volumeTimerId=osTimerCreate(osTimer(ABS_VOLUME_PRESS_MIN), osTimerPeriodic, (void*) 0);

	/* First, check to make sure that a valid Bluetooth Stack ID exists. */
	if(BluetoothStackID)
	{
		/* Next, check to make sure that the Audio Manager has not already*/
		/* been initialized.                                              */
		if(!Initialized)
		{
			VolumeChangedEventTransactionID = -1;
			AVRCP_VerificationTID = osTimerCreate(osTimer(AVRCP_VERIFICATION), osTimerOnce , (void*) 0);
			CheckHFP_Connection_TID= osTimerCreate(osTimer(CHECKHFP_CONNECTION), osTimerOnce , (void*) 0);
			SyncMusic_TID = osTimerCreate(osTimer(SYNC_MUSICSTATE), osTimerOnce , (void*) 0);
			AVRCP_PreviousCommand.Command = 0;
			AVRCP_PreviousCommand.MessageType = amtUnknown;



			/* Audio has not been initialized, now let's attempt to        */
			/* initialize it.                                              */
			BTPS_MemInitialize(&InitializationInfo, 0, sizeof(AUD_Initialization_Info_t));
			BTPS_MemInitialize(&InitializationInfoSNK, 0, sizeof(AUD_Stream_Initialization_Info_t));
			BTPS_MemInitialize(&InitializationInfoAVR, 0, sizeof(AUD_Remote_Control_Initialization_Info_t));
			BTPS_MemInitialize(&RemoteControlRoleInfo, 0, sizeof(AUD_Remote_Control_Role_Info_t));

			InitializationInfo.SNKInitializationInfo           = &InitializationInfoSNK;
			InitializationInfo.RemoteControlInitializationInfo = &InitializationInfoAVR;

			InitializationInfoSNK.EndpointSDPDescription       = (char *)SinkDescription;
			InitializationInfoSNK.NumberConcurrentStreams      = 1;
			InitializationInfoSNK.NumberSupportedStreamFormats = NUM_SNK_SUPPORTED_FORMATS;
			BTPS_MemCopy(InitializationInfoSNK.StreamFormat, AudioSNKSupportedFormats, sizeof(AudioSNKSupportedFormats));

			InitializationInfoAVR.ControllerRoleInfo           = &RemoteControlRoleInfo;
			InitializationInfoAVR.TargetRoleInfo               = &TargetRoleInfo;
			InitializationInfoAVR.SupportedVersion             = apvVersion1_5; //given 3 which should be corresponding to AVRCP_1.5

			RemoteControlRoleInfo.ProviderName                 = (char *)ProviderName;
			RemoteControlRoleInfo.ServiceName                  = (char *)ControllerDescription;
			RemoteControlRoleInfo.SupportedFeaturesFlags       = SDP_AVRCP_SUPPORTED_FEATURES_CONTROLLER_CATEGORY_2;

			TargetRoleInfo.ProviderName                 		= (char *)ProviderName;
			TargetRoleInfo.ServiceName                  		= (char *)ControllerDescription;
			TargetRoleInfo.SupportedFeaturesFlags       		= SDP_AVRCP_SUPPORTED_FEATURES_CONTROLLER_CATEGORY_2;


			/* Everything has been initialized, now attemp to initialize   */
			/* the Audio Manager.                                          */
			ret_val = AUD_Initialize(BluetoothStackID, &InitializationInfo, AUD_Event_Callback, 0);
			if(!ret_val){
				//				DisplayFunctionSuccess("AUD_Initialize() Sink");
			}
			else
				DisplayFunctionError("AUD_Initialize()", ret_val);
		}
		else
			ret_val = -1;
	}
	else
		ret_val = -1;

	return(ret_val);
}

您能检查一下并告诉我我们做错了什么吗?  

用于 API 调用的内部函数也会发生变化吗?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vishnu:

    我对上一个线程进行了响应。

    此致!

    罗格利奥