Kleber Kruger / Mbed 2 deprecated FaultInjector

Dependencies:   mbed

Committer:
kleberkruger
Date:
Sat Sep 14 22:58:28 2013 +0000
Revision:
0:ef0a1a6d4a40
Fault injector system.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kleberkruger 0:ef0a1a6d4a40 1 /*
kleberkruger 0:ef0a1a6d4a40 2 * File: Utils.cpp
kleberkruger 0:ef0a1a6d4a40 3 * Author: Kleber Kruger
kleberkruger 0:ef0a1a6d4a40 4 *
kleberkruger 0:ef0a1a6d4a40 5 * Created on 11 de Junho de 2013, 11:39
kleberkruger 0:ef0a1a6d4a40 6 */
kleberkruger 0:ef0a1a6d4a40 7
kleberkruger 0:ef0a1a6d4a40 8 #include "Utils.h"
kleberkruger 0:ef0a1a6d4a40 9
kleberkruger 0:ef0a1a6d4a40 10 /**
kleberkruger 0:ef0a1a6d4a40 11 * Gera um número aleatório entre o intervalo mínimo e máximo.
kleberkruger 0:ef0a1a6d4a40 12 *
kleberkruger 0:ef0a1a6d4a40 13 * @param min - número mínimo
kleberkruger 0:ef0a1a6d4a40 14 * @param max - número máximo
kleberkruger 0:ef0a1a6d4a40 15 */
kleberkruger 0:ef0a1a6d4a40 16 unsigned int getRandomIntPositive(unsigned int min, unsigned int max) {
kleberkruger 0:ef0a1a6d4a40 17 int k;
kleberkruger 0:ef0a1a6d4a40 18 double d;
kleberkruger 0:ef0a1a6d4a40 19 d = (double) rand() / ((double) RAND_MAX + 1);
kleberkruger 0:ef0a1a6d4a40 20 k = d * (max - min + 1);
kleberkruger 0:ef0a1a6d4a40 21 return min + k;
kleberkruger 0:ef0a1a6d4a40 22 }
kleberkruger 0:ef0a1a6d4a40 23
kleberkruger 0:ef0a1a6d4a40 24 /**
kleberkruger 0:ef0a1a6d4a40 25 * Gera um número aleatório entre o intervalo mínimo e máximo.
kleberkruger 0:ef0a1a6d4a40 26 *
kleberkruger 0:ef0a1a6d4a40 27 * @param min - número mínimo
kleberkruger 0:ef0a1a6d4a40 28 * @param max - número máximo
kleberkruger 0:ef0a1a6d4a40 29 */
kleberkruger 0:ef0a1a6d4a40 30 double getRandomDouble(double min, double max) {
kleberkruger 0:ef0a1a6d4a40 31 double d, k;
kleberkruger 0:ef0a1a6d4a40 32 d = (double) rand() / ((double) RAND_MAX + 1);
kleberkruger 0:ef0a1a6d4a40 33 k = d * (max - min + 1);
kleberkruger 0:ef0a1a6d4a40 34 return min + k;
kleberkruger 0:ef0a1a6d4a40 35 }
kleberkruger 0:ef0a1a6d4a40 36
kleberkruger 0:ef0a1a6d4a40 37 /**
kleberkruger 0:ef0a1a6d4a40 38 * Gera um número aleatório entre o intervalo mínimo e máximo.
kleberkruger 0:ef0a1a6d4a40 39 *
kleberkruger 0:ef0a1a6d4a40 40 * @param min - número mínimo
kleberkruger 0:ef0a1a6d4a40 41 * @param max - número máximo
kleberkruger 0:ef0a1a6d4a40 42 */
kleberkruger 0:ef0a1a6d4a40 43 float getRandomFloat(float min, float max) {
kleberkruger 0:ef0a1a6d4a40 44 int rd = (int) getRandomDouble((int) (min * 10), (int) (max * 10) + 1);
kleberkruger 0:ef0a1a6d4a40 45 return (float) rd / 10;
kleberkruger 0:ef0a1a6d4a40 46 }
kleberkruger 0:ef0a1a6d4a40 47
kleberkruger 0:ef0a1a6d4a40 48 /**
kleberkruger 0:ef0a1a6d4a40 49 * C++ version 0.4 char* style "itoa":
kleberkruger 0:ef0a1a6d4a40 50 * Written by Lukás Chmela
kleberkruger 0:ef0a1a6d4a40 51 * Released under GPLv3.
kleberkruger 0:ef0a1a6d4a40 52 */
kleberkruger 0:ef0a1a6d4a40 53 char *itoa(int value, char *result, int base) {
kleberkruger 0:ef0a1a6d4a40 54 // check that the base if valid
kleberkruger 0:ef0a1a6d4a40 55 if (base < 2 || base > 36) {
kleberkruger 0:ef0a1a6d4a40 56 *result = '\0';
kleberkruger 0:ef0a1a6d4a40 57 return result;
kleberkruger 0:ef0a1a6d4a40 58 }
kleberkruger 0:ef0a1a6d4a40 59
kleberkruger 0:ef0a1a6d4a40 60 char* ptr = result, *ptr1 = result, tmp_char;
kleberkruger 0:ef0a1a6d4a40 61 int tmp_value;
kleberkruger 0:ef0a1a6d4a40 62
kleberkruger 0:ef0a1a6d4a40 63 do {
kleberkruger 0:ef0a1a6d4a40 64 tmp_value = value;
kleberkruger 0:ef0a1a6d4a40 65 value /= base;
kleberkruger 0:ef0a1a6d4a40 66 *ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz" [35 + (tmp_value - value * base)];
kleberkruger 0:ef0a1a6d4a40 67 } while (value);
kleberkruger 0:ef0a1a6d4a40 68
kleberkruger 0:ef0a1a6d4a40 69 // Apply negative sign
kleberkruger 0:ef0a1a6d4a40 70 if (tmp_value < 0) *ptr++ = '-';
kleberkruger 0:ef0a1a6d4a40 71 *ptr-- = '\0';
kleberkruger 0:ef0a1a6d4a40 72 while (ptr1 < ptr) {
kleberkruger 0:ef0a1a6d4a40 73 tmp_char = *ptr;
kleberkruger 0:ef0a1a6d4a40 74 *ptr-- = *ptr1;
kleberkruger 0:ef0a1a6d4a40 75 *ptr1++ = tmp_char;
kleberkruger 0:ef0a1a6d4a40 76 }
kleberkruger 0:ef0a1a6d4a40 77 return result;
kleberkruger 0:ef0a1a6d4a40 78 }