- if(value == "on" || value == "off") {
- bool b = value == "on";
- ok = PublicData::set_value( switch_checksum, get_checksum(type), state_checksum, &b );
- } else {
- float v = strtof(value.c_str(), NULL);
- ok = PublicData::set_value( switch_checksum, get_checksum(type), value_checksum, &v );
- }
- if (ok) {
- stream->printf("switch %s set to: %s\r\n", type.c_str(), value.c_str());
- } else {
- stream->printf("%s is not a known switch device\r\n", type.c_str());
+ if(value.empty()) {
+ // get switch state
+ struct pad_switch pad;
+ bool ok = PublicData::get_value(switch_checksum, get_checksum(type), 0, &pad);
+ if (!ok) {
+ stream->printf("unknown switch %s.\n", type.c_str());
+ return;
+ }
+ stream->printf("switch %s is %d\n", type.c_str(), pad.state);
+
+ }else{
+ // set switch state
+ if(value == "on" || value == "off") {
+ bool b = value == "on";
+ ok = PublicData::set_value( switch_checksum, get_checksum(type), state_checksum, &b );
+ } else {
+ float v = strtof(value.c_str(), NULL);
+ ok = PublicData::set_value( switch_checksum, get_checksum(type), value_checksum, &v );
+ }
+ if (ok) {
+ stream->printf("switch %s set to: %s\n", type.c_str(), value.c_str());
+ } else {
+ stream->printf("%s is not a known switch device\n", type.c_str());
+ }