123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /*
- * Project: Arrow
- * Author: curiousmuch
- */
- #include <stdio.h>
- #include "freertos/FreeRTOS.h"
- #include "freertos/task.h"
- #include "driver/gpio.h"
- #include "sdkconfig.h"
- #include "esp_task_wdt.h"
- #include "cc1200.h"
- #include "cc1200_protocol.h"
- #include "board.h"
- #include "ax25_pad2.h"
- #include "ax25_pad.h"
- #include "fcs_calc.h"
- #include "nvs.h"
- #include "nvs_flash.h"
- #include "esp_log.h"
- #include "esp_bt.h"
- #include "esp_bt_main.h"
- #include "esp_gap_bt_api.h"
- #include "esp_bt_device.h"
- #include "esp_spp_api.h"
- #include "bt_spp.c"
- uint8_t APRS_TEST_PACKET[] = { 0x82, 0x98, 0x98, 0x40, 0x40, 0x40, 0xe0, 0x96, 0x84, 0x66, 0xaa, 0x96, 0xac, 0xe0, 0xae, 0x92,
- 0x88, 0x8a, 0x62, 0x40, 0x62, 0xae, 0x92, 0x88, 0x8a, 0x64, 0x40, 0x65, 0x03, 0xf0, 0x3a, 0x4b,
- 0x42, 0x33, 0x55, 0x4b, 0x56, 0x2d, 0x32, 0x20, 0x3a, 0x48, 0x69, 0x21, 0x20, 0x54, 0x68, 0x69, 0x73,
- 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x54, 0x65, 0x73, 0x74, 0x7b, 0x31, 0xad, 0xa1 };
- RingbufHandle_t radio_tx_buf;
- //RingbufHandle_t radio_rx_buf;
- void Radio_Task(void *pvParameters)
- {
- size_t p_size;
- // Setup Radio
- cc1200_radio_init(APRS_SETTINGS, sizeof(APRS_SETTINGS)/sizeof(cc1200_reg_settings_t));
- cc1200_radio_frequency(144390000-6000);
- vTaskDelay(500/portTICK_PERIOD_MS);
- while(1)
- {
- // setup LEDs for RX mode
- enable_green_led();
- disable_red_led();
- // Transmit Queued Packet
- uint8_t *p = (uint8_t *)xRingbufferReceive(radio_tx_buf, &p_size, portMAX_DELAY); // TODO: Modify to something which will check CC1200 status
- if (p != NULL)
- {
- // setup LEDs for TX mode
- enable_red_led();
- disable_green_led();
- //vTaskSuspendAll();
- cc1200_radio_APRSTXPacket(p, p_size, 2, 0);
- //xTaskResumeAll();
- vRingbufferReturnItem(radio_tx_buf, (void *)p);
- }
- }
- }
- void radio_task_init()
- {
- radio_tx_buf = xRingbufferCreate(1028, RINGBUF_TYPE_NOSPLIT);
- xTaskCreatePinnedToCore(Radio_Task, "Radio_Task", 1024*4, 0, 1, NULL, 1);
- }
- void IRAM_ATTR app_main()
- {
- // Initialize Flash
- esp_err_t ret = nvs_flash_init();
- if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
- ESP_ERROR_CHECK(nvs_flash_erase());
- ret = nvs_flash_init();
- }
- ESP_ERROR_CHECK( ret );
- // Board IO Initialize
- board_init();
- // Radio Task Initialize
- radio_task_init();
- // Setup Kiss Decoder and Encoder
- tnc_init();
- // Initalize BLE
- bt_spp_init();
- }
|