commit acaf8674347f33a8cdee8759036e3d1396e621f6 Author: Mats van Reenen Date: Thu Dec 24 22:36:51 2020 +0100 inital commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4943523 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/debug +/domeTimer \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5ad8da5 --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +CC := gcc +CURDIR := $(shell pwd) + +DEBUGDIR := $(CURDIR)/debug +SRCDIR := $(CURDIR)/src + +main.o: src/main.c + $(CC) -c $(SRCDIR)/main.c -o $(DEBUGDIR)/main.o + +domeTimer: main.o + $(CC) $(SRCDIR)/main.c -o $(CURDIR)/domeTimer + +all: domeTimer + +clean: + rm -p domeTimer $(DEBUGDIR)/* \ No newline at end of file diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..21a3df2 --- /dev/null +++ b/src/main.c @@ -0,0 +1,115 @@ +#include +#include +#include +#include +#include + +typedef struct { + uint32_t scheduler[5]; + uint32_t next; + char extention[4]; +} Script_t; +Script_t *Scripts[128]; + +//TODO: add devide option +//TOOD: add full file name instad of only extention +Script_t *getSchedule(char *str){ + uint8_t is = 0; + Script_t scit; + scit.scheduler[0] = + scit.scheduler[1] = + scit.scheduler[2] = + scit.scheduler[3] = + scit.scheduler[4] = 0; + scit.extention[3] = 0; + int8_t cmd[3]; + cmd[0] = cmd[1] = cmd[2] = 0; + printf("filename: %s\n", str); + + // read the filename + for(uint8_t ic=0; iccmd[1]; i--){ + scit.scheduler[is] |= 1<= strlen(str)){ + memcpy(&scit.extention, str+ic+1, strlen(str) - ic); + scit.extention[strlen(str) - ic] = 0; + }else + memcpy(&scit.extention, str + strlen(str) - 3, 3); + break; + } + if(is == 5) + break; + } + printf("scheduler: [\n 0x%x\n 0x%x\n 0x%x\n 0x%x\n 0x%x\n]\nextention: %s\n", + scit.scheduler[0], + scit.scheduler[1], + scit.scheduler[2], + scit.scheduler[3], + scit.scheduler[4], + scit.extention + ); +} + +void getScripts(){ + DIR *ScriptDir = opendir("./scripts"); + uint8_t i=0; + while(i < 128){ + struct dirent *script = readdir(ScriptDir); + + if(script == NULL) + break; + + //TODO: add simbolic link suport + if(script->d_type != DT_REG) + continue; + + Scripts[i] = getSchedule(script->d_name); + i++; + } +} + +void main(){ + getScripts(); +} \ No newline at end of file