OCA Учебник online                   

"Знание - сокровище, следующее за тем, кто им обладает".
Китайская пословица

Документация OCA CAPI Android

Завантажити останню версію клієнтської програми:
Версія 1.2.6 для Android 4-9
Версія 1.3.0 для Android 10+

Содержание:
Вступление
Общее описание взаимодействия программ OCA CAPI Android
Настройка компьютера центра и главной папки центра
Настройка устройства
Добавление нового устройства в центре
Номер устройства
Подготовка проекта (паспорт проекта)
Список доступных управляющих директив паспорта

Контроль работы интервьюеров средствами OCA CAPI Android
Оформление текстов в паспорте
Работа с программой OCA_CAPI_Center

Дополнение А
Политика конфиденциальности


Вступление.
OCA CAPI Android – система предназначенная для проведения опросов (интервьюирования) с помощью мобильных устройств (планшетов и смартфонов) под управлением ОС Android, версией не ниже 4.0.

OCA CAPI Android – НЕ требует наличия сервера, обслуживающего проекты, взаимодействие между центром и клиентскими устройствами происходит посредством облачных хранилищ данных. В данном руководстве в качестве примера рассматривается DropBox, но при желании можно настроить работы и через другие системы (например, GoogleDrive, Mega и т.п). Данный подход обусловлен тем, что настройка и содержание сервера – не очень простая и, часто, не дешевая услуга. Кроме того, сервер требует регулярного обслуживания, что в нашем случае не нужно.

В документации часто будут употребляться понятия «центр» и «устройство». Рассмотрим их.
Центр – ответственный за проведение исследования человек или организация. Организовывает работы по проекту, рассылает настройки проекта участникам, собирает результаты их работы.
Устройство - планшет или смартфон под управлением ОС Android, с установленной программой OCA CAPI Android,используя который интервьюеры собирают данные.
Главная папка центра – папка на стационарном компьютере, где собираются все данных, полученных в результате работы OCA CAPI Android.

Общее описание взаимодействия программ OCA CAPI Android.
Работа ведется через сервисы облачного хранения данных (в данном руководстве рассматривается вариант использования DropBox). Каждое устройство имеет некоторую локальную папку (папку на самом устройстве), где собираются все результаты работы (даже если устройства находятся вне сети Интернет). При наличии Интернета все данные из вышеупомянутой папки синхронизируются с облачных хранилищем, которое настроено таким образом, что рабочие папки всех устройств в итоге синхронизируются с одной папкой центра. Это и есть главная папка центра. Работа с этой папкой (создание и удаление проектов, сбор данных и т.п.) осуществляется с помощью программы OCA_CAPI_Center (работает под управлением Windows).

Обратим внимание на то, что все устройства под управлением Android должны иметь свой google-аккаунт для установки приложений и многих других функций (это требование Google, как разработчика Android). Google-аккаунт – это и почта в системе GMail, и доступ к DropBox и доступ к Google Play. Обратим внимание не то, что несколько устройств вполне могут иметь один google-аккаунт и, следовательно, общее пространство в DropBox. В таком случае нужно быть очень внимательными при настройках устройства, чтоб избежать конфликта данных. Также следует помнить, что в этом случае несколько интервьюеров могут иметь общий доступ к данным – могут их просматривать и удалять.

Настройка компьютера центра и главной папки центра.
Эта настройка выполняется один раз на компьютере, где будут собираться все данные, полученные в результате работы OCA CAPI Android.

1. На компьютер необходимо установить клиент DropBox. Например, отсюда: https://www.dropbox.com/ru/install

2. Создайте аккаунт в DropBox. При создании аккаунта мы советуем создает новую учетную запись (адрес в системе Gmail) так как в дальнейшем с этим аккаунтом может работать много разных людей и использовать чью-либо личную почту для этого – неудобно.

3. После запуска и регистрации видим, что иконка Dropbox (выглядит как открытая коробка) появилась в трее (в правой нижней части экрана). Далее нажимаем правой кнопкой на иконке программы в трее, выбираем в верхней части появившегося окна пункт, обозначенный изображением земного шара, нажимаем на нем мышью. В браузере откроется Домашняя страница Dropbox. Здесь, в левой части экрана нужно нажать на Файлы, а затем на Мои файлы.

4. Справа нажимаем синюю кнопку с надписью «Создать папку» и вводим название папки. Это и будет главная папка центра, именно в нее будут собираться все результаты работы устройств, именно с ней будет работать управляющая программа OCA_CAPI_Center. После этого Dropbox произведет синхронизацию и созданная папка появится на Вашем компьютере в папке Dropbox. Настройка закончена.

Теперь можно установить и запустить программу OCA_CAPI_Center, настроить ее на главную папку центра (созданную на шаге 4) и начинать работу.

Настройка устройства.
Это настройка должна быть выполнена на каждом устройстве после установки программы OCA CAPI Android.

1. Для работы многих функций (в частности GooglePlay – магазина приложений) устройство должно иметь свой Google-аккаунт (фактически, почту в системе Gmail). Подойдите к формированию имени почты ответственно, в дальнейшем, по ней будет идентифицироваться устройство, также на эту почту можно будет слать инструкции по работе и т.п. Для создания аккаунта и ассоциации устройства с ним зайдите в приложение Gmail, или GooglePlay, или «настройки устройства – учетные записи».

