5 #if !CONFIG_IDF_TARGET_LINUX
\r
6 #include "freertos/FreeRTOS.h"
\r
7 #include "freertos/task.h"
\r
8 #include "esp_system.h"
\r
9 #include "driver/gpio.h"
\r
14 #define SERVER "https://matrix.org"
\r
15 #define USER_ID "@example:matrix.org"
\r
16 #define ROOM_ID "!example:matrix.org"
\r
19 #define DEVICE_NAME ""
\r
20 #define WIFI_SSID ""
\r
21 #define WIFI_PASSWORD ""
\r
23 // event id of an encrypted event
\r
24 // devices can only be verified after they used e2ee in some way
\r
25 // (at least in Element)
\r
26 #define EVENT_ID "$example"
\r
28 #define STATIC static
\r
33 MatrixClient * client = (MatrixClient*)malloc(sizeof(MatrixClient));
\r
34 MatrixClientInit(client);
\r
36 MatrixHttpInit(&client->hc, SERVER);
\r
37 MatrixClientSetUserId(client, USER_ID);
\r
39 MatrixClientLoginPassword(client,
\r
43 printf("deviceId: %s\n", client->deviceId);
\r
44 MatrixClientGenerateOnetimeKeys(client, 10);
\r
45 MatrixClientUploadOnetimeKeys(client);
\r
46 MatrixClientUploadDeviceKeys(client);
\r
48 STATIC char eventBuffer[1024];
\r
49 MatrixClientGetRoomEvent(client,
\r
53 printf("event: %s\n", eventBuffer);
\r
55 #define SYNC_BUFFER_SIZE 1024*10
\r
57 // char * syncBuffer = (char*)malloc(SYNC_BUFFER_SIZE);
\r
58 STATIC char syncBuffer[SYNC_BUFFER_SIZE];
\r
59 STATIC char nextBatch[1024];
\r
61 while (! client->verified) {
\r
62 MatrixClientSync(client, syncBuffer, SYNC_BUFFER_SIZE, nextBatch, 1024);
\r
65 printf("verified!\n");
\r
67 // create and share megolm out session
\r
68 MatrixMegolmOutSession * megolmOutSession;
\r
69 MatrixClientNewMegolmOutSession(client,
\r
72 printf("megolm session id: %.10s... key: %.10s...\n", megolmOutSession->id, megolmOutSession->key);
\r
73 MatrixClientShareMegolmOutSession(client,
\r
78 // send 10 random messages
\r
79 for (int i = 0; i < 10; i++) {
\r
80 static const char * msgs[] = { "A", "B", "C" };
\r
81 static char msg[128];
\r
82 snprintf(msg, 128, "{\"body\":\"%s\",\"msgtype\":\"m.text\"}", msgs[rand()%(sizeof(msgs)/sizeof(msgs[0]))]);
\r
84 MatrixClientSendEventEncrypted(client,
\r
90 MatrixClientDeleteDevice(client);
\r
92 MatrixHttpDeinit(&client->hc);
\r
98 #include <esp_netif.h>
\r
103 wifi_init(WIFI_SSID, WIFI_PASSWORD);
\r
105 esp_netif_ip_info_t ip_info;
\r
106 esp_netif_get_ip_info(IP_EVENT_STA_GOT_IP,&ip_info);
\r
107 printf("My IP: " IPSTR "\n", IP2STR(&ip_info.ip));
\r
108 printf("My GW: " IPSTR "\n", IP2STR(&ip_info.gw));
\r
109 printf("My NETMASK: " IPSTR "\n", IP2STR(&ip_info.netmask));
\r
111 // uint64_t bitmask = 0xffffffffffffffff;
\r
112 // bitmask = bitmask & SOC_GPIO_VALID_GPIO_MASK;
\r
113 // gpio_dump_io_configuration(stdout, bitmask);
\r
114 gpio_set_direction(GPIO_NUM_2, GPIO_MODE_OUTPUT);
\r
115 // gpio_dump_io_configuration(stdout, bitmask);
\r