Class: ModBus::Slave
- Inherits:
-
Object
- Object
- ModBus::Slave
- Defined in:
- ext/modbus4r.c
Instance Method Summary collapse
- #coil_status ⇒ Object
- #coil_status=(value) ⇒ Object
- #holding_registers ⇒ Object
- #holding_registers=(value) ⇒ Object
- #input_registers ⇒ Object
- #input_registers=(value) ⇒ Object
- #input_status ⇒ Object
- #input_status=(value) ⇒ Object
- #join ⇒ Object
- #stoped? ⇒ Boolean
Instance Method Details
#coil_status ⇒ Object
119 120 121 122 123 124 125 |
# File 'ext/slave.c', line 119
VALUE mb_sl_get_coil_status(VALUE self)
{
modbus_slave_t *mb_slave;
Data_Get_Struct(self, modbus_slave_t, mb_slave);
return mb_slave->coil_status;
}
|
#coil_status=(value) ⇒ Object
127 128 129 130 131 132 133 134 135 136 |
# File 'ext/slave.c', line 127
VALUE mb_sl_set_coil_status(VALUE self, VALUE value)
{
modbus_slave_t *mb_slave;
Data_Get_Struct(self, modbus_slave_t, mb_slave);
value = rb_funcall(value, rb_intern("to_a"), 0);
mb_slave->coil_status = rb_ary_dup(value);
return mb_slave->coil_status;
}
|
#holding_registers ⇒ Object
157 158 159 160 161 162 163 |
# File 'ext/slave.c', line 157
VALUE mb_sl_get_holding_registers(VALUE self)
{
modbus_slave_t *mb_slave;
Data_Get_Struct(self, modbus_slave_t, mb_slave);
return mb_slave->holding_registers;
}
|
#holding_registers=(value) ⇒ Object
165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# File 'ext/slave.c', line 165
VALUE mb_sl_set_holding_registers(VALUE self, VALUE value)
{
modbus_slave_t *mb_slave;
Data_Get_Struct(self, modbus_slave_t, mb_slave);
value = rb_funcall(value, rb_intern("to_a"), 0);
mb_slave->holding_registers = rb_ary_dup(value);
VALUE *reg = RARRAY_PTR(mb_slave->holding_registers);
int i;
for (i = 0; i < RARRAY_LEN(mb_slave->holding_registers); i++) {
*reg = rb_funcall(*reg, rb_intern("to_i"), 0);
}
return mb_slave->holding_registers;
}
|
#input_registers ⇒ Object
182 183 184 185 186 187 188 |
# File 'ext/slave.c', line 182
VALUE mb_sl_get_input_registers(VALUE self)
{
modbus_slave_t *mb_slave;
Data_Get_Struct(self, modbus_slave_t, mb_slave);
return mb_slave->input_registers;
}
|
#input_registers=(value) ⇒ Object
190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 |
# File 'ext/slave.c', line 190
VALUE mb_sl_set_input_registers(VALUE self, VALUE value)
{
modbus_slave_t *mb_slave;
Data_Get_Struct(self, modbus_slave_t, mb_slave);
value = rb_funcall(value, rb_intern("to_a"), 0);
mb_slave->input_registers = rb_ary_dup(value);
VALUE *reg = RARRAY_PTR(mb_slave->input_registers);
int i;
for (i = 0; i < RARRAY_LEN(mb_slave->input_registers); i++) {
*reg = rb_funcall(*reg, rb_intern("to_i"), 0);
}
return mb_slave->input_registers;
}
|
#input_status ⇒ Object
138 139 140 141 142 143 144 |
# File 'ext/slave.c', line 138
VALUE mb_sl_get_input_status(VALUE self)
{
modbus_slave_t *mb_slave;
Data_Get_Struct(self, modbus_slave_t, mb_slave);
return mb_slave->input_status;
}
|
#input_status=(value) ⇒ Object
146 147 148 149 150 151 152 153 154 155 |
# File 'ext/slave.c', line 146
VALUE mb_sl_set_input_status(VALUE self, VALUE value)
{
modbus_slave_t *mb_slave;
Data_Get_Struct(self, modbus_slave_t, mb_slave);
value = rb_funcall(value, rb_intern("to_a"), 0);
mb_slave->input_status = rb_ary_dup(value);
return mb_slave->input_status;
}
|
#join ⇒ Object
207 208 209 210 211 212 213 214 215 |
# File 'ext/slave.c', line 207
VALUE mb_sl_join(VALUE self)
{
modbus_slave_t *mb_slave;
Data_Get_Struct(self, modbus_slave_t, mb_slave);
pthread_join(mb_slave->tid, NULL);
return self;
}
|
#stoped? ⇒ Boolean
107 108 109 110 111 112 113 114 115 116 117 |
# File 'ext/slave.c', line 107
VALUE mb_sl_is_stoped(VALUE self)
{
modbus_slave_t *mb_slave;
Data_Get_Struct(self, modbus_slave_t, mb_slave);
if (read(mb_slave->listen_sock, NULL, 0)
|| mb_slave->listen_sock == 0) {
return Qtrue;
}
return Qfalse;
}
|