mic_ssl_params_t.noise_floor_dbfs_per_sqrt_hz=0은 현재 SDK 기본값 -120 dBFS/√Hz를 선택하고, min_signal_snr_db=0은 10 dB를 선택합니다. mic_ssl_process_probability_map_bytes()의 posterior_temperature는 ABI 호환용으로 현재 무시되므로 0을 전달하십시오. PCM에 직접 SSL을 적용할 때는 mic_ssl_set_sensor_layout()을 먼저 호출해야 합니다.MIC0528 / SM3324 Customer C API Reference · 2026-09-20
sdk/include/mic_sdk/*.h와 구현을 기준으로 작성되었습니다. 아래의 분류기·멀티모달 항목은 헤더에는 ABI 예약 선언만 있고 현재 호출하면 MIC_ENOT_IMPLEMENTED를 반환합니다. 내부 구조체에 접근하지 말고, out 핸들/행렬은 대응 destroy 또는 release 함수로 해제하십시오.frames는 시간 프레임 수이며 총 샘플 수는 frames * channels입니다.mic_audio_block_t.interleaved는 SDK 소유이며 다음 read/close 전까지만 유효합니다. out_* 객체는 호출자가 해제합니다.| 값 | 의미 |
|---|---|
| MIC_OK | 성공. out 값 유효. |
| MIC_EINVAL / MIC_ENOMEM | 잘못된 NULL·범위·형식 / 메모리 부족. |
| MIC_ENOTFOUND / MIC_EBUSY / MIC_EIO | 장치 없음 / 다른 프로세스 점유 / USB·CDC·UAC I/O 오류. |
| MIC_ETIMEOUT / MIC_ENOT_READY | 대기 시간 내 데이터 없음 / 장치는 열렸지만 유효 데이터가 아직 없음. 스트리밍에서는 재시도 가능. |
| MIC_EUNSUPPORTED / MIC_ECONFLICT | 지원하지 않는 포맷·플랫폼·모델 / SYNC 등 설정 충돌. |
| MIC_ENOT_IMPLEMENTED / MIC_EINTERNAL | 선언만 있는 예약 API / 내부 오류. |
| 형식 | 필드 또는 값 | 설명 |
|---|---|---|
| 불투명 핸들 | module_t,mic_context_t,mic_device_t,mic_stream_t,sm3324_t,mic_ssl_t,mic_vad_t,mic_stt_t,ts_classifier_t,multimodal_session_t | 내부 필드에 접근 금지. context는 destroy, module은 release, stream/분석기는 대응 close/destroy로 해제. ts_classifier_t와 multimodal_session_t는 현재 예약 핸들입니다. |
module_kind_t | UNKNOWN, MIC0528, SM3324, CAMERA | module의 실제 장치 종류. |
module_stream_kind_t | NONE, AUDIO, TIMESERIES, VIDEO | module이 제공하는 주 스트림 종류. |
mic_vec3f_t | x_m,y_m,z_m | 미터 단위 3D 좌표. |
mic_euler_deg_t | roll_deg,pitch_deg,yaw_deg | degree 단위의 오른손 장치 자세. SDK는 로컬 MEMS 좌표에 Rz(yaw)*Ry(pitch)*Rx(roll)을 적용합니다. |
mic_device_geometry_t | device_origin_m,device_rotation_deg,mic_pos_m[6],mic_count,valid | 장치 world 원점·자세, MEMS 로컬 좌표, 4/5 MEMS 수, geometry 유효 플래그. 다중 SSL에 필수. |
mic_open_params_t | sample_rate_hz,channels,require_sync,remove_sync_marker,interpolate_sync_marker,preserve_sync_marker,read_block_frames | 1ch: 24/48/96/192/384 kHz, 6ch: 24/48/96 kHz. 그룹 stream은 require_sync=1이며 정확히 한 MASTER와 나머지 FOLLOWER가 필요합니다. 동기화하지 않는 다중 장치 녹음은 장치별 단일 stream을 각각 엽니다. remove는 마지막 marker 채널 자체를 제거하고, preserve=1은 marker를 원본 그대로 남기며, 그 외 interpolate=1은 marker sample만 보간합니다. |
mic_audio_block_t | interleaved,frames,channels,sample_rate_hz,sample_index,monotonic_time_ns,flags | 스트림이 준 PCM16과 메타데이터. interleaved는 SDK 소유. flags의 MIC_AUDIO_BLOCK_FLAG_SYNC_LOCKED는 동기화 lock, MIC_AUDIO_BLOCK_FLAG_DISCONTINUITY는 OS가 보고한 UAC/WASAPI 데이터 불연속을 뜻합니다. |
mic_usb_pair_t | usb_path,audio_path,cdc_path,firmware_id,has_mic5,handle | 열거 결과. has_mic5는 보수적 값이므로 필요하면 detect 호출. handle은 장기 보관 금지. |
dsp_input_kind_tdsp_sample_format_t | kind: DSP_INPUT_NONE, DSP_INPUT_AUDIO_BYTES, DSP_INPUT_AUDIO_STREAM, DSP_INPUT_MIC_DEVICE.format: DSP_SAMPLE_FORMAT_UNKNOWN, S16LE, F32. | dsp_source_t union의 활성 멤버와 PCM 표본 형식을 명시합니다. |
dsp_source_t | kind,sample_rate_hz,channels,u.bytes(data,size_bytes,sample_format),u.stream,u.mic | SSL/VAD/STT 입력. kind에 맞는 union 멤버만 채웁니다. PCM16 bytes 권장. |
mic_spectrogram_params_t | fft_size,hop_frames,channel_index,min_db,max_db | FFT는 64..16384 2의 거듭제곱. 특정 인터리브 채널과 dB clamp 범위 선택. |
mic_spectrogram_t | width,height,sample_rate_hz,fft_size,hop_frames,min_db,max_db,db | db[time * height + frequency], 저주파부터 고주파. destroy 필요. |
mic_feature_matrix_t | width,height,sample_rate_hz,hop_frames,values | Mel/MFCC 행렬, row-major. destroy 필요. |
mic_time_stretch_params_t | time_ratio,pitch_semitones,cheaper_preset | 시간비 1.0은 유지, 피치는 반음 단위, cheaper는 낮은 부하 preset. |
mic_offline_sync_params_t | channels,marker_channel,marker_threshold,max_consecutive_missing_markers,minimum_marker_pairs | 완전 녹음본의 marker 기반 정렬 설정. |
mic_offline_sync_result_t | target_to_reference_offset_samples,target_to_reference_ratio,matched_marker_pairs,ignored_reference_markers,ignored_target_markers | reference = target * ratio + offset 변환과 marker 통계. |
sm3324_timeseries_t | channels[16],channel_count,sample_count,sample_rate_hz,first_time_ns,last_time_ns | 채널별 double 배열 시계열. reset으로 배열 해제. |
ts_series_t | domain,sample_rate_hz,channel_count,sample_count,channels[32],attached_feature_count,attached_features,first_time_ns,last_time_ns | 분류 예약용 범용 float 시계열. attached feature는 SSL/STT/VAD 결과 결합용. |
ts_inference_result_t | task_name,field_count,fields,window_start_ns,window_end_ns | 분류 예약 결과. |
multimodal_source_binding_t | module,channel_or_plane_count,selected_channel_index,use_for_ssl/use_for_stt/use_for_vad/use_for_classifier/use_for_recording,logical_name | 멀티모달 예약 입력 binding. |
mic_stt_params_t는 enable_post_correction, post_correction_python_exe, post_correction_script_path를 추가로 받습니다. 이 옵션을 켜면 STT 결과 반환 직전에 SDK가 언어별 단어 교정기를 호출합니다. 현재 기본 교정 대상 언어는 한국어, 영어, 일본어, 중국어입니다.| 함수 | 인자 | 설명 |
|---|---|---|
| mic_stt_set_post_correction_enabled(stt,enable) | enable: 0/1. | 단어 교정 후처리 사용 여부를 전환합니다. |
| mic_stt_set_post_correction_python_exe(stt,python_exe) | python_exe: Python 실행 파일 경로 또는 이름. | 후처리 스크립트를 실행할 Python 런타임을 지정합니다. |
| mic_stt_set_post_correction_script_path(stt,script_path) | script_path: stt_post_correct.py 경로. | 후처리 백엔드 스크립트 경로를 지정합니다. |
| 함수 | 모든 인자 | 기능·성공 결과·대표 오류 |
|---|---|---|
| mic_create_context(out_ctx) | out_ctx: 새 context 수신 포인터. | context 생성. 성공 시 *out_ctx 유효, destroy 필요. NULL이면 EINVAL. |
| mic_destroy_context(ctx) | ctx: 생성 context, NULL 허용. | context의 module cache와 context 메모리만 해제, 반환 없음. 호출자가 모든 stream을 stop/close하고 취득한 module을 release한 뒤 호출해야 합니다. |
| mic_set_log_callback(ctx,cb,user) | cb: void(*)(void*,const char*) 또는 NULL; user: 사용자 포인터. | SDK 로그 callback 설정. ctx NULL은 EINVAL. |
| module_enumerate(ctx,items,capacity,out_count) | items: module 포인터 배열 또는 NULL; capacity: 배열 길이; out_count: 전체 수신. | 모든 장치 열거. items에는 capacity개까지 기록, out_count는 전체 수. |
| mic_enumerate_devices(ctx,items,capacity,out_count) | items: mic_usb_pair_t 배열 또는 NULL; capacity/out_count 동일. | MIC0528 열거 후 CDC ID를 질의합니다. 같은 context가 이전에 확인한 USB/CDC/ID 쌍은 기억되므로 CDC가 이미 점유된 재열거에서도 저장 ID로 반환됩니다. 저장 ID가 없고 CDC도 열 수 없는 장치만 결과에서 제외하며, 한 장치의 CDC 실패 때문에 전체 열거가 실패하지 않습니다. |
| module_open_by_usb_path(ctx,usb_path,out_module) | usb_path: 열거 USB path; out_module: 공통 handle 수신. | 경로로 종류 불문 장치 열기. 없으면 ENOTFOUND. release 필요. |
| mic_open_device_by_usb_path(ctx,usb_path,out_dev) | usb_path: MIC path; out_dev: MIC handle. | MIC0528 열기. |
| mic_open_device_by_id(ctx,firmware_id,out_dev) | firmware_id: 0..255 CDC ID; out_dev: MIC handle. | ID 일치 MIC 열기. 중복 ID는 설치 전 해결. |
| mic_open_device_by_com_port_idx(ctx,com_port_idx,out_dev) | com_port_idx: COM33이면 33; out_dev: MIC handle. | COM 번호로 MIC 열기. |
| sm3324_open_by_usb_path(ctx,path,out_sm) | path: USB path; out_sm: SM handle. | SM3324 USB 경로로 열기. |
| sm3324_open_by_com_port_idx(ctx,n,out_sm) | n: COM 번호; out_sm: SM handle. | COM 번호로 SM 열기. |
| module_retain(mod) / module_release(mod) | mod: 열린 module. release는 NULL 허용. | 참조 수 증가/감소. retain NULL은 EINVAL; 마지막 release가 장치 해제. |
| module_get_kind(mod) / module_get_stream_kind(mod) | mod: module 또는 NULL. | 즉시 enum 반환. NULL은 UNKNOWN/NONE. |
| module_get_name(mod) / module_get_serial(mod) / module_get_usb_path(mod) | mod: module 또는 NULL. | SDK 소유 NUL 문자열 반환. NULL은 빈 문자열; 장기 보관 시 복사. |
mic_device_t*이고, status 함수 성공은 MIC_OK입니다.| 함수 | 모든 인자 | 기능·성공 결과·대표 오류 |
|---|---|---|
| mic_query_device_id(dev,out_id) | out_id: 0..255 ID 수신. | CDC i 질의, *out_id 설정. |
| mic_set_device_id(dev,id,persist) | id: 새 ID; persist: 0 RAM/1 flash. | CDC ID 변경. |
| mic_set_device_geometry(dev,geometry) mic_get_device_geometry(dev,out_geometry) | geometry/out_geometry: mic_device_geometry_t. | SDK geometry 저장/복사. 다중 SSL 전 각 장치에 설정. |
| mic_geometry_local_to_world(geometry,local,out_world) | geometry: 원점·roll/pitch/yaw 포함 geometry; local: 장치 로컬 MEMS 좌표; out_world: 변환된 world 좌표 수신. | Rz(yaw)*Ry(pitch)*Rx(roll)을 local에 적용 후 원점을 더합니다. 모두 degree이며 NULL 인자는 MIC_EINVAL. SSL 엔진도 이와 같은 변환을 사용합니다. |
| mic_set_recording_volume(dev,volume_scalar) mic_get_recording_volume(dev,out_volume_scalar) | volume_scalar: 0.0..1.0 선형값; out_volume_scalar: 현재값 수신. | OS UAC capture endpoint의 master volume을 설정/질의합니다. Windows에서 0.5는 녹음 볼륨 50%이며 firmware gain 설정이 아닙니다. 범위 오류는 EINVAL, 미지원 OS는 EUNSUPPORTED. |
| mic_query_mic_count(dev,out_mic_count) mic_detect_mic_count(dev,out_mic_count) | out_mic_count: 4 또는 5 수신. | CDC m 질의의 m4/m5 응답을 읽습니다. 펌웨어 부팅 시 SPI 하드웨어 프로브 결과이며 UAC를 열거나 음량으로 추정하지 않습니다. mic_detect_mic_count는 호환 별칭입니다. |
| mic_restore_factory_defaults(dev) | 추가 인자 없음. | CDC r 공장 초기화. |
| mic_set_ssl_cdc_enabled(dev,enable,persist) | enable: 0/1; persist: 0/1. | 펌웨어 내장 SSL CDC p0/p1 출력 설정. |
| mic_set_sync_mode(dev,mode,persist) | mode: OFF=0/FOLLOWER=1/MASTER=2; persist. | SYNC 설정. 다중 녹음은 MASTER 정확히 1, 나머지 FOLLOWER. MASTER만 PA11을 구동하며 rising pulse는 TIM7 한 tick(약 166.7 us), 시작 간격은 20 ms x10 뒤 24 ms x2로 반복되어 248 ms cycle입니다. 마지막 UAC marker 채널에는 각 rising edge가 1 frame으로 기록됩니다. |
| mic_query_sync_mode(dev,out_mode) | out_mode: mode 수신. | 현재 SYNC 모드 질의. |
| mic_set_sync_enabled(dev,enable,persist) | enable: 1 FOLLOWER, 0 OFF; persist. | 호환 함수. MASTER 선택 불가. |
| mic_set_status_cdc_enabled(dev,enable,persist) | enable,persist: 0/1. | CPU/온도 t0/t1 출력 설정. |
| mic_set_barometric_enabled(dev,enable,persist) | enable,persist: 0/1. | 기압 b0/b1 출력 설정. |
| mic_set_led_manual_level(dev,led_index,level,persist) | led_index: LED 번호; level: 0..7 수동, 8 자동; persist. | LED 설정. 범위 밖 EINVAL. |
| mic_gpio_set_direction(dev,is_output) | is_output: 0 input/1 output. | GPIO 방향 설정. SYNC와 충돌 가능. |
| mic_gpio_set_rate(dev,rate_hz) | rate_hz: 0..100. | GPIO 주기 설정. |
| mic_gpio_write_bits(dev,ascii01,len) | ascii01: '0'/'1' 버퍼; len: 바이트 길이. | GPIO 출력 비트열 전송. |
| mic_gpio_read_once(dev,dst,capacity) | dst: NUL 문자열 버퍼; capacity: 바이트. | GPIO 입력 한 줄 수신. 응답 없음 ETIMEOUT. |
| mic_read_status_line(dev,dst,capacity,timeout_ms) | dst/capacity: 수신 문자열; timeout_ms: 최대 대기 ms. | 상태 CDC 한 줄 수신. |
| mic_read_barometric_line(dev,dst,capacity,timeout_ms) | 동일. | 기압 CDC 한 줄 수신. |
| mic_read_device_ssl_line(dev,dst,capacity,timeout_ms) | 동일. | 펌웨어 내장 SSL CDC 한 줄 수신. Host SSL 결과와 다름. |
require_sync=1이면 정확히 한 MASTER와 나머지 FOLLOWER가 필수입니다. SDK는 최초 lock에서 각 master–follower 쌍의 공통 20 ms → 특수 marker → 24 ms cadence를 찾아 FIFO delay를 설정합니다. 초기 lock 뒤에는 특수/일반 marker를 구별하지 않고, 각 follower가 master와 공통으로 관측한 일반 marker로만 해당 follower의 delay를 갱신합니다. marker가 빠진 쌍은 그 시점의 offset을 유지하고, 해당 쌍이 3초 이상 동기화하지 못하면 그 쌍만 초기 lock 탐색으로 돌아갑니다. preserve_sync_marker=1이면 marker를 마지막 출력 채널에 남기며, interpolate_sync_marker=1이고 preserve가 0이면 marker sample만 보간합니다. 펌웨어 cycle은 248 ms입니다.| 함수 | 모든 인자 | 기능·성공 결과·대표 오류 |
|---|---|---|
| mic_open_recording(devices,device_count,params,out_stream) | devices: 열린 MIC 배열; device_count: 1 이상; params: mic_open_params_t; out_stream: stream 수신. | 단일 또는 동기화 그룹 녹음 생성. device_count>1은 require_sync=1, 정확히 한 MASTER와 나머지 FOLLOWER가 아니면 ECONFLICT. 5th MEMS 없는 192/384k 1ch는 EUNSUPPORTED. |
| mic_open_stream(dev,params,out_stream) | dev: 한 MIC; params/out_stream 동일. | 단일 MIC 단축형. 고속 1ch는 5th MEMS 검증. |
| mic_open_stream_group(devices,device_count,params,out_group_stream) | open_recording과 동일. | 그룹 스트림 단축 별칭. |
| mic_start_stream(stream) | stream: 열린 stream. | UAC 시작. endpoint 점유 시 EBUSY/EIO. |
| mic_read_stream(stream,out_block,timeout_ms) | out_block: PCM block 수신; timeout_ms: 대기 ms. | 다음 block 수신. timeout ETIMEOUT, 반복 0 PCM ENOT_READY. PCM 포인터는 다음 read/close 전까지 유효. |
| mic_stop_stream(stream) | stream: 시작 stream. | 캡처 중지. |
| mic_close_stream(stream) | stream: 열린 stream, NULL 허용. | UAC와 sync 버퍼 해제, 반환 없음. |
| 함수 | 모든 인자 | 기능·성공 결과·대표 오류 |
|---|---|---|
| mic_spectrogram_default_params(out_params) | out_params: parameter 수신. | 기본값: FFT 1024, hop 256, ch0, -100..0 dB. 반환 없음. |
| mic_spectrogram_from_pcm16(pcm,frames,channels,rate,params,out_spectrogram) | pcm PCM16; frames/channels/rate; params NULL이면 기본; out_spectrogram 수신. | STFT dB 행렬 생성. frames<FFT, 잘못된 FFT/ch는 EINVAL. destroy 필요. |
| mic_spectrogram_destroy(spectrogram) | spectrogram: 생성 결과, NULL 허용. | db와 구조체 해제, 반환 없음. |
| mic_mel_spectrogram_from_pcm16(pcm,frames,channels,rate,params,mel_bins,min_hz,max_hz,out_mel) | mel_bins: 1..256; min/max_hz: 0이면 SDK 기본 범위; out_mel 수신. | Mel 특징 행렬 생성, destroy 필요. |
| mic_mfcc_from_pcm16(pcm,frames,channels,rate,params,mel_bins,mfcc_count,out_mfcc) | mel_bins, mfcc_count, out_mfcc: 결과 행렬. | MFCC 특징 행렬 생성, destroy 필요. |
| mic_feature_matrix_destroy(matrix) | matrix: Mel/MFCC 결과, NULL 허용. | values와 구조체 해제. |
| mic_spectrogram_save_png(spectrogram,path) | spectrogram: 유효 STFT; path: PNG 출력 경로. | 8-bit grayscale PNG 저장. 파일 I/O 실패 EIO. |
| mic_resample_pcm16(input,input_frames,channels,input_rate,output_rate,output,output_capacity_frames,out_frames) | input PCM, frames/channels/rates; output: NULL이면 크기 질의; output_capacity_frames; out_frames: 필요/결과 프레임. | 선형 보간 리샘플. 용량/rate 오류 EINVAL. |
| mic_time_stretch_pcm16(input,input_frames,channels,rate,params,output,output_capacity_frames,out_frames) | input PCM; channels/rate; params time stretch; output/capacity/out_frames는 위와 동일. | 시간 신장 및 피치 이동. output NULL이면 필요한 frame 수 질의. |
| 형식 | 필드·값 설명 |
|---|---|
| mic_ssl_result_t | source_id,time_ms,azimuth_deg,elevation_deg,center_hz,activity,level_db: 소스 ID, 시각, 방향, 분석창에서 계산한 실제 스펙트럼 중심 주파수(Hz), 활성도, 레벨(dBFS). |
| mic_ssl_probability_point_t | azimuth_deg,elevation_deg,probability: 전체 SSL 격자의 한 셀. 한 번 반환된 모든 probability의 합은 1.0입니다. 이는 한 음원이 활성 상태라는 조건에서의 공간 사후확률 질량이며 절대 음원 존재확률은 아닙니다. |
| mic_ssl_output_space_t | HEMISPHERE(모든 센서 공평면), SPHERE(비평면 geometry). |
| mic_ssl_backend_t | SRP_EXPERIMENTAL, MUSIC_HARK_COMPAT, TOPS/CSSM/ADAPTIVE/DPD_MUSIC_EXPERIMENTAL. 고객 배포는 MUSIC_HARK_COMPAT 권장, EXPERIMENTAL은 검증용. |
| mic_ssl_music_algorithm_t | SEVD, GEVD, GSVD. |
| mic_ssl_window_policy_t | PAST, MIDDLE, FUTURE. |
| mic_ssl_spectrum_weight_t | UNIFORM, A_CHARACTERISTIC. |
| mic_ssl_peak_search_t | LOCAL_MAXIMUM, HILL_CLIMBING. |
| mic_ssl_params_t | backend,fft_size,max_sources,accuracy_angle_deg,azimuth_step_deg,elevation_step_deg,music_algorithm,correlation_window_frames,correlation_window_policy,ssl_period_frames,spectrum_weight_type,a_characteristic_scaling,enable_eigenvalue_weight,enable_hierarchical_refine,peak_search_algorithm,min_freq_hz,max_freq_hz,speed_of_sound_mps,steering_distance_m,max_source_angular_speed_deg_s,noise_floor_dbfs_per_sqrt_hz,min_signal_snr_db: SSL 탐색·창·물리 파라미터 전체. 잡음 RMS가 대역폭의 제곱근에 비례하도록 noise_floor_dbfs_per_sqrt_hz는 원본 PCM의 진폭 스펙트럼 밀도(0이면 기본 -120 dBFS/√Hz), min_signal_snr_db는 필요한 여유(0이면 기본 10 dB)를 지정합니다. SSL은 입력 볼륨/피크 정규화를 하지 않습니다. |
| mic_vad_params_t / result | params: mode,frame_ms,speech_ratio_threshold. result: is_speech,speech_probability,time_ns. bytes 입력은 channel 0을 mono 16 kHz로 처리하고, mic_vad_process_pcm16은 channel_index로 분석 채널을 선택합니다. |
| mic_stt_model_preset_t | CUSTOM_PATH, NEMOTRON_STREAMING_MULTILINGUAL, PARAKEET_REALTIME_EOU_120M. |
| mic_stt_params_t | model_preset,model_path,model_dir,language,n_threads,translate,detect_language,use_gpu_if_available. language NULL/""은 자동 감지, 언어 지정 시 detect_language=0 권장. |
| mic_stt_realtime_params_t | step_ms: 갱신 간격; stable_decode_count: host측 안정화 힌트. parakeet streaming backend가 직접 확정 텍스트를 낼 때는 보조값으로만 사용된다. |
mic_stt_params_t의 전체 필드는 model_preset, model_path, model_dir, language, n_threads, translate, detect_language, use_gpu_if_available, enable_post_correction, post_correction_python_exe, post_correction_script_path입니다. mic_stt_set_language()는 다음 추론 언어를 설정하면서 realtime 누적 PCM·확정/변동 텍스트·정규화 상태를 초기화합니다. mic_stt_set_realtime_params()의 step_ms와 stable_decode_count는 모두 0보다 커야 하며, 변경하면 다음 realtime preview 갱신 시점을 다시 계산합니다.max_source_angular_speed_deg_s와 탐색 격자 간격을 함께 사용해 순간적인 오검출 peak로 크게 튀지 않도록 추적합니다. 음파 카메라 확률 등고선은 동일한 100 ms 원본 PCM 창으로 200 ms마다 갱신합니다.-90° ≤ elevation ≤ 0°로 반환합니다. 평면 반대편의 +|elevation| 해는 물리적으로 동일하므로 대시보드는 posterior 등고선과 argmax 십자가를 양쪽 고각에 대칭 표시합니다. 구 배열은 실제 -90°…+90°를 한 번만 표시합니다.mic_ssl_process_probability_map_bytes()는 backend score를 min/max 정규화하거나 temperature softmax한 값이 아니라, channel-power 정규화 복소 공분산에서 잡음 + 1개 평면파 방향 가설의 bin별 profile likelihood를 누적하여 전체 grid에서 정규화한 조건부 posterior를 반환합니다. 반환 확률은 셀의 posterior이며 위도/고도 셀 면적 가중을 적용하지 않습니다. posterior_temperature는 ABI 호환용 예약 인자이므로 0을 전달하며 결과에는 영향을 주지 않습니다. 지도 십자가와 등고선은 이 map의 동일한 argmax/posterior만 사용해야 합니다. 녹음 PCM만으로 사용할 때는 먼저 mic_ssl_set_sensor_layout()을 호출하고, 디버그 격자 계산에는 mic_ssl_debug_process_pcm_s16() 또는 mic_ssl_debug_process_pcm_s16_full_grid()을 사용합니다.| 함수 | 모든 인자 | 기능·성공 결과·대표 오류 |
|---|---|---|
| mic_create_ssl(params,out_ssl) / mic_ssl_destroy(ssl) | params: SSL 설정; out_ssl: handle 수신; ssl: 생성 handle. | SSL 엔진 생성/해제. create는 잘못된 FFT/범위 EINVAL. |
| mic_ssl_attach_stream(ssl,stream,geometry_override) | stream: 열린 stream; geometry_override: NULL이면 장치 geometry. | 6ch 일반 스트림 또는 동기화된 1ch 고속 그룹 스트림의 채널과 센서 좌표를 매핑합니다. 1ch 192/384 kHz에서는 각 MIC0528의 채널 0을 그 장치의 5번째 float MEMS 좌표에 대응시키므로, float MEMS가 있는 MIC0528이 최소 4개 필요합니다. 다중 장치 1ch 사용에는 동기화와 장치별 geometry가 필요합니다. 센서 4개 미만은 MIC_EUNSUPPORTED, float MEMS geometry 없음은 MIC_ENOT_READY입니다. |
| mic_ssl_set_sensor_layout(ssl,sensor_positions,channel_indices,sensor_count,source_channels,output_space) | sensor_positions: sensor_count개 world 좌표; channel_indices: 각 센서가 읽을 interleaved source 채널 또는 NULL; sensor_count: 1 이상; source_channels: 이후 PCM 입력 채널 수; output_space: HEMISPHERE/SPHERE. | 장치를 열지 않고 녹음 PCM 또는 사용자 PCM용 SSL layout을 설정합니다. channel_indices가 NULL이면 0부터 sensor_count-1까지 연속 매핑입니다. 이후 DSP_INPUT_AUDIO_BYTES는 반드시 source_channels와 일치해야 합니다. |
| mic_ssl_process_bytes(ssl,src,items,capacity,out_count) | src: dsp_source; items: 결과 배열; capacity: 최대; out_count: 실제 수. | PCM bytes SSL. 반환 방향은 시간 추적·평활화된 source track이며 center_hz는 분석창의 실제 스펙트럼 중심입니다. 1ch 고속 그룹에 attach된 경우 192/384 kHz와 장치 수만큼의 합쳐진 채널을 허용합니다. 분석 대역 RMS에서 10*log10(대역폭 Hz)를 뺀 진폭 밀도가 설정 잡음 밀도와 SNR 여유의 합보다 작으면 MIC_OK와 out_count=0을 반환합니다. capacity 부족 시 일부 결과만 기록 가능. |
| mic_ssl_process_probability_map_bytes(ssl,src,posterior_temperature,points,capacity,out_count,out_level_db,out_center_hz) | ssl: stream 또는 sensor layout이 설정된 SSL handle; src: 동일 채널 배치의 PCM16; posterior_temperature: ABI 호환용으로 현재 무시되며 0 권장; points/capacity: 출력 격자 배열과 용량; out_count: 기록 셀 수; out_level_db: 정규화하지 않은 원본 PCM의 분석 대역 RMS dBFS; out_center_hz: 실제 스펙트럼 중심 Hz. 마지막 두 출력은 NULL 허용. | 음파 카메라용 현재 프레임의 전체 공간 조건부 posterior를 반환합니다. points의 확률 합은 1.0이며 셀 면적 가중을 적용하지 않습니다. 진폭 밀도/SNR 게이트를 통과하지 못하면 MIC_OK, out_count=0, out_center_hz=0을 반환하므로 기존 등고선과 십자가를 지워야 합니다. 십자가는 반드시 probability가 가장 큰 셀(argmax)에 표시하며, 추적·평활화된 process_bytes 좌표와 혼용하지 않습니다. MIC 내장 SSL에는 이 map이 없으므로 Host SDK SSL에서만 등고선을 그립니다. MIC_EINVAL은 버퍼/용량/FFT 길이 오류, MIC_ENOT_READY는 미attach, MIC_ECONFLICT는 채널 불일치입니다. |
| mic_ssl_debug_process_pcm_s16(...) / mic_ssl_debug_process_pcm_s16_full_grid(...) | params, sensor_positions, sensor_count, output_space, sample_rate_hz, PCM16, frames, channels, score/azimuth/elevation 출력 배열, capacity, out_count. | 디버그/시각화용 후보 score 계산 함수입니다. 첫 함수는 내부 선택 grid, full_grid 함수는 peak reduction 전 전체 grid 결과를 반환합니다. 제품 UI의 확률 등고선에는 probability-map API를 사용하십시오. |
| mic_ssl_process_live(ssl,mic,run_ms,items,capacity,out_count) | mic: 한 MIC; run_ms: capture 시간; 나머지는 위와 동일. | 단일 MIC 6ch live 편의 함수. 1ch 고속 SSL은 센서 수가 부족하므로 최소 4개 MIC의 동기화 group stream을 attach하고 bytes 경로를 사용합니다. |
| mic_create_vad(params,out_vad) / mic_vad_destroy(vad) | params: NULL이면 기본; out_vad: handle; vad: 생성 handle. | VAD 생성/해제. |
| mic_vad_process_bytes(vad,src,out_result) | src: AUDIO_BYTES PCM16; out_result: VAD result. | 버퍼 VAD. |
| mic_vad_process_pcm16(vad,pcm,frames,channels,rate,channel_index,out_result) | PCM 형식과 분석 channel_index, result 수신. | 직접 PCM16 VAD. channel 범위 밖 EINVAL. |
| mic_vad_process_live(vad,mic,run_ms,out_result) | mic: MIC; run_ms: 처리 시간; out_result. | 장치 직접 live VAD. |
| mic_stt_resolve_model_preset(preset,model_dir,out_path,capacity) | preset; model_dir; out_path/용량. | preset의 GGUF STT 모델 경로 조합. 버퍼 부족 EINVAL. |
| mic_create_stt(params,out_stt) / mic_stt_destroy(stt) | params: 모델·언어; out_stt: handle; stt: handle. | parakeet/Nemotron streaming 모델 load/unload. 파일 없음 ENOTFOUND/EIO. |
| mic_stt_set_language(stt,language) | language: ko/en/ja 등, NULL/"" 자동 감지. | 다음 추론 언어 설정. 자동 감지는 전사를 중단하지 않는다. |
| mic_stt_set_realtime_params(stt,params) | params: step/stability. | 실시간 decode 간격과 host 안정화 규칙 설정. 값 변경 시 이전 비교 상태는 폐기한다. |
| mic_stt_feed_bytes(stt,src) | src: AUDIO_BYTES PCM16. | SDK가 16 kHz mono로 변환한 뒤 50% peak 자동 레벨 정규화를 적용해 비실시간 입력을 누적하며, 이후 flush한다. |
| mic_stt_feed_realtime_bytes(stt,src) | src: 작은 realtime PCM block. | SDK가 연속 위상을 유지해 16 kHz mono로 변환하고 50% peak 자동 레벨 정규화를 적용한 뒤 realtime buffer에 공급한다. 포락선은 상승 즉시, 하강 0.5 Hz이며 10%를 최저 기준으로 한다. |
| mic_stt_poll_realtime(stt,confirmed,confirmed_capacity,out_confirmed_len,unstable,unstable_capacity,out_unstable_len) | 확정/변동 UTF-8 출력 버퍼·용량·길이 수신 포인터. | 대기 audio decode. confirmed는 누적 후 변경되지 않고 unstable은 다음 decode에서 변경 가능. 버퍼가 작아도 out_*_len에는 NUL을 제외한 텍스트 바이트 수가 반환되므로 capacity를 out_*_len+1 이상으로 확장한 뒤 재호출할 수 있다. |
| mic_stt_run_live(stt,mic,run_ms) | mic: MIC; run_ms: capture 시간. | 장치에서 비실시간 입력을 누적, 결과는 flush. |
| mic_stt_process_realtime_bytes(stt,src,confirmed,confirmed_capacity,out_confirmed_len,unstable,unstable_capacity,out_unstable_len) | src와 poll의 모든 출력 인자. | feed+decode 일괄. |
| mic_stt_process_realtime_live(stt,mic,run_ms,confirmed,confirmed_capacity,out_confirmed_len,unstable,unstable_capacity,out_unstable_len) | mic/run_ms와 위 출력 인자. | capture+realtime decode 일괄. |
| mic_stt_finalize_realtime(stt,confirmed,capacity,out_len) | confirmed UTF-8 buffer/용량/길이. | 남은 realtime buffer를 확정 텍스트로 종료. |
| mic_stt_flush(stt,utf8_text,capacity,out_len) | 최종 UTF-8 buffer/용량/길이. | 비실시간 누적 audio 전사 후 비우고 리샘플러·정규화 상태도 초기화한다. |
SM3324 시계열 장치는 COM 포트 또는 USB 경로로 열고, 스트리밍 또는 일괄 수집 결과를 공통 프레임 API로 받습니다.
| sm3324_mode_t 값 | 의미 |
|---|---|
| STOP('o') | 측정 중지. |
| V,C,Y,Z,P,Q,G | voltage/current/ADC1/ADC2/PT1/PT2/gas, 각 300 kS/s 단일 모드. |
| F,X,R | voltage+current / ADC dual / PT dual, 150 kS/s. |
| A | 모든 채널 37.5 kS/s. |
| v,c,y,z,p,q,g | 각 단일 채널 18.75 kS/s. |
| f,x,r | 각 복합 채널 9.375 kS/s. |
| a | 모든 채널 2.34375 kS/s. |
| O,L | IMU attitude / IMU calibration. |
| 함수 | 모든 인자 | 기능·성공 결과·대표 오류 |
|---|---|---|
| sm3324_connect(dev) / sm3324_disconnect(dev) | dev: 열린 SM handle. | CDC 연결/해제. I/O 실패 EIO. |
| sm3324_start_mode(dev,mode) | mode: 위 enum 또는 ASCII 값. | 측정 시작. 잘못된 mode EINVAL/EUNSUPPORTED. |
| sm3324_stop_mode(dev) | dev. | 측정 중지. |
| sm3324_read_text_window(dev,dst,capacity,wait_ms) | dst NUL buffer/바이트 용량; wait_ms. | 원시 텍스트 window 수신. 데이터 없음 ETIMEOUT. |
| sm3324_ekf_read_all(dev,dst,capacity) | dst/capacity. | EKF 설정 전체 읽기. |
| sm3324_ekf_apply_text(dev,text) | text: 적용 EKF 설정 문자열. | EKF 설정 적용. |
| sm3324_ekf_save_flash(dev) | dev. | EKF 설정 flash 저장. |
| sm3324_start_calibration(dev) / sm3324_calibration_next(dev) | dev. | IMU calibration 시작/다음 단계. |
| sm3324_capture_timeseries(dev,mode,duration_ms,out_series,out_stats) | mode; duration_ms; out_series: timeseries 수신; out_stats: 예약 통계 포인터. | 지정 시간 캡처 후 배열 기록. out_series는 reset 필요. |
| sm3324_append_frames_to_timeseries(dev,frame_bytes,size_bytes,io_series,io_stats) | raw frame bytes/길이; 누적 series; 예약 stats. | 수신 frame을 해석해 누적. 직접 read loop용. |
| sm3324_reset_timeseries(series) | series: 초기화할 결과. | 채널 배열 해제와 필드 0 초기화. |
| 함수 | 모든 인자 | 기능·성공 결과·대표 오류 |
|---|---|---|
| mic_offline_sync_estimate_pcm16(reference_pcm,reference_frames,target_pcm,target_frames,params,out_result) | 두 complete raw PCM16, 각각 frames; params: channels/marker 설정; out_result: affine 변환. | marker 손실(max_consecutive_missing_markers)을 허용해 reference = target * ratio + offset 추정. pair 부족은 ENOT_READY/EINVAL. |
MIC_ENOT_IMPLEMENTED를 반환합니다. ABI 예약용이며 제품 코드에서 사용하지 마십시오.| 함수 | 모든 인자 | 의도된 기능·현재 반환 |
|---|---|---|
| ts_classifier_create(params,out_classifier) | params: 향후 모델 설정; out_classifier: handle. | 분류기 생성 예정 / ENOT_IMPLEMENTED. |
| ts_classifier_load_model(classifier,model_path) | classifier; model_path: 모델 파일. | 모델 load 예정 / ENOT_IMPLEMENTED. |
| ts_classifier_describe_schema(classifier,out_schema) | classifier; out_schema: 예약 schema. | 입력 schema 조회 예정 / ENOT_IMPLEMENTED. |
| ts_classifier_process_series(classifier,series,out_result) | classifier; series: ts_series_t; out_result. | 정상/비정상 추론 예정 / ENOT_IMPLEMENTED. |
| multimodal_session_create(ctx,out_session) | ctx; out_session. | MIC/SM 결합 session 생성 예정 / ENOT_IMPLEMENTED. |
| multimodal_session_add_mic(session,binding) multimodal_session_add_sm3324(session,binding) | session; binding: multimodal_source_binding_t. | 입력 source 추가 예정 / ENOT_IMPLEMENTED. |
| multimodal_session_start(session) multimodal_session_stop(session) | session. | session 시작/정지 예정 / ENOT_IMPLEMENTED. |
| multimodal_session_build_series(session,out_series) | session; out_series. | audio/current/SSL/STT/VAD feature 정렬 예정 / ENOT_IMPLEMENTED. |
| multimodal_session_run_classifier(session,classifier,out_result) | session; classifier; out_result. | session 분류 실행 예정 / ENOT_IMPLEMENTED. |
Include는 #include <mic_sdk/mic_sdk.h> 하나면 충분합니다. DLL 배포 시 mic_sdk와 parakeet runtime 및 선택한 GGUF 모델 파일을 함께 배포하십시오. CUDA는 선택이며 use_gpu_if_available=1은 가능한 경우에만 사용합니다. CAMERA는 module enum에 예약되어 있으나 현재 공개 camera C API는 없습니다.
| typedef | 값 또는 필드 | 용도 |
|---|---|---|
mic_status_t | MIC_OK, MIC_EINVAL, MIC_ENOMEM, MIC_ENOTFOUND, MIC_EBUSY, MIC_EIO, MIC_ETIMEOUT, MIC_EUNSUPPORTED, MIC_ENOT_READY, MIC_ECONFLICT, MIC_ENOT_IMPLEMENTED, MIC_EINTERNAL | 모든 status API의 반환형. |
mic_sync_mode_t | MIC_SYNC_MODE_OFF=0, MIC_SYNC_MODE_FOLLOWER=1, MIC_SYNC_MODE_MASTER=2 | mic_set_sync_mode와 mic_query_sync_mode의 설정/반환형. |
mic_vad_result_t | is_speech, speech_probability, time_ns | VAD bytes/PCM/live 함수의 결과 구조체. |
| 함수 | 인자 | 반환 및 기능 |
|---|---|---|
| mic_query_mic_count(dev,out_mic_count) mic_detect_mic_count(dev,out_mic_count) | dev: 열린 MIC0528 핸들; out_mic_count: 4 또는 5 수신. | CDC m을 전송해 펌웨어 응답 m4 또는 m5를 읽습니다. 결과는 부팅 시 SPI 하드웨어 프로브로 확정되며 UAC를 열거나 오디오 진폭을 추정하지 않습니다. mic_detect_mic_count는 기존 코드 호환 별칭입니다. |
| SYNC physical waveform | MASTER f2. | PA11 HIGH is exactly one 6 kHz TIM7 tick, about 166.7 us. Starts repeat at 20 ms x 10 then 24 ms x 2, a 248 ms cycle. |
| mic_send_cdc_text(dev,command) | dev: 열린 MIC0528 핸들; command: 개행 없는 CDC 명령 문자열. | MIC_OK이면 한 줄을 전송합니다. 진단용 API이며, 일반 제어에는 형식이 보장된 개별 설정 함수를 우선 사용합니다. NULL·빈 문자열은 MIC_EINVAL. |
sigprocsdk actuator supplement · 2026-10-15
sigprocsdk의 C actuator API를 사용합니다. 이 예제를 순수 C UI 예제라고 간주하지 마십시오.서보는 항상 actcontrol USB CDC 브리지에 연결된 가상 COM/TTY 포트를 통해 제어합니다. SDK 호스트가 서보 UART에 직접 연결하지 않습니다. Windows 예: COM12; Linux 예: /dev/ttyACM0. USB CDC 호스트 baud는 115200으로 열며, 서보의 baud 레지스터 설정과 별개입니다.
| 대시보드 동작 | SDK API / 구현 방법 | 참고 |
|---|---|---|
| 연결·해제 | actuator_open_actcontrol(path,&bus), actuator_close(bus) | actuator_open_serial은 호환 별칭입니다. 두 함수 모두 actcontrol USB CDC 포트를 엽니다. |
| 선택한 모터 상태 새로고침·주기 조회 | actuator_read_state(bus,id,&state,timeout_ms) | 요청/응답 방식의 동기 API입니다. UI 응답성을 위해 타이머 작업자나 별도 worker에서 호출하고, 결과를 UI 스레드로 전달하십시오. |
| 토크 활성·비활성, 모드, 위치·속도·전류 목표 | actuator_servo_set_torque, actuator_servo_set_mode, actuator_servo_set_goal_position/velocity/current | typed 서보 API는 ID 0–250을 받습니다. 위치 ±3600 deg, 속도 ±1500 deg/s, 전류 ±200 mA 범위이며 목표 명령 전에 해당 제어 모드를 먼저 설정하십시오. |
| 운전 모드 | ACTUATOR_MODE_CURRENT, _VELOCITY, _POSITION, _CONTINUOUS_POSITION, _RAW_PWM | 레지스터 값은 각각 0x01, 0x02, 0x04, 0x0C, 0xFF입니다. |
| 여러 ID 그래프·이력 | ID마다 actuator_read_state를 호출하고 앱에서 시각·이력 버퍼를 저장·그리기 | SDK가 그래프 위젯이나 샘플 이력 저장소를 제공하지는 않습니다. |
| 서보 한계·ID·baud·reverse·zero·PID/AW·reboot·factory reset | actuator_read_registers, actuator_write_registers; 비연속 주소는 actuator_build_packet + actuator_send_packet + 필요 시 actuator_read_packet | 레지스터 주소·길이·단위는 DRV256 레지스터 표를 따르십시오. ACK 쓰기는 wait_for_ack != 0 또는 해당 ACK 패킷 명령을 사용합니다. |
| 패킷 빌더·원시 TX/RX·로그 | actuator_build_packet, actuator_send_packet, actuator_read_packet | 송수신 바이트 및 로그 표시는 호출 앱이 관리합니다. |
actuator_state_t 필드 | 의미 |
|---|---|
id, is_esc, valid | 응답 ID, ESC 레지스터 맵 여부, 유효 상태 표시. |
torque_enabled, operating_mode, hardware_error, moving | 토크 상태, 운전 모드, 장치 오류 비트, 이동/회전 상태. |
position_deg, velocity, current_ma | 현재 위치(deg), 속도(서보 deg/s 또는 ESC RPM), 전류(mA). |
goal_position_deg, goal_velocity, goal_current_ma | 목표 레지스터 값. ESC에서 position은 지원되지 않으며 ESC 목표 값은 장치 레지스터 단위입니다. |
pwm_command, torque_or_throttle, voltage_v, temperature_c | 서보 PWM 명령 또는 ESC raw PWM, 출력 전력(W) 또는 ESC throttle(4096 단위), 전압(V), 온도(°C). |
서보 ID는 0–250, ESC ID는 251–254입니다. actuator_read_state는 ESC ID에서 ESC 맵을 해석하지만, 위의 typed actuator_servo_* 제어 함수는 서보 ID만 허용합니다. 미지원 ESC 값은 장치가 정의한 sentinel일 수 있습니다.
아래 코드는 C 앱에서 SDK를 직접 호출해 actcontrol 포트 연결, 상태 조회, 목표 명령을 수행하는 최소 예입니다. 반복 조회·그래프·입력 위젯은 이 호출 주위에 앱 코드로 구현합니다.
#include <stdio.h>
#include "mic_sdk/mic_sdk.h"
int main(void) {
actuator_t *bus = NULL;
actuator_state_t state;
mic_status_t status;
status = actuator_open_actcontrol("COM12", &bus);
if (status != MIC_OK) {
fprintf(stderr, "actcontrol open failed: %d\n", (int)status);
return 1;
}
status = actuator_read_state(bus, 1, &state, 500);
if (status == MIC_OK) {
printf("ID %u: %.1f deg, %.1f deg/s, %.0f mA\n",
state.id, state.position_deg, state.velocity, state.current_ma);
/* Dashboard slider equivalent: select mode, then issue goal. */
status = actuator_servo_set_mode(bus, 1,
ACTUATOR_MODE_CONTINUOUS_POSITION, 500);
if (status == MIC_OK)
status = actuator_servo_set_goal_position(bus, 1, 90.0, 500);
}
actuator_close(bus);
return status == MIC_OK ? 0 : 1;
}
| 주소 | 대시보드 항목 | 표현·단위 |
|---|---|---|
0x82, 0x83, 0x85 | ID, 서보 baud code, operating mode | 각 1 byte. baud code는 서보 측 설정이며 actcontrol USB CDC의 115200 baud와 다릅니다. |
0x86, 0x8E–0xA9 | zero offset, 온도·전압·전류·속도·가속도·위치 한계 | 각 레지스터 정의의 정수 폭과 부호를 따릅니다. 위치 한계는 0.1 deg, 전압 한계는 1 mV 단위입니다. |
0xB7–0xC7 | Position / Velocity / Current PID P,I,D | 오름차순 16-bit gain 9개; 18 bytes. |
0xC9, 0xCA, 0xCC, 0xCE | 방향 반전, Current / Velocity / Position anti-windup shift | reverse는 1 byte; AW 값은 각각 16-bit. |
0xD0–0xE1 | 토크, 오류·이동 상태, 목표 current/velocity/position, profile 설정 | 목표 current는 mA, velocity는 0.1 deg/s, position은 0.1 deg 레지스터 단위. |
0xE8–0xFA | 현재 전류·출력·속도·위치·전압·온도·PWM 텔레메트리 | 정확한 필드별 폭·단위·sentinel은 제품 레지스터 표를 따릅니다. |
0xD2, 0xD3 | Factory reset, reboot 요청 | 각 요청 바이트에 1을 써서 실행합니다. reset/reboot는 복구 불가능한 설정 변경이나 재시작을 유발할 수 있으므로 명시적 UI 동작으로 연결하십시오. |
일반 연속 레지스터는 actuator_read_registers/actuator_write_registers로 처리합니다. 서로 떨어진 주소를 한 요청에 묶거나 전체 packet editor를 구현할 때는 주소 배열을 actuator_build_packet에 전달합니다. WRITE 계열은 주소마다 1 byte씩 전송 데이터를 전달하고, 다중 byte 레지스터는 little-endian으로 직렬화하십시오. ACK packet은 동기화된 TX/RX로 처리하십시오.
| 항목 | 내용 |
|---|---|
sdk/examples/actuator_dashboard.c | C 콘솔 예제. 빌드 산출 이름은 actuator_cli입니다. |
sdk/examples/actuator_dashboard_host.cpp | Windows WebView2 대시보드 호스트. C++ WebView2 래퍼와 기존 HTML을 사용하며 C SDK actuator API로 하드웨어를 조작합니다. |
sdk/examples/dashboard_web_native_actuator/index.html | 웹 actcontrol 대시보드 UI. native host 경로에서는 웹의 Web Serial 대신 SDK host message bridge를 사용합니다. |
sdk/include/mic_sdk/actuator.h | 공개 actuator C API의 선언 정본. |
이 보충 내용은 기존 MIC/SM API 표를 대체하지 않습니다. SDK 공개 include는 #include "mic_sdk/mic_sdk.h"이며, actuator 부분만 필요하면 #include "mic_sdk/actuator.h"를 포함할 수 있습니다. 실제 레지스터의 세부 정의는 배포된 DRV256 펌웨어/제품 문서 및 drv256_dashboard.html의 레지스터 테이블과 함께 확인하십시오.