| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /**
- * @file ibutton_worker.h
- *
- * iButton worker
- */
- #pragma once
- #include "ibutton_key.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef enum {
- iButtonWorkerWriteOK,
- iButtonWorkerWriteSameKey,
- iButtonWorkerWriteNoDetect,
- iButtonWorkerWriteCannotWrite,
- } iButtonWorkerWriteResult;
- typedef void (*iButtonWorkerReadCallback)(void* context);
- typedef void (*iButtonWorkerWriteCallback)(void* context, iButtonWorkerWriteResult result);
- typedef void (*iButtonWorkerEmulateCallback)(void* context, bool emulated);
- typedef struct iButtonWorker iButtonWorker;
- /**
- * Allocate ibutton worker
- * @return iButtonWorker*
- */
- iButtonWorker* ibutton_worker_alloc();
- /**
- * Free ibutton worker
- * @param worker
- */
- void ibutton_worker_free(iButtonWorker* worker);
- /**
- * Start ibutton worker thread
- * @param worker
- */
- void ibutton_worker_start_thread(iButtonWorker* worker);
- /**
- * Stop ibutton worker thread
- * @param worker
- */
- void ibutton_worker_stop_thread(iButtonWorker* worker);
- /**
- * Set "read success" callback
- * @param worker
- * @param callback
- * @param context
- */
- void ibutton_worker_read_set_callback(
- iButtonWorker* worker,
- iButtonWorkerReadCallback callback,
- void* context);
- /**
- * Start read mode
- * @param worker
- * @param key
- */
- void ibutton_worker_read_start(iButtonWorker* worker, iButtonKey* key);
- /**
- * Set "write event" callback
- * @param worker
- * @param callback
- * @param context
- */
- void ibutton_worker_write_set_callback(
- iButtonWorker* worker,
- iButtonWorkerWriteCallback callback,
- void* context);
- /**
- * Start write mode
- * @param worker
- * @param key
- */
- void ibutton_worker_write_start(iButtonWorker* worker, iButtonKey* key);
- /**
- * Set "emulate success" callback
- * @param worker
- * @param callback
- * @param context
- */
- void ibutton_worker_emulate_set_callback(
- iButtonWorker* worker,
- iButtonWorkerEmulateCallback callback,
- void* context);
- /**
- * Start emulate mode
- * @param worker
- * @param key
- */
- void ibutton_worker_emulate_start(iButtonWorker* worker, iButtonKey* key);
- /**
- * Stop all modes
- * @param worker
- */
- void ibutton_worker_stop(iButtonWorker* worker);
- #ifdef __cplusplus
- }
- #endif
|