![]() |
|
Модераторы: Akina |
![]()
|
|
| wanderervb |
|
||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Доброе время суток!
Помогите пожалуйста, совсем замаялся с функцией настройки серийного номера USB конвертора. Необходима программка считывающая и меняющая серийный номер конвертера CP2102 Со считыванием номера нет никаких проблем, а вот поменять на другой ни как не получается. Все делаю по инструкции: Описал функцию в отдельном модуле:
Определил константы:
Программа определила количество подключенных устройств
Получил номер устройства
Получил серийный номер
А когда пытаюсь записать новый серийный номер, VB выдает сообщение, что неправильный номер аргумента или неверное назначение. Может кто писал приложения для CP210x, помогите, в чем может быть проблема? У производителя скачал даташит AN144 Это сообщение отредактировал(а) cardinal - 26.3.2008, 16:40 |
||||||||||
|
|||||||||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Модератор: wanderervb, пользуйтесь тегом "код"!
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| wanderervb |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Спасибо, непременно
|
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
У FTDI например есть своя программа для того, чтобы это сделать. Может есть такая же программа для изменения серийного номера и у CP210x? Если с помощью программы тоже не получится изменить этот номер, то может стоит защита и с твоим устройством это вообще невозможно (а возможно только со своим чипом).
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| wanderervb |
|
||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
У CP210x тоже есть такая программа, при помощи которой можно изменить серийный номер, но она не удобная для постоянного использования, вот и затеял написать программку позволяющую процесс изменения серийного номера упростить. Ссылка на даташит: Вот часть кода: Максимальная длинна строки
В процедуре чтения:
В функции:
В процедуре записи:
|
||||||||||
|
|||||||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Смотрим дефиницию, видим три аргумента. Смотрим вызов, видим 4 аргумента. Понимаем, что чего-то не понимаем. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Про три я ничего не нашел в документе, тут ИМХО все правильно. Я вот больше думаю правильно ли то, что ты говоришь, что ind = 1? То есть что ты обращаешься ко второму device!
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Я вижу дефиницию, котрая написана в самом первом посте. С какого конца не считай - аргументов три. И вижу вызов в том же посте. Там аргументов - четыре, тоже вне зависимости от направления подсчета. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| wanderervb |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
[QUOTE=cardinal,27.3.2008, 14:02]
Приношу свои извинения, - это опечатка
Обращение к нулевому устройству При записи серийного номера ind = 0 У меня затруднения с переменной SerialString2( ), хотя точно не уверен. При получении серийного номера от устройства SerialString() определена как байт Все взято из даташита
Функция, извлекающая номер из устройства
Получает первый байт серийного номера SerialString(0) и длинну номера SerialLength Хотя в даташите написано, что SerialStrin() должен получить строку Ну да ладно, - перебрав побайтно SerialStrin() , я получил действительно номер устройства. Хотя для меня непонятно, - почему в функции необходимо указывать SerialString(0) По аналогии получения номера от устройства, попытался записать свой номер. Так как функция получения номера дает байт от номера, а не всю строку, я так же для записи попробовал записать первый байт серийного номера, но все безуспешно. При записи байта, я получаю ошибку проверки Status
В случае записи всей строки получаю сообщение, что аргумент не соответствует описанию или Type mismatch Я попробовал и менять тип переменной, и длину серийного номера. Ничего не помогает. |
||||||||
|
|||||||||
| wanderervb |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Спасибо Исправлено
Но проблема осталась. |
||||
|
|||||
| Akina |
|
||||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Все правильно написано. Хоть в SerialString() передается строка, но оно у тебя определено как массив байтов. Собственно для того и существует процедура ConvertToString(), чтобы массив байтов превратить в строку. Хотите работать со строковой переменной - передавайте в функцию VARPTR на строку требуемой длины. Но должна существовать и комплементарная процедура, которая превратит строку сериального номера для присвоения в массив байтов, который можно скормить функции CP210x_SetSerialNumber
Более того, мне напрочь неясно, как может работать этот код:
На операторе присвоения он должен визжать как недорезанный поросенок, что не может присвоить значение массиву. Или по крайней мере жаловаться на несоответствие типов. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||
|
|||||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Туда не смотрел -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| wanderervb |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Спасибо Всем, заработало
Только есть небольшие затруднения с настройкой PID При записи PID его значение меняется на произвольную величину, при этом устройство не выдает сообщений об ошибках
И еще одна неприятная вещ, устройство не всегда перенастраивается. Ни как не могу понять причины. Не меняя программы, а только перезагрузив ее, устройство "смерено" меняет серийные номера (кроме PID) и другие настройки. При новом подключении начинает на каждую команду настройки, отправлять сообщение, о неверном параметре и не хочет менять настроек. Какую-то зависимость такого поведения выявить не удалось. Все уже перепроверил, в одном случае меняет настройки, в другом, нет. В даташите о таких ситуациях ничего не написано. Так как это происходит со всеми устройствами, грешу только на программу, а что в ней еще проверить, - не приложу ума |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
cyHandle поменялся? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| wanderervb |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Нет, не поменялся В начале процедуры настройки S/N, PID и т.д. , я получаю новый cyHandle |
||||
|
|||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |