Искать только Soft (или Hard) ключи

Как настроить API на поиск только только софтверных (или только хардверных) ключей.
Понятно, что функцией GrdSetFindMode().
Но каким параметром лучше пользоваться? Моделью или интерфейсом? Или и тем и другим?

Re: Искать только Soft (или Hard) ключи

Здравствуйте.

Luck пишет:

Как настроить API на поиск только только софтверных (или только хардверных) ключей.
Понятно, что функцией GrdSetFindMode().
Но каким параметром лучше пользоваться? Моделью или интерфейсом? Или и тем и другим?

Для SP-ключей лучше пользоваться интерфейсом (GrdFMI_SP).

Re: Искать только Soft (или Hard) ключи

Спасибо.

А как наоборот, определить, является ли текущий ключ GuardantSP?

Если через GrdGetInfo(), то, видимо, также лучше пользоваться интерфейсом?

А если через GrdFind(), то, похоже, вариантов нет - придется пользоваться моделью?

Re: Искать только Soft (или Hard) ключи

Luck пишет:

Если через GrdGetInfo(), то, видимо, также лучше пользоваться интерфейсом?
А если через GrdFind(), то, похоже, вариантов нет - придется пользоваться моделью?

Да, все верно.

Re: Искать только Soft (или Hard) ключи

и я решу свою проблему теперь так

Re: Искать только Soft (или Hard) ключи

Антон Тихиенко пишет:

Для SP-ключей лучше пользоваться интерфейсом (GrdFMI_SP).

Все было сделано в соответствии с этими рекомендациями.
Но пришлось поднять эту старую тему.

В нашей программе пользователь может настроить: искать локальные и/или сетевые ключи, искать железные и/или софтверные ключи.
Недавно обнаружилось, что программа ищет ключи не совсем корректно. Чтобы разобраться, я написал простую тестовую программу, которая пробует различные режимы поиска ключа.
На компе установлен один ключ Guardant: SP Net, запущен сервер GLDS. Тестовая прога запускается на этом же компе.

Полный отчет программы привожу в конце этого сообщения (к сожалению, каты не поддерживаются на этом форуме). Понятно, что анализировать эту простыню не очень приятно, поэтому обращу внимание на отдельные ее строки.

Для поиска хардверных и/или софтверных ключей было рекомендовано пользоваться Интерфейсом ключа, то есть константами FMI. В качестве модели ключа, видимо предполагалось использовать FMM_ALL (это 0)

Выберем строчки с FMM_ALL:

 2 {           FMR_Remote } { FMI_SP          } { FMM_ALL }   Plug not found!
11 { FMR_Local            } { FMI_SP          } { FMM_ALL }  Found 1 plugs
20 { FMR_Local FMR_Remote } { FMI_SP          } { FMM_ALL }  Found 1 plugs

 8 {           FMR_Remote } { FMI_ALL         } { FMM_ALL }  Found 1 plugs
17 { FMR_Local            } { FMI_ALL         } { FMM_ALL }  Found 1 plugs
26 { FMR_Local FMR_Remote } { FMI_ALL         } { FMM_ALL }  Found 2 plugs

 5 {           FMR_Remote } { FMI_LPT FMI_USB } { FMM_ALL }  Found 1 plugs
14 { FMR_Local            } { FMI_LPT FMI_USB } { FMM_ALL }   Plug not found!
23 { FMR_Local FMR_Remote } { FMI_LPT FMI_USB } { FMM_ALL }  Found 1 plugs

Видно, что использование FMI_ констант не позволяет нам управлять поиском хардверных и/или софтверных ключей.

Особо хочу обратить внимание на эти две пары строчек:

11 { FMR_Local            } { FMI_SP          } { FMM_ALL }  Found 1 plugs
14 { FMR_Local            } { FMI_LPT FMI_USB } { FMM_ALL }   Plug not found!

 2 {           FMR_Remote } { FMI_SP          } { FMM_ALL }   Plug not found!
 5 {           FMR_Remote } { FMI_LPT FMI_USB } { FMM_ALL }  Found 1 plugs

В режиме FMR_Local поиск работает нормально: API находит ключ SP, когда его просят, и не находит его, когда не просят. В режиме FMR_Remote все наоборот!


Может быть, все-таки, правильнее пользоваться Моделью ключа (константами FMM_), а в качестве интерфейса использовать FMI_ALL (0) ?

 6 {           FMR_Remote } { FMI_ALL         } { FMM_GSP }  Found 1 plugs
15 { FMR_Local            } { FMI_ALL         } { FMM_GSP }  Found 1 plugs
24 { FMR_Local FMR_Remote } { FMI_ALL         } { FMM_GSP }  Found 2 plugs

 7 {           FMR_Remote } { FMI_ALL         } { FMM_GS3S}   Plug not found!
