Ссылка пространства пользователя IOHIDDevice.h
IOHIDDevice определяет объект Human Interface Device (HID), взаимодействующий с объектом IOHIDDevicePlugIn, обычно отображающимся на объект в ядре. IOHIDDevice используется для передачи с единственным устройством HID, чтобы получить или установить свойства устройства, значения элемента и отчеты. IOHIDDevice является также объектом CFType, и как таковой соответствует всем соглашениям, ожидал такой объект.
Эта документация предполагает, что у Вас есть основное понимание материала, содержавшегося в Для определений терминов Набора I/O, использованных в этой документации, таких как соответствие словаря, семьи и драйвера, см. обзор условий Набора I/O и понятий n «Доступ к устройствам и глава» Набора I/O Доступа к Аппаратным средствам Из Приложений.
Эта документация также предполагает, что Вы читали. Рассмотрите документацию перед использованием этой ссылки.
Вся информация, описанная в этом документе, содержится в заголовочном файле IOHIDDevice.h
найденный в /System/Library/Frameworks/IOKit.framework/Headers/hid/IOHIDDevice.h
.
Включенные заголовки
<CoreFoundation/CoreFoundation.h>
<IOKit/hid/IOHIDBase.h>
-
Связь завершений с устройством HID.
Объявление
Objective C
IOReturn IOHIDDeviceClose ( IOHIDDeviceRef device, IOOptionBits options );
Параметры
device
Ссылка на IOHIDDevice.
options
Биты опции, которые будут отправлены вниз в устройство.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Это закрывает ссылку между задачей клиента и существующим устройством.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Функция удобства, сканирующая элементы Набора Приложения, чтобы видеть, соответствует ли она предоставленному usagePage и использованию.
Объявление
Objective C
Boolean IOHIDDeviceConformsTo ( IOHIDDeviceRef device, uint32_t usagePage, uint32_t usage );
Параметры
device
Ссылка на IOHIDDevice.
usagePage
Страница использования устройства
usage
Использование устройства
Возвращаемое значение
Если устройство соответствует предоставленному использованию, возвращает TRUE.
Обсуждение
Примеры пар использований Набора Приложения:
usagePage = kHIDPage_GenericDesktop
использование = kHIDUsage_GD_Mouse
или
usagePage = kHIDPage_GenericDesktop
использование = kHIDUsage_GD_Keyboard
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Получает элементы HID, соответствующие критерии, содержавшиеся в соответствующем словаре.
Объявление
Objective C
CFArrayRef IOHIDDeviceCopyMatchingElements ( IOHIDDeviceRef device, CFDictionaryRef matching, IOOptionBits options );
Параметры
device
Ссылка на IOHIDDevice.
matching
Критерии соответствия элемента CFDictionaryRef containg.
options
Зарезервированный для будущего использования.
Возвращаемое значение
Возвраты CFArrayRef, содержащий многократный объект IOHIDElement.
Обсуждение
Соответствующие ключи снабжаются префиксом kIOHIDElement и объявляются в <IOKit/hid/IOHIDKeys.h>. Передача словаря NULL приведет ко всем возвращаемым элементам устройства.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Копирует значения для многократных элементов.
Объявление
Objective C
IOReturn IOHIDDeviceCopyValueMultiple ( IOHIDDeviceRef device, CFArrayRef elements, CFDictionaryRef *pMultiple );
Параметры
device
Ссылка на IOHIDDevice.
elements
CFArrayRef, содержащий многократный IOHIDElementRefs, значения которого должны быть получены.
pMultiple
Указатель на CFDictionaryRef, где ключи являются предоставленными элементами и значениями, является требуемыми значениями.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Этот метод ведет себя синхронно, и возвратитесь назад сразу для входного элемента типа. При запросе значения на элемент функции это блокирует, пока отчет не был выпущен к устройству.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Копирует значения для многократного состояния элементов и возвратов через обратный вызов завершения.
Объявление
Objective C
IOReturn IOHIDDeviceCopyValueMultipleWithCallback ( IOHIDDeviceRef device, CFArrayRef elements, CFDictionaryRef *pMultiple, CFTimeInterval timeout, IOHIDValueMultipleCallback callback, void *context );
Параметры
device
Ссылка на IOHIDDevice.
elements
CFArrayRef, содержащий многократный IOHIDElementRefs, значения которого должны быть получены.
pMultiple
Указатель на CFDictionaryRef, где ключи являются предоставленными элементами и значениями, является требуемыми значениями.
timeout
CFTimeInterval, содержащий тайм-аут.
callback
Указатель на метод обратного вызова типа IOHIDValueMultipleCallback.
context
Указатель на данные, которые будут переданы обратному вызову.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Этот метод ведет себя asynchronusly и только relevent или для вывода или для элементов типа функции.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Создает элемент из io_service_t.
Объявление
Objective C
IOHIDDeviceRef IOHIDDeviceCreate ( CFAllocatorRef allocator, io_service_t service );
Параметры
allocator
Средство выделения, которое будет использоваться во время создания.
io_service_t
Ссылка на объект службы в ядре.
Возвращаемое значение
Возвращает новый IOHIDDeviceRef.
Обсуждение
io_service_t, переданный в этом методе, должен сослаться на объект в ядре типа IOHIDDevice.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Получает свойство из IOHIDDevice.
Объявление
Objective C
CFTypeRef IOHIDDeviceGetProperty ( IOHIDDeviceRef device, CFStringRef key );
Параметры
device
Ссылка на IOHIDDevice.
key
CFStringRef, содержащий ключ, который будет использоваться при запросах устройства.
Возвращаемое значение
Возвраты CFTypeRef, содержащий свойство.
Обсуждение
Ключи свойства снабжаются префиксом kIOHIDDevice и объявляются в <IOKit/hid/IOHIDKeys.h>.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Получает отчет из устройства.
Объявление
Objective C
IOReturn IOHIDDeviceGetReport ( IOHIDDeviceRef device, IOHIDReportType reportType, CFIndex reportID, uint8_t *report, CFIndex *pReportLength );
Параметры
device
Ссылка на IOHIDDevice.
reportType
Тип отчета, который требуют.
reportID
ID отчета, который требуют.
report
Указатель на предварительно выделенный буфер, в котором можно скопировать входящие отчетные данные.
pReportLength
Указатель на длину предварительно выделенного буфера. Это значение будет изменено к refect длина возвращенного отчета.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Этот метод ведет себя синхронно и блокирует, пока отчет не был получен от устройства. Это только предназначается для отчетов функции из-за спорадического devicesupport для опроса входных отчетов. Подчинитесь использованию IOHIDDeviceRegisterInputReportCallback для получения входных отчетов.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Получает отчет из устройства.
Объявление
Objective C
IOReturn IOHIDDeviceGetReportWithCallback ( IOHIDDeviceRef device, IOHIDReportType reportType, CFIndex reportID, uint8_t *report, CFIndex *pReportLength, CFTimeInterval timeout, IOHIDReportCallback callback, void *context );
Параметры
device
Ссылка на IOHIDDevice.
reportType
Тип отчета, который требуют.
reportID
ID отчета, который требуют.
report
Указатель на предварительно выделенный буфер, в котором можно скопировать входящие отчетные данные.
pReportLength
Указатель на длину предварительно выделенного буфера.
Указатель на длину предварительно выделенного буфера. Это значение будет изменено к refect длина возвращенного отчета.
callback
Указатель на метод обратного вызова типа IOHIDReportCallback.
context
Указатель на данные, которые будут переданы обратному вызову.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Этот метод ведет себя асинхронно и блокирует, пока отчет не был получен от устройства. Это только предназначается для отчетов функции из-за спорадического devicesupport для опроса входных отчетов. Подчинитесь использованию IOHIDDeviceRegisterInputReportCallback для получения входных отчетов.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Возвращает io_service_t для IOHIDDevice, если он имеет тот.
Объявление
Objective C
io_service_t IOHIDDeviceGetService ( IOHIDDeviceRef device );
Параметры
device
Ссылка на IOHIDDevice.
Возвращаемое значение
Возвращает io_service_t, если IOHIDDevice имеет один, или MACH_PORT_NULL, если это не делает.
Обсуждение
Если ссылки IOHIDDevice объект в ядре, это используется для получения io_service_t для того объекта.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.6 и позже.
-
Возвращает идентификатор типа всех экземпляров IOHIDDevice.
Объявление
Objective C
CFTypeID IOHIDDeviceGetTypeID ( void );
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Получает значение для элемента.
Объявление
Objective C
IOReturn IOHIDDeviceGetValue ( IOHIDDeviceRef device, IOHIDElementRef element, IOHIDValueRef *pValue );
Параметры
device
Ссылка на IOHIDDevice.
element
IOHIDElementRef, значение которого должно быть получено.
pValue
Указатель на IOHIDValueRef, который будет получен.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Этот метод ведет себя синхронно, и возвратитесь назад сразу для входного элемента типа. При запросе значения на элемент функции это блокирует, пока отчет не был выпущен к устройству. При получении значений для многократных элементов можно хотеть рассмотреть использование IOHIDDeviceCopyValueMultiple или IOHIDTransaction.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Получает значение для элемента и возвращает состояние через обратный вызов завершения.
Объявление
Objective C
IOReturn IOHIDDeviceGetValueWithCallback ( IOHIDDeviceRef device, IOHIDElementRef element, IOHIDValueRef *pValue, CFTimeInterval timeout, IOHIDValueCallback callback, void *context );
Параметры
device
Ссылка на IOHIDDevice.
element
IOHIDElementRef, значение которого должно быть получено.
pValue
Указатель на IOHIDValueRef, чтобы быть passedback.
timeout
CFTimeInterval, содержащий тайм-аут.
callback
Указатель на метод обратного вызова типа IOHIDValueCallback.
context
Указатель на данные, которые будут переданы обратному вызову.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Этот метод ведет себя asynchronusly и только relevent или для вывода или для элементов типа функции. При получении значений для многократных элементов можно хотеть рассмотреть использование IOHIDDeviceCopyValueMultipleWithCallback или IOHIDTransaction.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Открывает устройство HID для коммуникации.
Объявление
Objective C
IOReturn IOHIDDeviceOpen ( IOHIDDeviceRef device, IOOptionBits options );
Параметры
device
Ссылка на IOHIDDevice.
options
Биты опции, которые будут отправлены вниз в устройство.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Прежде чем клиент может дать команды, изменяющие состояние устройства, оно, должно быть, преуспело в том, чтобы открыть устройство. Это устанавливает ссылку между задачей клиента и существующим устройством. Для установления монопольной ссылки используют kIOHIDOptionsTypeSeizeDevice опцию.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Регистрирует обратный вызов, который будет использоваться, когда входной отчет выпущен устройством.
Объявление
Objective C
void IOHIDDeviceRegisterInputReportCallback ( IOHIDDeviceRef device, uint8_t *report, CFIndex reportLength, IOHIDReportCallback callback, void *context );
Параметры
device
Ссылка на IOHIDDevice.
report
Указатель на предварительно выделенный буфер, в котором можно скопировать входящие отчетные данные.
reportLength
Длина предварительно выделенного буфера.
callback
Указатель на метод обратного вызова типа IOHIDReportCallback.
context
Указатель на данные, которые будут переданы обратному вызову.
Обсуждение
Входной отчет является отчетом драйвера прерывания, выпущенным устройством.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Регистрирует обратный вызов, который будет использоваться, когда входное значение выпущено устройством.
Объявление
Objective C
void IOHIDDeviceRegisterInputValueCallback ( IOHIDDeviceRef device, IOHIDValueCallback callback, void *context );
Параметры
device
Ссылка на IOHIDDevice.
callback
Указатель на метод обратного вызова типа IOHIDValueCallback.
context
Указатель на данные, которые будут переданы обратному вызову.
Обсуждение
Входной элемент относится к любому элементу типа kIOHIDElementTypeInput и обычно выпускается управляемыми прерыванием отчетами. Если более определенные значения элемента желаемы, можно указать соответствие критериев через IOHIDDeviceSetInputValueMatching и IOHIDDeviceSetInputValueMatchingMultiple.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Регистрирует обратный вызов, который будет использоваться, когда удален IOHIDDevice.
Объявление
Objective C
void IOHIDDeviceRegisterRemovalCallback ( IOHIDDeviceRef device, IOHIDCallback callback, void *context );
Параметры
device
Ссылка на IOHIDDevice.
callback
Указатель на метод обратного вызова типа IOHIDCallback.
context
Указатель на данные, которые будут переданы обратному вызову.
Обсуждение
Когда устройство отключается, в большинстве случаев это происходит.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Расписания устройство HID с выполненным циклом.
Объявление
Objective C
void IOHIDDeviceScheduleWithRunLoop ( IOHIDDeviceRef device, CFRunLoopRef runLoop, CFStringRef runLoopMode );
Параметры
device
Ссылка на IOHIDDevice.
runLoop
RunLoop, который будет использоваться при планировании любого асинхронного действия.
runLoopMode
Выполненный режим цикла, который будет использоваться при планировании любого асинхронного действия.
Обсуждение
Формально устройство партнеров с циклом выполнения клиента. Планирование этого устройства с циклом выполнения необходимо перед использованием любого асинхронного APIs.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Наборы, соответствующие критерии входных значений, получены через IOHIDDeviceRegisterInputValueCallback.
Объявление
Objective C
void IOHIDDeviceSetInputValueMatching ( IOHIDDeviceRef device, CFDictionaryRef matching );
Параметры
manager
Ссылка на IOHIDDevice.
matching
Критерии соответствия устройства CFDictionaryRef containg.
Обсуждение
Соответствующие ключи снабжаются префиксом kIOHIDElement и объявляются в <IOKit/hid/IOHIDKeys.h>. Передача словаря NULL приведет ко всем перечисляемым устройствам. Любые последующие вызовы заставят скрытого менеджера выпускать ранее соответствующие входные элементы и перезапускать процесс соответствия с помощью пересмотренных критериев. Если заинтересовано многократными, определенными элементами устройства, подчинитесь использованию IOHIDDeviceSetInputValueMatchingMultiple.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Наборы многократные критерии соответствия входных значений получены через IOHIDDeviceRegisterInputValueCallback.
Объявление
Objective C
void IOHIDDeviceSetInputValueMatchingMultiple ( IOHIDDeviceRef device, CFArrayRef multiple );
Параметры
manager
Ссылка на IOHIDDevice.
multiple
CFArrayRef, содержащий многократный CFDictionaryRef, возражает входным критериям соответствия элемента containg.
Обсуждение
Соответствующие ключи снабжаются префиксом kIOHIDElement и объявляются в <IOKit/hid/IOHIDKeys.h>. Этот метод полезен, если заинтересовано многократными, определенными элементами.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Устанавливает свойство для IOHIDDevice.
Объявление
Objective C
Boolean IOHIDDeviceSetProperty ( IOHIDDeviceRef device, CFStringRef key, CFTypeRef property );
Параметры
device
Ссылка на IOHIDDevice.
key
CFStringRef, содержащий ключ, который будет использоваться, когда modifiying свойство устройства.
property
CFTypeRef containg свойство, которое будет установлено.
Возвращаемое значение
Возвращает TRUE в случае успеха.
Обсуждение
Ключи свойства снабжаются префиксом kIOHIDDevice и объявляются в <IOKit/hid/IOHIDKeys.h>.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Отправляет отчет в устройство.
Объявление
Objective C
IOReturn IOHIDDeviceSetReport ( IOHIDDeviceRef device, IOHIDReportType reportType, CFIndex reportID, const uint8_t *report, CFIndex reportLength );
Параметры
device
Ссылка на IOHIDDevice.
reportType
Тип отправляемого отчета.
reportID
ID отправляемого отчета. Если устройство поддерживает многократные отчеты, это должно также быть установлено в первом байте отчета.
report
Байты отчета, которые будут отправлены в устройство.
reportLength
Длина отчета, который будет отправлен в устройство.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Этот метод ведет себя синхронно и блокирует, пока отчет не был выпущен к устройству. Это только relevent или для вывода или для отчетов типа функции.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Отправляет отчет в устройство.
Объявление
Objective C
IOReturn IOHIDDeviceSetReportWithCallback ( IOHIDDeviceRef device, IOHIDReportType reportType, CFIndex reportID, const uint8_t *report, CFIndex reportLength, CFTimeInterval timeout, IOHIDReportCallback callback, void *context );
Параметры
device
Ссылка на IOHIDDevice.
reportType
Тип отправляемого отчета.
reportID
ID отправляемого отчета. Если устройство поддерживает многократные отчеты, это должно также быть установлено в первом байте отчета.
report
Байты отчета, которые будут отправлены в устройство.
reportLength
Длина отчета, который будет отправлен в устройство.
timeout
CFTimeInterval, содержащий тайм-аут.
callback
Указатель на метод обратного вызова типа IOHIDReportCallback.
context
Указатель на данные, которые будут переданы обратному вызову.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Этот метод ведет себя асинхронно и блокирует, пока отчет не был выпущен к устройству. Это только relevent или для вывода или для отчетов типа функции.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Устанавливает значение для элемента.
Объявление
Objective C
IOReturn IOHIDDeviceSetValue ( IOHIDDeviceRef device, IOHIDElementRef element, IOHIDValueRef value );
Параметры
device
Ссылка на IOHIDDevice.
element
IOHIDElementRef, значение которого должно быть изменено.
value
IOHIDValueRef, содержащий значение, которое будет установлено.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Этот метод ведет себя синхронно и блокирует, пока отчет не был выпущен к устройству. Это только relevent или для вывода или для элементов типа функции. При установке значений для многократных элементов можно хотеть рассмотреть использование IOHIDDeviceSetValueMultiple или IOHIDTransaction.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Наборы многократные значения для многократных элементов.
Объявление
Objective C
IOReturn IOHIDDeviceSetValueMultiple ( IOHIDDeviceRef device, CFDictionaryRef multiple );
Параметры
device
Ссылка на IOHIDDevice.
muliple
CFDictionaryRef, где ключом является IOHIDElementRef и значение, является IOHIDValueRef.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Этот метод ведет себя синхронно и блокирует, пока отчет не был выпущен к устройству. Это только relevent или для вывода или для элементов типа функции.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Наборы многократные значения для многократного состояния элементов и возвратов через обратный вызов завершения.
Объявление
Objective C
IOReturn IOHIDDeviceSetValueMultipleWithCallback ( IOHIDDeviceRef device, CFDictionaryRef multiple, CFTimeInterval timeout, IOHIDValueMultipleCallback callback, void *context );
Параметры
device
Ссылка на IOHIDDevice.
muliple
CFDictionaryRef, где ключом является IOHIDElementRef и значение, является IOHIDValueRef.
timeout
CFTimeInterval, содержащий тайм-аут.
callback
Указатель на метод обратного вызова типа IOHIDValueMultipleCallback.
context
Указатель на данные, которые будут переданы обратному вызову.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Этот метод ведет себя асинхронно и вызовет обратный вызов, как только отчет был выпущен к устройству. Это только relevent или для вывода или для элементов типа функции.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Устанавливает значение для элемента и возвращает состояние через обратный вызов завершения.
Объявление
Objective C
IOReturn IOHIDDeviceSetValueWithCallback ( IOHIDDeviceRef device, IOHIDElementRef element, IOHIDValueRef value, CFTimeInterval timeout, IOHIDValueCallback callback, void *context );
Параметры
device
Ссылка на IOHIDDevice.
element
IOHIDElementRef, значение которого должно быть изменено.
value
IOHIDValueRef, содержащий значение, которое будет установлено.
timeout
CFTimeInterval, содержащий тайм-аут.
callback
Указатель на метод обратного вызова типа IOHIDValueCallback.
context
Указатель на данные, которые будут переданы обратному вызову.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха.
Обсуждение
Этот метод ведет себя асинхронно и вызовет обратный вызов, как только отчет был выпущен к устройству. Это только relevent или для вывода или для элементов типа функции. При установке значений для многократных элементов можно хотеть рассмотреть использование IOHIDDeviceSetValueWithCallback или IOHIDTransaction.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Нерасписания устройство HID с выполненным циклом.
Объявление
Objective C
void IOHIDDeviceUnscheduleFromRunLoop ( IOHIDDeviceRef device, CFRunLoopRef runLoop, CFStringRef runLoopMode );
Параметры
device
Ссылка на IOHIDDevice.
runLoop
RunLoop, который будет использоваться при непланировании любого асинхронного действия.
runLoopMode
Выполненный режим цикла, который будет использоваться при непланировании любого асинхронного действия.
Обсуждение
Формально разъединяет устройство с циклом выполнения клиента.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.5 и позже.