Initial wasm simulator checkpoint
This commit is contained in:
88
core/include/cnc_sim_api.h
Normal file
88
core/include/cnc_sim_api.h
Normal file
@@ -0,0 +1,88 @@
|
||||
#pragma once
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define CNC_SIM_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define CNC_SIM_EXPORT __attribute__((visibility("default")))
|
||||
#endif
|
||||
|
||||
typedef struct CncSimHandle CncSimHandle;
|
||||
|
||||
typedef enum CncSimDialect {
|
||||
CNC_SIM_DIALECT_LINUXCNC = 0,
|
||||
CNC_SIM_DIALECT_FANUC = 1,
|
||||
CNC_SIM_DIALECT_SIEMENS = 2
|
||||
} CncSimDialect;
|
||||
|
||||
typedef enum CncSimEventType {
|
||||
CNC_SIM_EVENT_NONE = 0,
|
||||
CNC_SIM_EVENT_ERROR = 1,
|
||||
CNC_SIM_EVENT_COMMENT = 2,
|
||||
CNC_SIM_EVENT_SET_UNITS = 3,
|
||||
CNC_SIM_EVENT_SET_PLANE = 4,
|
||||
CNC_SIM_EVENT_SET_FEED = 5,
|
||||
CNC_SIM_EVENT_SET_SPINDLE = 6,
|
||||
CNC_SIM_EVENT_TOOL_CHANGE = 7,
|
||||
CNC_SIM_EVENT_DWELL = 8,
|
||||
CNC_SIM_EVENT_RAPID = 9,
|
||||
CNC_SIM_EVENT_LINEAR_FEED = 10,
|
||||
CNC_SIM_EVENT_ARC_FEED = 11,
|
||||
CNC_SIM_EVENT_PROBE = 12,
|
||||
CNC_SIM_EVENT_PROGRAM_END = 13,
|
||||
CNC_SIM_EVENT_RTCP_PIVOT = 14,
|
||||
CNC_SIM_EVENT_KINEMATICS_SWITCH = 15,
|
||||
CNC_SIM_EVENT_RTCP_STATE = 16,
|
||||
CNC_SIM_EVENT_SET_G5X_OFFSET = 17,
|
||||
CNC_SIM_EVENT_SET_G92_OFFSET = 18,
|
||||
CNC_SIM_EVENT_SET_XY_ROTATION = 19
|
||||
} CncSimEventType;
|
||||
|
||||
typedef struct CncSimPose {
|
||||
double x;
|
||||
double y;
|
||||
double z;
|
||||
double a;
|
||||
double b;
|
||||
double c;
|
||||
double u;
|
||||
double v;
|
||||
double w;
|
||||
} CncSimPose;
|
||||
|
||||
typedef struct CncSimEvent {
|
||||
uint32_t version;
|
||||
CncSimEventType type;
|
||||
int32_t line;
|
||||
int32_t plane;
|
||||
int32_t tool;
|
||||
double feed;
|
||||
double spindle;
|
||||
double dwell_seconds;
|
||||
CncSimPose start;
|
||||
CncSimPose end;
|
||||
CncSimPose center;
|
||||
int32_t arc_turns;
|
||||
int32_t reserved;
|
||||
} CncSimEvent;
|
||||
|
||||
typedef int (*CncSimEventCallback)(const CncSimEvent *event, void *user_data);
|
||||
|
||||
CNC_SIM_EXPORT CncSimHandle *cnc_sim_create(void);
|
||||
CNC_SIM_EXPORT void cnc_sim_destroy(CncSimHandle *handle);
|
||||
CNC_SIM_EXPORT void cnc_sim_reset(CncSimHandle *handle);
|
||||
CNC_SIM_EXPORT int cnc_sim_set_dialect(CncSimHandle *handle, CncSimDialect dialect);
|
||||
CNC_SIM_EXPORT int cnc_sim_set_event_callback(CncSimHandle *handle, CncSimEventCallback callback, void *user_data);
|
||||
CNC_SIM_EXPORT int cnc_sim_load_config_json(CncSimHandle *handle, const char *json, size_t json_len);
|
||||
CNC_SIM_EXPORT int cnc_sim_parse_program(CncSimHandle *handle, const char *program, size_t program_len);
|
||||
CNC_SIM_EXPORT const char *cnc_sim_last_error(CncSimHandle *handle);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user