16 { FMR_Local            } { FMI_ALL         } { FMM_GS3S}   Plug not found!
25 { FMR_Local FMR_Remote } { FMI_ALL         } { FMM_GS3S}   Plug not found!

 8 {           FMR_Remote } { FMI_ALL         } { FMM_ALL }  Found 1 plugs
17 { FMR_Local            } { FMI_ALL         } { FMM_ALL }  Found 1 plugs
26 { FMR_Local FMR_Remote } { FMI_ALL         } { FMM_ALL }  Found 2 plugs

Вроде, должно работать?

Еще забавно, что в режиме Local+Remote один ключ обнаруживается дважды.

Полный отчет тестовой программы:

 0 {           FMR_Remote } { FMI_SP          } { FMM_GSP }   Plug not found!
 1 {           FMR_Remote } { FMI_SP          } { FMM_GS3S}   Plug not found!
 2 {           FMR_Remote } { FMI_SP          } { FMM_ALL }   Plug not found!
 3 {           FMR_Remote } { FMI_LPT FMI_USB } { FMM_GSP }  Found 1 plugs
 4 {           FMR_Remote } { FMI_LPT FMI_USB } { FMM_GS3S}   Plug not found!
 5 {           FMR_Remote } { FMI_LPT FMI_USB } { FMM_ALL }  Found 1 plugs
 6 {           FMR_Remote } { FMI_ALL         } { FMM_GSP }  Found 1 plugs
 7 {           FMR_Remote } { FMI_ALL         } { FMM_GS3S}   Plug not found!
 8 {           FMR_Remote } { FMI_ALL         } { FMM_ALL }  Found 1 plugs
 9 { FMR_Local            } { FMI_SP          } { FMM_GSP }  Found 1 plugs
10 { FMR_Local            } { FMI_SP          } { FMM_GS3S}   Plug not found!
11 { FMR_Local            } { FMI_SP          } { FMM_ALL }  Found 1 plugs
12 { FMR_Local            } { FMI_LPT FMI_USB } { FMM_GSP }   Plug not found!
13 { FMR_Local            } { FMI_LPT FMI_USB } { FMM_GS3S}   Plug not found!
14 { FMR_Local            } { FMI_LPT FMI_USB } { FMM_ALL }   Plug not found!
15 { FMR_Local            } { FMI_ALL         } { FMM_GSP }  Found 1 plugs
16 { FMR_Local            } { FMI_ALL         } { FMM_GS3S}   Plug not found!
17 { FMR_Local            } { FMI_ALL         } { FMM_ALL }  Found 1 plugs
18 { FMR_Local FMR_Remote } { FMI_SP          } { FMM_GSP }  Found 1 plugs
19 { FMR_Local FMR_Remote } { FMI_SP          } { FMM_GS3S}   Plug not found!
20 { FMR_Local FMR_Remote } { FMI_SP          } { FMM_ALL }  Found 1 plugs
21 { FMR_Local FMR_Remote } { FMI_LPT FMI_USB } { FMM_GSP }  Found 1 plugs
22 { FMR_Local FMR_Remote } { FMI_LPT FMI_USB } { FMM_GS3S}   Plug not found!
23 { FMR_Local FMR_Remote } { FMI_LPT FMI_USB } { FMM_ALL }  Found 1 plugs
24 { FMR_Local FMR_Remote } { FMI_ALL         } { FMM_GSP }  Found 2 plugs
25 { FMR_Local FMR_Remote } { FMI_ALL         } { FMM_GS3S}   Plug not found!
26 { FMR_Local FMR_Remote } { FMI_ALL         } { FMM_ALL }  Found 2 plugs

Re: Искать только Soft (или Hard) ключи

Здравствуйте!
Действительно, если искать ключ Guardant SP Net по интерфейсу проявляется ошибка при поиске. Спасибо, Вам за обратную связь. Разработчики взяли в работу этот недочёт.
На текущий момент мы рекомендуем Вам искать ключ по модели.

Re: Искать только Soft (или Hard) ключи

Спасибо.

А эта ошибка - она на уровне драйвера, или АПИ? В смысле, для ее исправления пользователю будет достаточно обновить драйвер, или же нам нужно будет пересобирать приложения с новым АПИ?

И в какие, примерно, сроки будет исправлена эта ошибка?

Re: Искать только Soft (или Hard) ключи

Здравствуйте!
Это проблема на уровне АПИ. Будет исправлено в Guardant SDK 7 Update 2.
На нашем портале в разделе новости будет анонсирован его выход https://www.guardant.ru/press-center/news/