Skip to content

Commit ea7d49b

Browse files
committed
zephyrSerial: Add one more print variant
This variant is capable of printing numbers and according to the base parameter. For eg. Serial.print(78, DEC) will print the decimal equivalent of 78 and Serial.print(78, HEX) will print HEX and so on. Signed-off-by: Dhruva Gole <[email protected]>
1 parent fed846e commit ea7d49b

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

cores/arduino/zephyrSerial.cpp

+16
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@ size_t arduino::ZephyrSerial::print(char ch){
2424
return print_char(ch, false);
2525
}
2626

27+
size_t arduino::ZephyrSerial::print(const int val, const int base) {
28+
if (base == 2) { /* Todo: print Binary */
29+
printk("%d", val);
30+
} else if (base == 16) { /* print Hex value */
31+
printk("%x",val);
32+
} else if (base == 8) { /* Todo: print octal value */
33+
printk("%x", val);
34+
} else if (base == 10) { /* print decimal value */
35+
printk("%d", val);
36+
} else {
37+
return EINVAL;
38+
}
39+
40+
return 1; /* Always return 1 byte */
41+
}
42+
2743
size_t arduino::ZephyrSerial::println(char ch){
2844
return print_char(ch, true);
2945
}

cores/arduino/zephyrSerial.h

+2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ class ZephyrSerial {
2222

2323
size_t print(const char c);
2424
size_t print(const char * ptr);
25+
size_t print(const int val, const int base);
26+
2527
size_t println(const char c);
2628
size_t println(const char* ptr);
2729
size_t println(void);

0 commit comments

Comments
 (0)