2. Устанавливаем OCA CAPI Android на устройство. Запускаем программу. При первом запуске будет создана рабочая папка программы (ее мы и будем синхронизировать с Dropbox). Чтоб узнать где находится папка (это стандартное хранилище данных для программ) нажмите на надписи OCA CAPI Android 6-10 раз, пока не появится закладка «Админ». На этой закладке в поле “Workdirectory” написан путь. Обычно это «основная память устройства – Android/Data/oca.oca_capi/files/oca_capi/».
ВНИМАНИЕ! При таком расположении рабочей папки, она может быть удалена вместе со всеми данными в случае удаления программы OCA CAPI Android.
Вы можете указать здесь другой путь к папке и, если он будет легален, папка будет создана, и работа будет вестись с ней. Папка, созданная в другом месте, не пострадает при удалении программы. Не рекомендуется создавать папку на карте памяти. На этой же закладке можно задать размер шрифта на устройстве (FontSize) – число от 10 до 40. Также здесь можно указать номер устройства (DeviceNumber). Это очень важный параметр – номер устройства. Обращаем внимание, что менять его лучше, используя административную программу OCA_CAPI_Center.

3. Из магазина приложений установите приложение Dropbox. Запустите его. Выберите вариант "Войти через Google" и выберите аккаунт, который Вы создали на шаге 1. На вопрос «Вы рядом со своим компьютером?» ответьте «Не сейчас». Теперь это устройство подключено к Dropbox.

4. Теперь нужно установить программу для постоянной синхронизации рабочей папки OCA CAPI Android (шаг 2) с Dropbox. Подобных программ есть много. Для примера рассмотрим "Autosync Dropbox — Dropsync". Нею можно пользоваться бесплатно, она легко находится и устанавливается через PlayMarket.

5. Настроим синхронизацию. Запускаем Dropsync, нажимаем кнопку «Подключение к Dropbox аккаунту» и выбираем аккаунт, который мы создали на шаге 1 и подключили к Dropbox на шаге 3. Теперь нажмем кнопку «Мастер создания синхронизации», затем выберем опцию «Создать свою синхронизацию». Сначала нажимаем «Папка в Dropbox». Выбираем папку, которую мы создавали на компьютере и справа вверху нажимаем на кнопку с символом папки и плюсом на ней для создания подпапки с данными нашего устройства. Назовите эту папку так, чтобы позже по ее названию вы могли понять, данные от какого устройства в ней хранятся (например, используйте в названии номер устройства). Также важно, чтобы у разных устройств эти папки имели разные названия. После создания, выбираем эту папку и нажимаем “Выбрать”. Теперь нажимаем «Локальная папка» и ищем рабочую папку OCA CAPI Android (из шага 2). Выбираем ее и нажимаем “Выбрать”. Затем выбираем Метод синхронизации — Двухсторонний. Нажимаем «Сохранить». Основные настройки закончены, можно настроить разные параметры синхронизации. Для этого заходим в настройки, выбираем "Автосинхронизация". Предлагаем следующие настройки: Интервал автосинхронизации — 1 час; Задержка перед повтором — 10 минут; ...только если уровень заряда > 0% (до полного разряда). Возвращаемся в пункт меню «Папки» и смотрим, чтобы опции «Включить автосинхронизацию» и, особенно «Двухсторонний» были включены.

6. Запускаем Dropbox на устройстве и расшариваем нашу папку данных (созданную или выбранную на шаге 5) с аккаунтом, на котором работает центр (мы его настраивали в разделе «Настройка компьютера центра»). Для этого нажимаем на три вертикальные точки справа от нашей папки, выбираем «Поделиться», вводим адрес аккаунта центра (указанные ранее на шаге 2 в разделе «Настройка компьютера центра и главной папки центра»). Права доступа регулируются при нажатии стрелки вниз справа от вводимого адреса – оставляем то, что стоит по умолчанию (при желании, можно изменять).
ВНИМАНИЕ! Если не будет прав на изменение – система будет работать некорректно.
В поле «Добавить сообщение» можно написать любой текст.

Добавление нового устройства в центре.
Это настройка должна быть выполнена после настройки каждого нового устройства.
После того как рабочая папка нового устройства расшарена с центром, нужно снова вернутся за компьютер центра и зайти в аккаунт центра в Dropbox. Для этого нажимаем правой кнопкой на иконке программы в трее, выбираем в верхней части появившегося окна пункт, обозначенный изображением земного шара, нажимаем на нем мышью. В браузере откроется Домашняя страница Dropbox. Здесь, в левой части экрана нужно нажать на "Файлы", а затем на "Общий доступ". Видим нашу расшареную папку. Нажимаем «Добавить». Слева выбираем «Мои файлы». Переносим нашу расшареную папку в нашу главную папку проекта (мы создали её в разделе «Настройка компьютера центра и главной папки центра» на шаге 4).
Настройка закончена.

