We can install True Type or Open Type fonts(.ttf / .otf / .ttc) in DEBIAN LINUX, like ubuntu or kali.
DOWNLOAD FONT FROM WEBSITE
Download Cascadia Code from https://github.com/microsoft/cascadia-code/releases and unzip it.
We got 3 folders here: /otf/ , /ttf/ and woff2 , and we only need `ttf
COPY FILES TO SYSTEM FONT DIRECTORY
Font fils are generally installed in either the system font directory on the path /usr/share/fonts/ or in a user font directory that is frequently on one of the following paths:
~/.local/share/fonts/
~/usr/local/share/fonts/
Execute the following command to copy the fonts to system path
1
sudo cp -r ttf /usr/share/fonts/CascadiaCode
GENERATE FONT CHACHE
We need to build font infomation caches for apps using fontconfig for their font handling.
1 2
cd /usr/share/fonts/CascadiaCode fc-cache -f -v
NOTE
If you cannot execute fc-cache command , copy and execute the following command in terminal.
1
sudo apt install fontconfig
VERIFY THE FONT INSTALLATION
Confirm that the fonts are installed by displaying the paths and style definitions with fc-list command filtered on the font family name with grep .
KAG2 is a high performance and ultra low power CMOS-processed optical image sensor with integrated digital image process circuits. It is based on an optical navigation technology which measures changes in position by optically acquiring sequential surface images(frames) and mathematically determining the speed, the direction and the magnitude of motion. The displacement delta_X and delta_Y information are available in registers which are accessible through SPI serial interface. A host controller reads and translates the data from the SPI serial interface into RF signals before sending them to the host PC.
typedefstruct { uint32_t SPI3WIRE_SysClock; /*!< Specifies system clock */ uint32_t SPI3WIRE_Speed; /*!< Specifies SPI clock. */ uint32_t SPI3WIRE_Mode; /*!< Specifies SPI operation mode. This parameter can be a value of @ref THREE_WIRE_SPI_mode */ uint32_t SPI3WIRE_ReadDelay; /*!< Specifies the delay time from the end of address phase to the start of read data phase. This parameter can be a value of 0x0 to 0x1f, delay time = (SPI3WIRE_ReadDelay+1)/(2*SPI3WIRE_Speed) */ uint32_t SPI3WIRE_OutputDelay; /*!< Specifies SPI output delay 1T or not. This parameter can be a value of @ref THREE_WIRE_SPI_OE_delay_config */
// the actual frequency of spi is set by `SPI3_WIRE_SysClock` // `1E6` means 1MHz, and `2E7` means 20MHz. SPI3WIRE_InitStruct.SPI3WIRE_SysClock = 1E6;
image-20220119152741283
TIMING
\[
Sysclk = 1e7 \\
wirespeek = 8e5
\]
2-WIRED SPI
To recover the correct communication of SPI, the host controller can de-assert the SCLK for at least tRESYNC (1us min), and then keep SCLK asserted for a certain time interval tWDT (1.7ms, min) as shown in below Figure . to force the SPI control circuits of the sensor to reset.
/** * MQTT event configuration structure */ typedefstruct { esp_mqtt_event_id_t event_id; /*!< MQTT event type */ esp_mqtt_client_handle_t client; /*!< MQTT client handle for this event */ void *user_context; /*!< User context passed from MQTT client config */ char *data; /*!< Data associated with this event */ int data_len; /*!< Length of the data for this event */ int total_data_len; /*!< Total length of the data (longer data are supplied with multiple events) */ int current_data_offset; /*!< Actual offset for the data associated with this event */ char *topic; /*!< Topic associated with this event */ int topic_len; /*!< Length of the topic for this event associated with this event */ int msg_id; /*!< MQTT messaged id of message */ int session_present; /*!< MQTT session_present flag for connection event */ esp_mqtt_error_codes_t *error_handle; /*!< esp-mqtt error handle including esp-tls errors as well as internal mqtt errors */ bool retain; /*!< Retained flag of the message associated with this event */ } esp_mqtt_event_t;
(x86平台下)long int 即 long,给人的感觉好像是长整型,但实际上,它和 int 一样,只有32位。cppreference 给出的定义如下,但在实际的使用中,long 与 int 几乎没有区别。
int - basic integer type. The keyword int may be omitted if any of the modifiers listed below are used. If no length modifiers are present, it’s guaranteed to have a width of at least 16 bits. However, on 32/64 bit systems it is almost exclusively guaranteed to have width of at least 32 bits. long - target type will have width of at least 32 bits.
实际上经过测试:在 x86_64 平台下,C 和 C++ 中的 long 长度都是要比 int 更长的,即 int 默认为 32bit 宽度,long 为 64bit 宽度。