|
| 1 | +// Copyright 2025 Espressif Systems (Shanghai) PTE LTD |
| 2 | +// |
| 3 | +// Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 | +// you may not use this file except in compliance with the License. |
| 5 | +// You may obtain a copy of the License at |
| 6 | + |
| 7 | +// http://www.apache.org/licenses/LICENSE-2.0 |
| 8 | +// |
| 9 | +// Unless required by applicable law or agreed to in writing, software |
| 10 | +// distributed under the License is distributed on an "AS IS" BASIS, |
| 11 | +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 | +// See the License for the specific language governing permissions and |
| 13 | +// limitations under the License. |
| 14 | + |
1 | 15 | /* Zigbee Core Functions */
|
2 | 16 |
|
3 | 17 | #include "ZigbeeCore.h"
|
@@ -756,6 +770,24 @@ void ZigbeeCore::setNVRAMChannelMask(uint32_t mask) {
|
756 | 770 | log_v("Channel mask set to 0x%08x", mask);
|
757 | 771 | }
|
758 | 772 |
|
| 773 | +void ZigbeeCore::stop() { |
| 774 | + if (started()) { |
| 775 | + vTaskSuspend(xTaskGetHandle("Zigbee_main")); |
| 776 | + log_v("Zigbee stack stopped"); |
| 777 | + _started = false; |
| 778 | + } |
| 779 | + return; |
| 780 | +} |
| 781 | + |
| 782 | +void ZigbeeCore::start() { |
| 783 | + if (!started()) { |
| 784 | + vTaskResume(xTaskGetHandle("Zigbee_main")); |
| 785 | + log_v("Zigbee stack started"); |
| 786 | + _started = true; |
| 787 | + } |
| 788 | + return; |
| 789 | +} |
| 790 | + |
759 | 791 | // Function to convert enum value to string
|
760 | 792 | const char *ZigbeeCore::getDeviceTypeString(esp_zb_ha_standard_devices_t deviceId) {
|
761 | 793 | switch (deviceId) {
|
|
0 commit comments