15,888,144 members
Sign in
Sign in
Email
Password
Forgot your password?
Sign in with
home
articles
Browse Topics
>
Latest Articles
Top Articles
Posting/Update Guidelines
Article Help Forum
Submit an article or tip
Import GitHub Project
Import your Blog
quick answers
Q&A
Ask a Question
View Unanswered Questions
View All Questions
View C# questions
View C++ questions
View Javascript questions
View Visual Basic questions
View Python questions
discussions
forums
CodeProject.AI Server
All Message Boards...
Application Lifecycle
>
Running a Business
Sales / Marketing
Collaboration / Beta Testing
Work Issues
Design and Architecture
Artificial Intelligence
ASP.NET
JavaScript
Internet of Things
C / C++ / MFC
>
ATL / WTL / STL
Managed C++/CLI
C#
Free Tools
Objective-C and Swift
Database
Hardware & Devices
>
System Admin
Hosting and Servers
Java
Linux Programming
Python
.NET (Core and Framework)
Android
iOS
Mobile
WPF
Visual Basic
Web Development
Site Bugs / Suggestions
Spam and Abuse Watch
features
features
Competitions
News
The Insider Newsletter
The Daily Build Newsletter
Newsletter archive
Surveys
CodeProject Stuff
community
lounge
Who's Who
Most Valuable Professionals
The Lounge
The CodeProject Blog
Where I Am: Member Photos
The Insider News
The Weird & The Wonderful
help
?
What is 'CodeProject'?
General FAQ
Ask a Question
Bugs and Suggestions
Article Help Forum
About Us
Search within:
Articles
Quick Answers
Messages
Comments by GPIB1 (Top 6 by date)
GPIB1
13-Jan-15 9:13am
View
Thanks for the insight, so from your responses it sounds like your replacement used the device driver route, and intime uses the same mechanism? It sounds like even though the driver does the real time stuff that there is always uncertainty as soon as you cross back over into the windows OS, there is no guarantee that the decisions made and batched in the application will make it to the driver in a deterministic time (or will it, audio and video applications would have to have ways to mitigate this or there would be chop)
GPIB1
12-Jan-15 17:23pm
View
What about the InTime link, it says it is a full RTOS for windows and is "hard real-time"
The mechanism they are using to do that is what is interesting, but should be impossible from what I am reading otherwise.
GPIB1
12-Jan-15 16:55pm
View
As long as windows is in the loop to interactively generate and send the data to the external device there could still be issues though? In most applications that I am looking at there needs to be a certain amount of coordination between anything external and real time and the software running on Windows.
For example using AutoCAD and its API to handle 3D point clouds and then driving some actuators based on this data (for arguments sake lets say some arbitrary control of a hot wire foam cutter in some bizarre display of art) I don't think that it would be reasonable to engineer an entire real time system that has the capabilities of AutoCAD included in it.
I know you can process the data on the Windows computer and then export/load it into the external real time system to process all at once. There are still cases though like what if the data was coming in "live" over the IoT that everyone is raving about.
This would have to be done carefully though to ensure that enough resources are available to meet your desired timing (more or less since it is not real time by definition) but this is not much different than a micro that is using a super loop without any RTOS.
It sounds like using a device driver is a way to get closer to the desired operation since it can have much greater control over the lower level timing.
This has to be similar to how games are constructed? I don't ever remember playing a game and hitting a direction key and having a random varying half a second delay before hitting the key and seeing a response. That is unless I set the frame rate/resolution way to high for the capacity of the system (which is the same scenario that I looking at except instead of a loop running as fast as possible it would be one that can be triggered every .5ms like the GMFC stuff....)
GPIB1
12-Jan-15 16:40pm
View
Agree about the controversy, but not sure what better phrase describes "real time as in decode video, synthesize audio, or control as in GMFC stepper motors without any skipping, jitter, etc"
There may not be real-time in Windows by definition but there is a way to write software as observed, it ran for hours without missing a beat or being able to notice any adverse/jittery operation. IIRC it did load the CPU/Windows to the point where the UI was not responsive, but it did still allow you to escape out with a key press.
GPIB1
12-Jan-15 16:31pm
View
I think this is the closest way that I can achieve what I want. After reviewing the software/hardware that I used years ago (GMFC) it turns out that there is a 2kHz signal that is generated on external hardware and this is used to send interrupts through the parallel port. So I think based on what I know now that it was actually using a hardware driver mechanism.
GPIB1
12-Jan-15 16:28pm
View
I agree with the statement, was looking for as real time as possible. I was basing the question on observation of a "real-time" stepper motor control software that was appearing to actually send signals in a very deterministic way with very short periods between signals (0.5ms as I now found out)
Show More