Номер устройства.
Номер устройства – уникальное число от 0 до 999. Очень важно, чтоб этот номер не повторялся у разных устройств, настроенных на одну главную папку центра. Поскольку на основе этого номера генерируются ключевые номера анкет – его повторение может привести к проблемам при создании общего массива данных.
Изменение номера устройства настоятельно рекомендуется выполнять с помощью OCA_CAPI_Center. В случае если до изменения номера были собранные какие-то данные – только OCA_CAPI_Center корректно изменит их в связи с изменением номера устройства.
OCA_CAPI_Center автоматически проверяет номера устройств и предупреждает пользователя, если обнаруживает дубли.

Подготовка проекта (паспорт проекта).
Загрузка нового проекта осуществляется (как и вся административная работа) с помощью программы OCA_CAPI_Center.
Проект состоит из, как минимум, одного опросника, в виде паспорта ОСА и других, необходимых для проведения опроса файлов (например, картинок из опросника и т.п.). Каждый паспорт ОСА, должен содержать полный опросник на одном языке. Язык опросника определяется именем файла.
Ukr.dcl - украинский опросник;
Rus.dcl – русский опросник;
Eng.dcl – английский опросник;
Первый 20 признаков паспорта для OCA CAPI являются служебными, должны обязательно присутствовать в опроснике и заполняются автоматически. Первым вопросом, который увидит интервьюер, является 21 признак.
Ниже представлен кусок паспорта, - первый 20 признак для любого паспорта:

ключ (номер анкеты)
ключ (номер анкеты)
m
***
@key
@@ Название проекта
/

номер устройства
номер устройства
m
/

день начала интервью
день начала интервью
m
/

месяц начала интервью
месяц начала интервью
m
/

год начала интервью
год начала интервью
m
/

час начала интервью
час начала интервью
m
/

минуты начала интервью
минуты начала интервью
m
/

день окончания интервью
день окончания интервью
m
/

месяц окончания интервью
месяц окончания интервью
m
/

год окончания интервью
год окончания интервью
m
/

час окончания интервью
час окончания интервью
m
/

минуты окончания интервью
минуты окончания интервью
m
/

длина интервью (в секундах)
длина интервью (в секундах)
m
/

пока не используется
*
m
/

язык интервью
язык интервью
m
/

код интервьюера
код интервьюера
m
/

пока не используется
*
m
/

пока не используется
*
m
/

пока не используется
*
m
/

пока не используется
*
m
/


ВНИМАНИЕ! Первый признак в паспорте считается ключевым всегда, даже если не содержит директиву @key.

ВНИМАНИЕ! Время интервью фиксируется только если интервьюер активно работает с программой. Если просто запустить анкету и ничего не делать – через некоторое время «время интервью» перестанет увеличиваться. Таким образом, время интервью может быть меньше чем разница между временем начал и окончания интервью. Также такое возможно, если интервью было отложено, а через некоторое время работа с ним была возобновлена.

ВНИМАНИЕ! Особое внимание следует уделить директиве @@ (она всегда находится в первом признаке). Данная директива пишется ТОЛЬКО В ПЕРВОМ признаке. И после нее указывается название проекта. Название может содержать буквы и цифры. Во всех паспортах одного исследования должно быть указано одинаковое название проекта. Если директива @@ указана в первом признаке несколько раз, то названием считается строка указная в первом вхождении.
Отнеситесь к названию проекта внимательно – именно его будут видеть в списке доступные проектов интервьюеры, именно по этому названию будет определяться, содержит файл проекта данные к новому проекту или обновление к уже загруженному на устройство проекту.

Пример.
ключ (номер анкеты)
ключ (номер анкеты)
m
***
@key
@@ OCA_CAPI_PROJECT_1
@@ это уже не название проекта
/

ВНИМАНИЕ! При создании паспорта для OCA CAPI Android помните, что интервьюер будет видеть текст вопроса (вторую строку) в описании признака.

Признак «язык опросника» имеет следующую кодировку: 1 – украинский язык, 2 – русский язык, 3 – английский язык. В нем фиксируется, на каком языком было закончено интервью.

Код интервьюера - число от 1 до 8000000, вводится при каждом запуске программы OCA CAPI Android. Сделано на тот случай, если с одним и тем же устройством несколько человек работает.

Список доступных управляющих директив паспорта.
@@ - описано выше.

@key – присутствие этой директивы в признаке, определяет признак как ключевой. OCA CAPI Android игнорирует эту директиву, ключевым всегда считается первый признак. Однако @key следует указывать, так как позже, с написанным для OCA CAPI Android паспортом будет вестись работа программой OCA for Windows, а для нее данная директива очень важна.

@goto (аналогична соответствующей директиве ОСА) - управление вводом анкеты. Директива позволяет "перепрыгивать" во время ввода через несколько признаков в зависимости от того, какое вводится значение признака. Если для некоторого признака указана директива вида:
@goto c1 s1 z1 c2 s2 z2 ...
то после ввода этого признака следующим будет вводиться:
- если введено значение c1, то признак с номером s1; при этом все "пропущенные" во время ввода признаки (начиная со следующего и до признака с номером s1-1) заполняются значением z1
- если введено значение c2, то признак с номером s2; при этом все "пропущенные" во время ввода признаки (начиная со следующего и до признака с номером s2-1) заполняются значением z2
- ... и так далее (для каждой из тройки элементов c s z)
- следующий по порядку признак, если введено значение, отличное от c1, c2,
...
Если в качестве значения (c1, c2, ...) указан символ * ("звездочка"), то соответствующий переход осуществляется всегда (независимо от того, какое введено значение).
Такие переходы всегда осуществляется только вперед по анкете. Если при таком автоматическом заполнении указанное значение z не соответствует паспорту некоторого признака, то этот признак заполняется значением $ (НеОтвет). Символ $ также можно указывать в качестве значения для заполнения.

qname=X (аналогична соответствующей директиве ОСА) – где X имя признака. Позже к признаку можно обращаться по имени, заключив его в квадратные скобки.

Примеры.
E([p1],1)
#[p2]#=3
@goto 1 [r3] $

@jump X -> Y Z (аналогична соответствующей директиве ОСА) – сложные переходы по анкете. X – условие в формате ОСА, Y признак к которому нужно перейти при выполнении условия (возможны прыжки назад), Z чем прописать признаки между тем откуда прыгают и куда (при прыжках назад этот параметр игнорируется). Часто в качестве Z ставят $ - оставить вопросы без ответа.

@int – используется только в метрических шкалах. Запрещает ввод в качестве ответа не целого числа.

@r A B – используется в метрических признаках. Указывает интервал, в котором должен находиться ответ. А – нижняя граница интервала, Б – верхняя. Можно задать несколько интервалов в одной директиве в виде нескольких пар значений.

Например
@r 10 20 50 60
Разрешает ввод в качестве ответа числе в диапазон от 10 до 20 (включительно) или в диапазоне от 50 до 60 (включительно).

@txt X – тег работает в признаках с НЕ метрической шкалой. X - необязательный параметр и может отсутствовать. X указывает код альтернативы, рядом с которой будет выведено поле для ввода текста. Если X НЕ указать (записать как @txt), то вопрос будет считаться текстовым, а значит будет выводиться только первая альтернатива (автоматически отмечается как выбранная) и поле для ввода текста.

@$mintextlen=A – тег задает минимальную длину текста, который должен быть введен в ответе на вопрос. Обычно используется в открытых вопросах.

@$pic(X) – данный тег пишется не в комментариях к признаку, а в тексте вопроса, альтернативах или инструкциях (директива @%psy_instruction). При выводе, будет заменен на картинку. X – это полное имя с расширением картинки маленькими буквами (помните, что в Android регистр букв в именах файлов имеет значение). Файл картинки должен находиться в папке проекта (он должен быть загружен вместе с паспортами проекта). Поддерживаются форматы jpg и png.

Пример признака с директивой.

Знание марки
Посмотрите на эту картинку @$pic(pic1.jpg) и скажите, знаете ли вы эту марку сока?
N
1 Знаю
2 Не знаю
/

@$rand – помеченные этой директивой признаки случайным образом переставляются между собой (меняется порядок, в котором они выводятся интервьюеру в опроснике). Это бывает необходимо, если у создателя опросника есть предположение, что порядок некоторых вопросов может влиять на ответы. В случае, когда подобных групп вопросов несколько и перемешивать вопросы необходимо в каждой из групп по отдельности, можно использовать директивы @$rand1 @$rand2 @$rand3 и так далее до @$rand30. В этом случае, перемешивание будет выполнено отдельно в каждой из групп, помеченный одинаковой директивой.

@$rand_alt А – в признаке, помеченном этой директивой, альтернативы переставляются в случайном порядке. Параметр А является необязательным (может отсутствовать). Если он есть – перемешиваются только альтернативы, имеющий код меньше А. Сделано для того, чтоб даже при перемешивании служебные альтернативы, а они обычно идут в конце списка и имеют максимальные коды, оставались на своих местах.

@$skip X – в случае выполнения условия Х (условие в формате ОСА, как для фильтров) признак, в котором указан этот тег, пропускается (не отображается). В признаке остается ответ который был в нем ранее. Обычно это НеОтвет. Обратите внимание, что это не пропуск признака, который происходит при @jump или @goto, переход на признак происходит, и управляющие директивы в признаке отрабатываются.

@$skipdel X – директива работает аналогично предыдущей. Отличие в том, что при выполнении этой директивы в признак, где она выполнилась, будет записан НеОтвет. Это удобно, если вы хотите пропускать не технические вопросы, заполняемые вами автоматически, например, с помощью @$setauto, а вопросы, которые могу задаваться респондентам. В случае с предыдущей директивой, если в признак был записан какой-то ответ, а позже, в результате исправлений в анкету, он должен будет пропускаться, то ранее записанный ответ в нем останется. В случае использования этой директивы, он будет затерт НеОтветом.

@%psy_instruction и @%/psy_instruction – каждая из этих директив пишется в отдельной строке. Текст, находящийся между ними является инструкцией и будет выведен ПЕРЕД текстом вопроса. Там образом можно увеличить длину вопроса.

