У меня проблемы с внедрением расширенного шестнадцатеричного значения в мой проект. Когда я набираю &H000007F0
в своем проекте Visual Basic, Visual Studio переходит и сокращает его до &H7F0
. В нормальной ситуации это было бы хорошо, но мне нужно, чтобы предыдущие 0 были включены в качестве параметра для функции в API.
Я пытался создать ее как строку Dim MastID As String = "000007F0"
, а затем преобразовать в гекс Convert.ToUInt32(MastID, 16)
, но это не сработало так, как я думал. Есть ли другие способы, которые я могу попробовать или настройки VS17, которые я могу выключить / включить, которые позволят мне получить полный &H000007F0
?
Я делаю это, чтобы попытаться подключиться к ведомому устройству на шине CAN. Я использую API, который имеет свои собственные функции для управления устройством CAN и инициализации канала CAN. Если я смогу передать расширенный идентификатор & H000007F0, то API инициализирует канал CAN с этими параметрами.
Параметры, устанавливаемые для ведомых данных:
SlaveData.BroadcastID = &H18DAA1E1
SlaveData.MasterID = &H7F0
SlaveData.SlaveID = &H7F2
SlaveData.IncrementalIdUsed = False
Используемая функция:
Public Shared Function Connect(
ByVal Handle As UInt32,
ByVal Mode As Byte,
) As Result ' Returns no errors
End Function
Анализируя шину CAN, используемый идентификатор устройства равен 7F0h, поэтому ведомое устройство не отвечает сообщением подтверждения. Однако он работает, когда я отправляю ту же функцию с расширенным главным идентификатором, когда я создаю свой собственный байтовый массив.