It seems that many projects come upon a need to perform some linear algebra maths. However, the a large number of the available libraries usually are huge with many unnecessary or system dependent functionalities or …they are not free. The following template class provides some basic linear algebra matrix operations such as +,-,* as well as find the determinant, the covariance matrix...
CRC16 Simple Algorithm for C
The following code snippet is about CRC16 hash function. Usually in embedded systems there is an already built-in function for CRC8-16-32 etc. However in case there is not, here is a simple approach for it. If you are looking for CRC8 Algorithm please go to the following post here. /* CRC_H_ */ #ifndef CRC_H_ #define CRC_H_ #ifdef __cplusplus extern "C" { #endif #include <string.h> #include...
Improved circular list /array (ring buffer) in C++
This is a new version of the ring buffer. Using function templates the FIFO ring buffer is able to handle almost any type of data. template<typename T> struct cbuffer_t { T * data; T * first; T * next; int max; }; template<typename T> extern cbuffer_t<T> * cBufferInit(int); template<typename T> extern int cBufferPush(cbuffer_t<T> *, T ); template<typename T> extern int...
Simple Memory Management
This project is a memory allocation scheme that provides efficient dynamic memory allocation for small embedded systems lacking a Memory Management Unit (MMU). The proposed Simple Memory Management Scheme (SMM) maintains a balance between performance and efficiency, with the objective to increase the amount of usable memory in MMU-less embedded systems with a bounded and acceptable timing...
How to install Latex (texStudio) in a Windows PC
In this post we will introduce how to install MiKTeX plus TeXstudio on windows. This is very easy! You simply have to accept just about all the default settings. Step 1: To begin with you have to go to the MikTeX website and navigate at the downloading page. From there you could pick the appropriate installer (32bits or 64bits) based on your system. [ Link ] Step 2: Just start the installation...
Implement a circular list /array (ring buffer) in C
A very simple implementation, expressed in C. Implements a simple circular buffer in C as a FIFO queue. Note that this allows queues of any size. #ifndef CIRCULARBUFFER_H_ #define CIRCULARBUFFER_H_ typedef struct { int * data; int * first; int * next; int max; } cbuffer_t; cbuffer_t * cBufferInit(int max); int cBufferPush(cbuffer_t *c, int data); int cBufferPop(cbuffer_t *c, int *data); #endif /*...
C# Universal Applications – Local Settings
At the point when pondering your universal applications information, one angle to consider is data lifetime. All in all, with regards to the lifetime of information, you have two alternatives: local data, which exists as long as the app that created it remains installed, and roaming data. Use settings to store application state and client inclinations. The Universal Windows Platform (UWP) gives...
Pentapod Robot first steps using IK, Gait and Blending IK
Here it is… the first steps of our pentapod. Even if the algorithm produces precise results, the servo angle do require some offsets to work smoothly … and of course better servo motors (not these cheap and unbalanced). The motion system is using a GAIT sequencer to produce the motion frames and the IK algorithm translates them into actual servo angles. Moreover a blending algorithm...
Windows 10 Hamburger menu for Universal Apps
Hamburger menu/button is a simple navigation design which we can see in most modern app platforms. In most of the default Windows 10 apps Microsoft has used this navigation pattern and also recommends it to the developers. I have found a lot of information about building such a feature in an app. Getting Started with the SplitView Control in Universal Apps Implementing an Awesome...
Obfuscation techniques for Malwares
An obfuscation technique (also called Polymorphism) is a way of constructing a malware that make it more difficult to detect. If a malware is hard to detect, it is likely to spread more widely. The following are commonly used obfuscation techniques: Self-Encryption and Self-Decryption. Some viruses can encrypt and decrypt their virus code bodies, concealing them from direct...