diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..f5a5c31 --- /dev/null +++ b/build.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +halcompile --userspace collisionavoid.comp +mv collisionavoid.c build/ + +gcc -Os -g -I. -I/usr/realtime-4.14.174-rtai-amd64/include -I. -I/usr/realtime-4.14.174-rtai-amd64/include -D_FORTIFY_SOURCE=0 \ + -mhard-float -DRTAI=3 -fno-fast-math -mieee-fp -fno-unsafe-math-optimizations -DRTAPI -std=c99 -D_GNU_SOURCE -Drealtime \ + -D_FORTIFY_SOURCE=0 -D__MODULE__ -I/usr/include/linuxcnc -Wframe-larger-than=2560 -URTAPI -U__MODULE__ -DULAPI -Os \ + -o build/collisionavoid build/collisionavoid.c -Wl,-rpath,/lib -L/lib -llinuxcnchal diff --git a/build/collisionavoid b/build/collisionavoid deleted file mode 100755 index 3976fa5..0000000 Binary files a/build/collisionavoid and /dev/null differ diff --git a/build/collisionavoid.c b/build/collisionavoid.c deleted file mode 100644 index f1e0f8e..0000000 --- a/build/collisionavoid.c +++ /dev/null @@ -1,153 +0,0 @@ -/* Autogenerated by /usr/bin/halcompile on Wed Nov 27 15:02:36 2024 -- do not edit */ -#include "rtapi.h" -#ifdef RTAPI -#include "rtapi_app.h" -#endif -#include "rtapi_string.h" -#include "rtapi_errno.h" -#include "hal.h" -#include "rtapi_math64.h" - -static int comp_id; - -#ifdef MODULE_INFO -MODULE_INFO(linuxcnc, "component:collisionavoid:Avoid Collisions"); -MODULE_INFO(linuxcnc, "pin:xaxis:float:0:in::None:None"); -MODULE_INFO(linuxcnc, "pin:yaxis:float:0:in::None:None"); -MODULE_INFO(linuxcnc, "pin:zaxis:float:0:in::None:None"); -MODULE_INFO(linuxcnc, "pin:chuck:bit:0:in::None:None"); -MODULE_INFO(linuxcnc, "pin:table:bit:0:in::None:None"); -MODULE_INFO(linuxcnc, "pin:stop:bit:0:out::None:None"); -MODULE_INFO(linuxcnc, "license:GPL"); -MODULE_LICENSE("GPL"); -#endif // MODULE_INFO - - -struct __comp_state { - struct __comp_state *_next; - hal_float_t *xaxis; - hal_float_t *yaxis; - hal_float_t *zaxis; - hal_bit_t *chuck; - hal_bit_t *table; - hal_bit_t *stop; -}; -#include -struct __comp_state *__comp_first_inst=0, *__comp_last_inst=0; - -static int __comp_get_data_size(void); -#undef TRUE -#define TRUE (1) -#undef FALSE -#define FALSE (0) -#undef true -#define true (1) -#undef false -#define false (0) - -static int export(char *prefix, long extra_arg) { - int r = 0; - int sz = sizeof(struct __comp_state) + __comp_get_data_size(); - struct __comp_state *inst = hal_malloc(sz); - memset(inst, 0, sz); - r = hal_pin_float_newf(HAL_IN, &(inst->xaxis), comp_id, - "%s.xaxis", prefix); - if(r != 0) return r; - r = hal_pin_float_newf(HAL_IN, &(inst->yaxis), comp_id, - "%s.yaxis", prefix); - if(r != 0) return r; - r = hal_pin_float_newf(HAL_IN, &(inst->zaxis), comp_id, - "%s.zaxis", prefix); - if(r != 0) return r; - r = hal_pin_bit_newf(HAL_IN, &(inst->chuck), comp_id, - "%s.chuck", prefix); - if(r != 0) return r; - r = hal_pin_bit_newf(HAL_IN, &(inst->table), comp_id, - "%s.table", prefix); - if(r != 0) return r; - r = hal_pin_bit_newf(HAL_OUT, &(inst->stop), comp_id, - "%s.stop", prefix); - if(r != 0) return r; - if(__comp_last_inst) __comp_last_inst->_next = inst; - __comp_last_inst = inst; - if(!__comp_first_inst) __comp_first_inst = inst; - return 0; -} -int rtapi_app_main(void) { - int r = 0; - comp_id = hal_init("collisionavoid"); - if(comp_id < 0) return comp_id; - r = export("collisionavoid", 0); - if(r) { - hal_exit(comp_id); - } else { - hal_ready(comp_id); - } - return r; -} - -void rtapi_app_exit(void) { - hal_exit(comp_id); -} -static void user_mainloop(void); -int argc=0; char **argv=0; -int main(int argc_, char **argv_) { - argc = argc_; argv = argv_; - - if(rtapi_app_main() < 0) return 1; - user_mainloop(); - rtapi_app_exit(); - return 0; -} - -#undef FUNCTION -#define FUNCTION(name) static void name(struct __comp_state *__comp_inst, long period) -#undef EXTRA_SETUP -#define EXTRA_SETUP() static int extra_setup(struct __comp_state *__comp_inst, char *prefix, long extra_arg) -#undef EXTRA_CLEANUP -#define EXTRA_CLEANUP() static void extra_cleanup(void) -#undef fperiod -#define fperiod (period * 1e-9) -#undef xaxis -#define xaxis (0+*__comp_inst->xaxis) -#undef yaxis -#define yaxis (0+*__comp_inst->yaxis) -#undef zaxis -#define zaxis (0+*__comp_inst->zaxis) -#undef chuck -#define chuck (0+*__comp_inst->chuck) -#undef table -#define table (0+*__comp_inst->table) -#undef stop -#define stop (*__comp_inst->stop) -#undef FOR_ALL_INSTS -#define __comp_inst __comp_first_inst -#define FOR_ALL_INSTS() - - -#line 19 "collisionavoid.comp" - -#include /* Standard input/output definitions */ - - -void user_mainloop(void) -{ - FOR_ALL_INSTS() //needed for resaons - { - while(1) - { - usleep(500); - if(chuck == 1 && xaxis > 107 && yaxis < 32 && zaxis < -25 ) stop = 1; - else if(table == 1 && xaxis > 107 && yaxis < 32 && zaxis < -25 ) stop = 1; - else stop = 0; - - } - } - exit(0); -} - - - - - -static int __comp_get_data_size(void) { return 0; }