@$putvar A -> @$varX = B - в случае выполнения условия A (условие в формате ОСА), записывает в одну из переменных @var1, @var2, @var3 и так далее до @var100, значение B.
В качестве B можно указать @$ffile(X,Y). В этом случае значение B будет равно строчке номер X из файла с именем Y. Y - файл в формате ANSI должен находиться в папке с паспортом (загружается средствами OCA_CAPI_center вместе с другими файлами проекта). В качестве X возможна запись вида #31# - значит, что будет взята строка, с номером, соответствующим значению признака 31.
В качестве B можно указать @$getval(X) В этом случае значение B будет равно значению признака X.
В качестве B можно указать @$gettxt(X) В этом случае значение B будет равно значению текстового комментария к вопросу X.
Директива обрабатывается при уходе из признака, где она записана.

@$var1 или @$var2 и т.д. пишется в тексте вопроса, тексте инструкций или альтернативах. Если переменная задана – выводится ее значение. Таким образом, можно менять тексты вопросов по ходу анкеты.

@$hide X -> Y – в случае выполнения условия Х (условие в формате ОСА), при выводе кодировочной схемы будет скрыта альтернатива с кодом Y. В качестве Y можно указать коды нескольких альтернатив через пробел или дефис (через дефис, если нужно скрыть альтернативы с идущими подряд кодами).

@$optionoff X -> Y – в случае выполнения условия Х (условие в формате ОСА), при выводе кодировочной схемы будет скрыта возможность выбора альтернативы с кодом Y. В качестве Y можно указать коды нескольких альтернатив через пробел или дефис (через дефис, если нужно скрыть альтернативы с идущими подряд кодами). Это удобно, когда требуются инструкции в середине кодировочного списка. Директива не работает в табличных вопросах (@$tableview)

@$addmetr А Б – работает исключительно в метрических шкалах. Используется для добавления в этот тип шкал «вариантов ответа». Обычно это служебные альтернативы - «Трудно сказать», «Не знаю» и т.п. Если директива есть, то под полем для ввода ответа будет выведена строка состоящая из кода А и текста Б. при нажатии на строку в поле ввода будет автоматически скопирован код А. Может указать до двух таких специальных кодов (каждый в отдельной директиве).

@$alert X -> Y – директива для дополнительного контроля вводимых данных. Если выполняется условие X (условие в формате ОСА, как для фильтров) на экран выводится сообщение Y и переход на следующий признак не происходит.

@$confirm X -> Y – действует аналогично вышеописанной директиве @$alert. Разница в том, что сообщение выводится в окне с двумя кнопками («Да» и «Нет»). При нажатии на кнопку «Да» осуществляется переход к следующему вопросу.

@%psy_end – признак, помеченный этим тегом, будет считаться последним в опроснике. Интервьюер после его заполнения получит предложение закончить заполнение анкеты.

@$setauto A : X -> С - при переходе на признак, отмеченный этой директивой и выполнении условия A, в признак C будет записано значение, определенное в ключе X. Запись числа происходит, только если признак C – метрический, имеет номер более 21 и содержит НеОтвет. Таким образом, повторно записать что-либо в признак нельзя. Запись возможна в признак содержащий директиву вызывавшую запись. Также этот признак можно пропустить с помощью @$skip.
Директива обрабатывается сразу при попадании на признак, где она записана.
Ключ Х может иметь следующие значения:

 rand A B – будет записано случайное число в диапазоне от A до B включительно.

Пример.
@$setauto 1=1 : rand 1 5 -> [z1]
В примере в признак с именем z1 будет записано случайное число в диапазоне от 1 до 5. Запись будет выполнена в любом случае (условие 1=1 всегда истинно).

 day / month / year / hour / min / sec – текущий день / месяц/ год / час / минуты / секунды.

 calc A – будут записаны результаты вычисления выражения A (в формате ОСА).

Пример 1.
@$setauto #21#=1 : calc $ -> 22
В примере, если признак 21 равен 1, то в признак 22 будет записан НеОтвет.

Пример 2.
@$setauto #21#=1 : calc abs(#21#+#22#) -> 23
В примере, если признак 21 равен 1, то в признак 23 будет записан модуль суммы значений признаков 21 и 22.

 setval X - в признак будет записано значение переменной Х, если оно может быть интерпретировано как число. Под переменной подразумеваются переменные типа @$var задаваемые с помощью директивы @$putvar.

 settxt X - в текстовый комментарий к признаку будет записано значение переменной Х, если оно может быть интерпретировано как число. Под переменной подразумеваются переменные типа @$var задаваемые с помощью директивы @$putvar.

 lensec – будет запущен секундомер. В момент достижения признака С в него будет записано количество секунд прошедших с момента запуска секундомера. При запуске секундомера в признак С будет записан 0, после остановки секундомера - соответствующее значение. Таким образом повторная запись при, например, просмотре анкеты, невозможна, зафиксировано будет время потраченное на заполнение анкеты при первом прохождении. Данный ключ позволяет замерять время потраченное интервьюером на заполнение определенных блоков анкеты. Ели анкета была отложена при запущенном секундомере, его работа автоматически возобновится. Обратите внимание, что одновременно может работать только один секундомер, появление второго отключит первый без фиксации результатов его работы.

Пример.
@$setauto 1=1 : lensec -> 50
В примере запускается секундомер для замера времени, потраченного на прохождение части анкеты от текущего признака, до признака номер 50 (время потрвченное на признак 50 уже НЕ учитывается).

 gpslatt или gpslong – будут записаны координаты GPS (широта или долгота соответственно). Также координаты пишутся в текстовые замечания. В случае невозможности получить координаты – выдается соответствующее предупреждение.

@$gpsreq - данная директива включает режим обязательной фиксации GPS координат (способ их фиксации описан выше). В случае попадания на признак, отмеченный этой директивой, начиная с него и далее, невозможно будет пропустить автозаполнение координат GPS.

@$start_record – при переходе на признак, отмеченный этой директивой, программа начнет фоновую аудиозапись. Если устройство не снабжено микрофоном или запись запрещена – будет выдана ошибка. Запись закончится при окончании или откладывании интервью (при возобновлении работы над анкетой запись возобновиться), или при переходе на признак отмеченный директивой @$end_record. Файл, содержащий запись, в качестве имени имеет номер анкеты к которому через символ _ приписано число от 1 и более (в зависимости от количества записей). Более одной записи может возникнуть, если интервью откладывалось во время аудиозаписи. После возобновления работы аудиозапись возобновиться автоматически, но уже в другой файл. Также в одной анкете можно несколько раз использовать теги @$start_record и @$end_record, записывая разные фрагменты интервью.
ВНИМАНИЕ! Аудиозаписи занимают немало места и могут быстро заполнить память вашего устройства. Аудио-файлы имеют расширение aac и формат, зависящий от версии Android (обычно это AdvancedAudioCoding). Этот формат часто НЕ может быть прочитан штатными кодеками Windows и требует для прослушивания установки дополнительных программ.

@$end_record – см. предыдущую директиву.

@$rand_record А В – при переходе на признак, отмеченный этой директивой, программа выберет случайным образом признак в диапазоне от А до В (включительно) и при переходе на него, или признак с болем высоким номером (если выбранный будет пропущен, например, из-за переходов) будет автоматически включена аудиозапись интервью, которая продлится две минуты. Файл с записью, будет иметь имя, строящееся по правилам аналогичным для @$start_record, но в качестве последнего символа имени файла, будет содержать букву r.

Пример.
@$rand_record 25 30
В примере, запись начнется где-то между 25 и 30 признаками. Будьте внимательны, разные команды управления аудиозаписями могут конфликтовать друг с другом. Правила создания файлов с записями аналогичны тем, что описаны в директиве @$start_record. Единственное отличие – если анкету будет отложена, при возвращении такая запись продолжена не будет. Также не может быть создано более одной записи с помощью этой директивы (даже если на признак содержащий описываемую директиву попасть во время интервью несколько раз).

@$answer_record - при попадании на признак, отмеченный этой директивой автоматически включается аудио-запись, при уходе с признака – выключается. Позволяет записать звуковой ответ на конкретный вопрос. Файл с записью, будет состоять из номера анкеты к которому через символ q приписан номер признака, для которого велась запись. Через символ _ будет приписано число от 1 и более (в зависимости от количества записей, каждое попадание на признак порождает новую запись).
ВНИМАНИЕ! Остерегайтесь конфликтов с вышеуказанными директивами. Одновременно не может вестись более одной записи.

@$tableview_a и @$tableview_b – все признаки идущие подряд и отмеченные одной и той же из указанных директив будут выведены на одном экране в виде таблицы. Строками таблицы будут вопросы (они должны иметь одинаковый тип шкалы и кодировочную схему). Столбцами – варианты ответа (берутся из первого вопроса на который попал интервьюер). В качестве вопроса – используется инструкция (см. @%psy_instruction ). Две директивы необходимы, если подряд идут две таких таблицы. Можно совершать прыжки «в середину таблицы» или пропускать часть вопросов, в таблице используя @$skip.
ВНИМАНИЕ! Ответы в таблице сохраняются последовательно, также последовательно отрабатываются управляющие директивы @goto и @jump. Директива @txt в таблице может использоваться только без параметра (когда выводится текстовое поле и только первая альтернатива).
ВНИМАНИЕ! Если из-за управляющих директив @goto и @jump возможны попадание «в середину таблицы» опишите инструкции во всех возможных точках входа.
Также не рекомендуется делать табличный вопрос последним в анкете.

