Merge branch 'feature/e-endstop' into merge-abc-with-homing
[clinton/Smoothieware.git] / src / libs / utils.h
1 #pragma once
2
3 #include <stdint.h>
4 #include <string>
5 #include <vector>
6
7 std::string lc(const std::string& str);
8
9 bool is_alpha( int );
10 bool is_digit( int );
11 bool is_numeric( int );
12 bool is_alphanum( int );
13 bool is_whitespace( int );
14
15 std::vector<std::string> split(const char *str, char c = ',');
16 std::vector<float> parse_number_list(const char *str);
17 std::vector<uint32_t> parse_number_list(const char *str, uint8_t radix);
18
19 std::string remove_non_number( std::string str );
20
21 uint16_t get_checksum(const std::string& to_check);
22 uint16_t get_checksum(const char* to_check);
23
24 void get_checksums(uint16_t check_sums[], const std::string& key);
25
26 std::string shift_parameter( std::string &parameters );
27
28 std::string get_arguments( const std::string& possible_command );
29
30 bool file_exists( const std::string file_name );
31
32 void system_reset( bool dfu= false );
33
34 std::string absolute_from_relative( std::string path );
35
36 int append_parameters(char *buf, std::vector<std::pair<char,float>> params, size_t bufsize);
37 std::string wcs2gcode(int wcs);
38 void safe_delay_us(uint32_t delay);
39 void safe_delay_ms(uint32_t delay);
40
41 #define confine(value, min, max) (((value) < (min))?(min):(((value) > (max))?(max):(value)))
42
43 //#define dd(...) LPC_GPIO2->FIODIR = 0xffff; LPC_GPIO2->FIOCLR = 0xffff; LPC_GPIO2->FIOSET = __VA_ARGS__