You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi guys,
with original code I was not able to use < input redirection on Windows, to read g-code from file. I think root cause is using _kbhit() and getch().
Did quick fix that works for me:
From 05fd7ab068552fc7955d9d50132efa727da3818f Mon Sep 17 00:00:00 2001
From: Oleksiy Bondarenko alexeibondarenko@cashcode.com
Date: Mon, 2 Nov 2015 12:51:01 -0500
Subject: [PATCH] Made windows version stdin redirect friendly
#The original grbl code, except those files overriden by sim
GRBL_BASE_OBJECTS = ../protocol.o ../planner.o ../settings.o ../print.o ../nuts_bolts.o ../stepper.o ../gcode.o ../spindle_control.o ../motion_control.o ../limits.o ../coolant_control.o ../probe.o ../system.o
diff --git a/platform_WINDOWS.c b/platform_WINDOWS.c
index 7c4a3c3..71b8224 100644
--- a/platform_WINDOWS.c
+++ b/platform_WINDOWS.c
@@ -31,12 +31,32 @@
double ns_per_perfcount;
+volatile struct {
//CRITICAL_SECTION m_lock;
bool isEmpty;
int content;
+} stdin_q;
+PLAT_THREAD_FUNC(stdin_poller, exit)
+{
while (true) {
if (stdin_q.isEmpty) {
stdin_q.content = getchar();
stdin_q.isEmpty = false;
}
Sleep(1);
}
return NULL;
+}
//any platform-specific setup that must be done before sim starts here
void platform_init()
{
__int64 counts_per_sec;
QueryPerformanceFrequency((LARGE_INTEGER*)&counts_per_sec);
ns_per_perfcount = (float)NS_PER_SEC / counts_per_sec;
Hi guys,
with original code I was not able to use < input redirection on Windows, to read g-code from file. I think root cause is using _kbhit() and getch().
Did quick fix that works for me:
From 05fd7ab068552fc7955d9d50132efa727da3818f Mon Sep 17 00:00:00 2001
From: Oleksiy Bondarenko alexeibondarenko@cashcode.com
Date: Mon, 2 Nov 2015 12:51:01 -0500
Subject: [PATCH] Made windows version stdin redirect friendly
Makefile | 4 ++--
platform_WINDOWS.c | 32 +++++++++++++++++++++++++++-----
sim.bat | 4 +++-
3 files changed, 32 insertions(+), 8 deletions(-)
diff --git a/Makefile b/Makefile
index a6945bd..298123f 100644
--- a/Makefile
+++ b/Makefile
@@ -16,9 +16,9 @@
You should have received a copy of the GNU General Public License
along with Grbl. If not, see http://www.gnu.org/licenses/.
-# PLATFORM = WINDOWS
+PLATFORM = WINDOWS
PLATFORM = OSX
-PLATFORM = LINUX
+# PLATFORM = LINUX
#The original grbl code, except those files overriden by sim
GRBL_BASE_OBJECTS = ../protocol.o ../planner.o ../settings.o ../print.o ../nuts_bolts.o ../stepper.o ../gcode.o ../spindle_control.o ../motion_control.o ../limits.o ../coolant_control.o ../probe.o ../system.o
diff --git a/platform_WINDOWS.c b/platform_WINDOWS.c
index 7c4a3c3..71b8224 100644
--- a/platform_WINDOWS.c
+++ b/platform_WINDOWS.c
@@ -31,12 +31,32 @@
double ns_per_perfcount;
+volatile struct {
+} stdin_q;
+PLAT_THREAD_FUNC(stdin_poller, exit)
+{
+}
//any platform-specific setup that must be done before sim starts here
void platform_init()
{
__int64 counts_per_sec;
QueryPerformanceFrequency((LARGE_INTEGER*)&counts_per_sec);
ns_per_perfcount = (float)NS_PER_SEC / counts_per_sec;
}
//cleanup int here;
@@ -62,7 +82,6 @@ void platform_sleep(long microsec)
{
Sleep(microsec/MICRO_PER_MILLI);
}
//create a thread
plat_thread_t* platform_start_thread(plat_threadfunc_t threadfunc) {
@@ -89,8 +108,11 @@ void platform_kill_thread(plat_thread_t* th){
//return char if one available.
uint8_t platform_poll_stdin() {
}
diff --git a/sim.bat b/sim.bat
index ea3b05e..8dcd46b 100755
--- a/sim.bat
+++ b/sim.bat
@@ -1 +1,3 @@
-./grbl_sim.exe -t 1 0.01 <HelloWorld.nc >HelloWorld.dat 2> HelloWorldSteps.dat
+@Rem grbl_sim -h
+@Rem gdb --args
+grbl_sim.exe -r 1 -t 1 -s HelloWorldSteps.dat 0.01 0<test.nc 1>out.txt
--
1.9.5.msysgit.1
The text was updated successfully, but these errors were encountered: