MCPcopy Create free account
hub / github.com/WiringPi/WiringPi / runRemoteCommands

Function runRemoteCommands

wiringPiD/runRemote.c:47–125  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

45
46
47void runRemoteCommands (int fd)
48{
49 register uint32_t pin ;
50 int len ;
51 struct drcNetComStruct cmd ;
52
53 len = sizeof (struct drcNetComStruct) ;
54
55 if (setsockopt (fd, SOL_SOCKET, SO_RCVLOWAT, (void *)&len, sizeof (len)) < 0)
56 return ;
57
58 for (;;)
59 {
60 if (recv (fd, &cmd, sizeof (cmd), 0) != sizeof (cmd)) // Probably remote hangup
61 return ;
62
63 pin = cmd.pin ;
64 if (noLocalPins && ((pin & PI_GPIO_MASK) == 0))
65 {
66 if (send (fd, &cmd, sizeof (cmd), 0) != sizeof (cmd))
67 return ;
68 continue ;
69 }
70
71 switch (cmd.cmd)
72 {
73 case DRCN_PIN_MODE:
74 pinMode (pin, cmd.data) ;
75 if (send (fd, &cmd, sizeof (cmd), 0) != sizeof (cmd))
76 return ;
77 break ;
78
79 case DRCN_PULL_UP_DN:
80 pullUpDnControl (pin, cmd.data) ;
81 break ;
82
83 case DRCN_PWM_WRITE:
84 pwmWrite (pin, cmd.data) ;
85 if (send (fd, &cmd, sizeof (cmd), 0) != sizeof (cmd))
86 return ;
87 break ;
88
89 case DRCN_DIGITAL_WRITE:
90 digitalWrite (pin, cmd.data) ;
91 if (send (fd, &cmd, sizeof (cmd), 0) != sizeof (cmd))
92 return ;
93 break ;
94
95 case DRCN_DIGITAL_WRITE8:
96 if (send (fd, &cmd, sizeof (cmd), 0) != sizeof (cmd))
97 return ;
98 break ;
99
100 case DRCN_DIGITAL_READ:
101 cmd.data = digitalRead (pin) ;
102 if (send (fd, &cmd, sizeof (cmd), 0) != sizeof (cmd))
103 return ;
104 break ;

Callers 1

mainFunction · 0.85

Calls 7

pinModeFunction · 0.85
pullUpDnControlFunction · 0.85
pwmWriteFunction · 0.85
digitalWriteFunction · 0.85
digitalReadFunction · 0.85
analogWriteFunction · 0.85
analogReadFunction · 0.85

Tested by

no test coverage detected