Пример паспорта.
Первая таблица - вопрос 1
Это первый вопрос в первой таблице. Хотите ответить?
n
1 Да
2 Нет
***
@$tableview_a
@%psy_instruction
Моя первая таблица с вопросами
@%/psy_instruction
/
Первая таблица - вопрос 2
Это второй вопрос в первой таблице. Хотите ответить?
n
1 Да
2 Не
***
@$tableview_a
/
Вторая таблица. Вопрос 1
Это первый вопрос во второй таблице. Укажите свой возраст
m
***
@$addmetr 999 Не скажу
@$tableview_b
@%psy_instruction
Вторая таблица содержит метрические шкалы. Будут выведены поля для записи цифр
@%/psy_instruction
/
Вторая таблица. Вопрос 2
Это второй вопрос во второй таблице. Укажите возраст своего кота
m
***
@$addmetr 99 Нет кота
@$tableview_b
/
Третья таблица - вопрос 1
Это первый вопрос в третьей таблице. Укажите свое имя
n
1 Запишите
***
@txt
@$tableview_a
@%psy_instruction
Моя третья таблица. Состоит из открытых вопросов.
@%/psy_instruction
/
Третья таблица - вопрос 2
Это второй вопрос в третьей таблице. Укажите свою фамилию
n
1 Запишите
***
@txt
@$tableview_a
/

@$no_return - начиная с признака отмеченного этой директивой и далее, будет запрещено возвращаться назад по анкете.
ВНИМАНИЕ! Это заблокирует возможность удалять начатые анкеты (удалить анкету можно только находясь на первом вопросе).

@$backgroundstyle X - при попадании на признак, отмеченный этой директивой, при отображении вопросов анкеты используется фон описанный как X, где X - стиль фона в формате Html.

Пример 1.
@$backgroundstyle #183442
В качестве фона устанавливается цвет #183442

Пример 2.
@$backgroundstyle url(1.jpg) center no-repeat fixed
В качестве фона устанавливается картинка с именем 1.jpg (должна загружаться OCA_CAPI_Center вместе с паспортом проекта)

Пример 3.
@$backgroundstyle
Отключается фон, если он был указан ранее

@$photo - если в признаке указана данная директива, при попадании на этот вопрос у интервьюера появится вкладка «Фото». Перейдя на нее, интервьюер может сделать фото, используя камеру устройства и увидеть ранее сделанное для этого признака фото (если есть). Фото сохраняются в формате JPEG, в файлах с именем XqY.jpg. Где X – номер анкеты, а Y – номер признака к которому сделано фото. К одному признаку может быть сохранено одно фото (новые фото затирают старые). Директива не работает в табличных вопросах (@$tableview_a и @$tableview_b).
ВНИМАНИЕ! В ряде версий Android сделанное фото дополнительно будет сохранено на устройстве в папке для картинок. Необходимо хотя бы изредка чистить эту папку.

@$photoreq - директива работает аналогично предыдущей за исключением того, что перейти на следующий признак нельзя, если не сделано фото.

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

1. Контроль длинны интервью. Слишком короткие и чрезмерно длинные интервью – подозрительны. Длина интервью в секундах автоматически фиксируется в признаке номер 13. При этом программа отслеживает активность интервьюера – если просто запустить анкету и ничего не делать, через некоторое время счетчик времени остановится.

2. Часто бывает полезно проконтролировать время, затраченное на заполнение некого блока анкеты. Например, группу сложных вопросов, которые интервьюер может захотеть «пропустить», заполнив на свое усмотрение, с целью упростить себе работу. Контроль времени заполнения разных частей анкеты возможен с помощью директивы @$setauto с ключом lensec.

3. Аудиозапись интервью дает возможность прослушать как проходило интервью. Запись всего интервью или его частей возможна с помощью директив @$start_record и @$end_record. Запись включается и выключается незаметно для интервьюера. Помните, что полная запись зачастую требует согласия респондента.

4. Поскольку прослушивание полных записей интервью – сложная и долгая процедура, альтернативным видом подобного контроля является запись случайного небольшого фрагмента интервью. Сделать это можно с помощью директивы @$rand_record. Такая запись обычно не требует получения согласия от респондента, ее можно быстро прослушать, а то что интервьюер не знает в какой именно момент она включится, исключает возможность постановки.

5. Контроль местонахождения интервьюера в момент опроса. Фиксация координат в системе GPS выполняется директивой @$setauto с ключами gpslatt или gpslong. В дальнейшем эти координаты могут быть легко экспортированы средствами OCA for Windows (версия не ниже 6.0.1) в Google-карты. И хотя зафиксировать GPS-координаты не всегда возможно по техническим причинам, в большинстве случаев использование такого подхода позволяет понять находился ли интервьюер, в момент проведения опроса, в нужном районе. Если геолокация отключена, интервьюеру будет предложено включить ее, автоматически включать геолокацию невозможно.

6. Использование директив @$alert и @$confirm позволяет контролировать процесс заполнения анкеты, избегать ошибок ввода и нелогичности ответов.

7. Использование директив @jump, @goto и @$skip дает возможность управлять передвижением по анкете – пропускать, если это необходимо какие-то вопросы или блоки вопросов.

Оформление текстов в паспорте.
В тексте вопроса, альтернатив, текстах, указанных между директив @%psy_instruction и @%/psy_instruction можно использовать html-теги для «раскрашивания».
Рассмотрим некоторые примеры.
Текст написанный между <b> и </b> будет выделен жирным.
Текст написанный между <u> и </u> будет подчеркнут.
Текст написанный между <font color=red> и </font> будет написан красным.

Пример.
Оформления вопроса
Это <b>жирный</b> текст
n
1 Это <font color=red> красный </font>текст
***
@%psy_instruction
Этот текст <u>подчеркнут</u>
@%/psy_instruction
/

