Skip to content

Commit 9adbde9

Browse files
ysoldakdeadprogram
authored andcommitted
wifinina: avoid fmt package
1 parent a09ec31 commit 9adbde9

File tree

3 files changed

+31
-27
lines changed

3 files changed

+31
-27
lines changed

examples/wifinina/connect/main.go

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
package main
33

44
import (
5-
"encoding/binary"
6-
"fmt"
75
"machine"
6+
"strconv"
87
"time"
98

109
"tinygo.org/x/drivers/wifinina"
@@ -80,7 +79,7 @@ func printRSSI() {
8079
println("Unknown (error: ", err.Error(), ")")
8180
return
8281
}
83-
println(fmt.Sprintf("%d", rssi))
82+
println(strconv.Itoa(int(rssi)))
8483
}
8584

8685
func printIPs() {
@@ -113,20 +112,11 @@ func printTime() {
113112

114113
func printMac() {
115114
print("MAC: ")
116-
b := make([]byte, 8)
117115
mac, err := adaptor.GetMACAddress()
118116
if err != nil {
119117
println("Unknown (", err.Error(), ")")
120118
}
121-
binary.LittleEndian.PutUint64(b, uint64(mac))
122-
macAddress := ""
123-
for i := 5; i >= 0; i-- {
124-
macAddress += fmt.Sprintf("%0X", b[i])
125-
if i != 0 {
126-
macAddress += ":"
127-
}
128-
}
129-
println(macAddress)
119+
println(mac.String())
130120
}
131121

132122
// Wait for user to open serial console

wifinina/tcp.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package wifinina
22

33
import (
4-
"fmt"
4+
"errors"
55
"strconv"
66
"time"
77

@@ -104,7 +104,7 @@ func (drv *Driver) connectSocket(addr, portStr string, mode uint8) error {
104104
func convertPort(portStr string) (uint16, error) {
105105
p64, err := strconv.ParseUint(portStr, 10, 16)
106106
if err != nil {
107-
return 0, fmt.Errorf("could not convert port to uint16: %w", err)
107+
return 0, errors.New("could not convert port to uint16: " + err.Error())
108108
}
109109
return uint16(p64), nil
110110
}
@@ -175,13 +175,13 @@ func (drv *Driver) Write(b []byte) (n int, err error) {
175175
}
176176
if drv.proto == ProtoModeUDP {
177177
if err := drv.dev.StartClient("", drv.ip, drv.port, drv.sock, drv.proto); err != nil {
178-
return 0, fmt.Errorf("error in startClient: %w", err)
178+
return 0, errors.New("error in startClient: " + err.Error())
179179
}
180180
if _, err := drv.dev.InsertDataBuf(b, drv.sock); err != nil {
181-
return 0, fmt.Errorf("error in insertDataBuf: %w", err)
181+
return 0, errors.New("error in insertDataBuf: " + err.Error())
182182
}
183183
if _, err := drv.dev.SendUDPData(drv.sock); err != nil {
184-
return 0, fmt.Errorf("error in sendUDPData: %w", err)
184+
return 0, errors.New("error in sendUDPData: " + err.Error())
185185
}
186186
return len(b), nil
187187
} else {

wifinina/wifinina.go

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ package wifinina // import "tinygo.org/x/drivers/wifinina"
88

99
import (
1010
"encoding/binary"
11-
"fmt"
11+
"encoding/hex"
12+
"fmt" // used only in debug printouts and is optimized out when debugging is disabled
13+
"strconv"
14+
"strings"
1215
"time"
1316

1417
"machine"
@@ -213,15 +216,16 @@ func (addr IPAddress) String() string {
213216
if len(addr) < 4 {
214217
return ""
215218
}
216-
return fmt.Sprintf("%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3])
219+
return strconv.Itoa(int(addr[0])) + "." + strconv.Itoa(int(addr[1])) + "." + strconv.Itoa(int(addr[2])) + "." + strconv.Itoa(int(addr[3]))
217220
}
218221

219222
func ParseIPv4(s string) (IPAddress, error) {
220-
var v0, v1, v2, v3 uint8
221-
if _, err := fmt.Sscanf(s, "%d.%d.%d.%d", &v0, &v1, &v2, &v3); err != nil {
222-
return "", err
223-
}
224-
return IPAddress([]byte{v0, v1, v2, v3}), nil
223+
v := strings.Split(s, ".")
224+
v0, _ := strconv.Atoi(v[0])
225+
v1, _ := strconv.Atoi(v[1])
226+
v2, _ := strconv.Atoi(v[2])
227+
v3, _ := strconv.Atoi(v[3])
228+
return IPAddress([]byte{byte(v0), byte(v1), byte(v2), byte(v3)}), nil
225229
}
226230

227231
func (addr IPAddress) AsUint32() uint32 {
@@ -235,13 +239,23 @@ func (addr IPAddress) AsUint32() uint32 {
235239
type MACAddress uint64
236240

237241
func (addr MACAddress) String() string {
238-
return fmt.Sprintf("%016X", uint64(addr))
242+
b := make([]byte, 8)
243+
binary.BigEndian.PutUint64(b, uint64(addr))
244+
encoded := hex.EncodeToString(b)
245+
result := ""
246+
for i := 2; i < 8; i++ {
247+
result += encoded[i*2 : i*2+2]
248+
if i < 7 {
249+
result += ":"
250+
}
251+
}
252+
return result
239253
}
240254

241255
type Error uint8
242256

243257
func (err Error) Error() string {
244-
return fmt.Sprintf("wifinina error: 0x%02X", uint8(err))
258+
return "wifinina error: 0x" + hex.EncodeToString([]byte{uint8(err)})
245259
}
246260

247261
// Cmd Struct Message */

0 commit comments

Comments
 (0)