Работа с программой OCA_CAPI_Center.
Данная программа работает под управлением ОС Windows, находится на компьютере, содержащем главную папку центра, и предназначена для работы с упомянутой папкой.

ВНИМАНИЕ! Настоятельно НЕ рекомендуем ничего не менять в главной папке центра штатными средствами Windows. Вся работа с данной папкой должна осуществляться исключительно с помощью программы OCA_CAPI_Center.

При первом запуске программа OCA_CAPI_Center попросит указать главную папку центра (в дальнейшем можно будем изменить путь к папке). Для этого перейдите на вкладку «Настроить» и используя кнопку «Изменить» выберите необходимую папку.

ВНИМАНИЕ! Если по каким-либо причинам у вас на компьютере находится несколько главных папок центра - заведите отдельную копию OCA_CAPI_Center для работы с каждой из них.

Дополнение А.
ВНИМАНИЕ! Описанные ниже функции являются старыми разработками, дублирующими более новые подходы к реализации тех или иных задач в программе OCA CAPI Android. Их корректная работа НЕ гарантируется. Тем не менее, возможны ситуации, когда их использование необходимо.

Управляющие файлы OCA CAPI Android.
ВНИМАНИЕ! Не работает в версиях старше 1.1.4.
Это файлы, содержащие специальные команды, позволяющие менять настройки программы OCA_CAPI. Именно их центр рассылает устройствам. Такой файл имеет расширение oca_capi.
Например: Project1 .oca_capi

Обратите внимание на то, что регистр букв в названиях файлов важен для Android.Пишите расширение файла обязательно маленькими буквами! При нажатии на файле с таким расширением на устройстве где установлена OCA_CAPI_Android, программа автоматически запустится и обработает его.
Обычно управляющий файл высылается центром в виде присоединенного файла через электронную почту. Если на устройстве для коммуникации с центром используется программа Gmail, то при получении письма с управляющим файлом, достаточно нажать на нем (не загружая на устройство), автоматически запуститься программа OCA CAPI и файл будет обработан.

ВНИМАНИЕ! Для корректной обработки управляющего файла необходимо чтоб программа OCA_CAPI_Android при запуске файла НЕ была запущена. В противном случае файл обработан не будет (поскольку он может содержать команды конфигурации программы). При корректной обработке управляющего файла, в автоматически запущенной программе появится и будет автоматически активирована закладка «Лог» и выведен список изменений, сделанных управляющим файлом. Если этого не произошло то, скорее всего, программа уже была запущена до активации файла. В этом случае выйдите из программы OCA_CAPI_Android, используя соответствующую функцию, и запустите управляющий файл еще раз.

ВНИМАНИЕ! В некоторых случая обработка управляющего файла может занимать минуту и более, при это на экран программы выводятся сообщения о проделанной работе. В это время лучше не нажимать и подождать пока не появится сообщение о том, что можно приступать к работе.

Управляющий файл – текстовый файл, где каждая строка может содержать 1 команду. Он может быть создан любым текстовым редактором, поддерживающим сохранение в формате «Просто текст» (англ. «Plaintext»). Например, редактором Блокнот (англ. «NotePad»), присутствующим в любой версии Windows. Не забудьте проверить и, если нужно, изменить расширение файла, после работы с «Блокнотом» так как по умолчанию он создает файлы с расширением txt.
Существуют следующие команды:
setdir=А – устанавливает рабочую папку для программы. А – полный путь к папке. Если папки нет, то она будет создана.Помните, формат записи пути в системе Andriod отличается от формата записи пути в ОС Windows.
setmail=А – устанавливает адрес электронной почты (по умолчанию), куда будут присылаться результаты работы. А – полный адрес электронной почты. Это и естьадрес почты центра, куда будут собираться результаты работы устройств.
setnum=А - устанавливает номер устройства. А – число от 0 до 999 (включительно). Данный параметр НЕ должен повторяться на устройствах, участвующих в одном проекте. На основе этого параметра генерируются ключевые признаки для анкет и происходит идентификация присланных результатов работы. setfont=А – устанавливает размер шрифта в программе. А – число от 20 до 40 (включительно).
add=А – загружает на устройство новый проект или заменяет имеющийся (при совпадении у загружаемого и существующего имени). А – прямая ссылка на скачивание файла проекта. Таких команд может быть несколько, но если при загрузке возникнут ошибки, то обработка всех команд будет остановлена.
del=A – удаляется с устройства проекта с именем А (имя задается тегом @@, описывается ниже). Будьте осторожны, удаляется проект и все относящиеся к нему файлы, включая результаты работы. Удаляйте только те проекты, результаты которых уже полностью собраны центром и не больше не понадобятся. Кроме того, это единственная возможность полностью удалиться проект на устройстве, не используя сторонних программ. Таких команд может быть несколько.

Политика конфиденциальности.
Раздел сделан для выполнения требований Google Play.
Поскольку данная программа сочетает в себе механизмы для интервьюирования и контроля за работой интервьюера она по возможности использует фоновую запись, определение местоположения, фиксацию времени и т.п.

n