发送中文短信
This commit is contained in:
parent
2ccb0dadfe
commit
c2ea90243e
199
.vscode/project.json
vendored
199
.vscode/project.json
vendored
@ -13,46 +13,46 @@
|
||||
"name": "ali-iotkit",
|
||||
"path": "packages\\ali-iotkit-v3.0.2",
|
||||
"files": [
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_log.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\MQTTUnsubscribeClient.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_cjson.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_api.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_sign\\dev_sign_mqtt.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_compat.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_defs.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_log_report.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\mqtt_api.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_string.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_message.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\ports\\rtthread\\HAL_TCP_rtthread.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\iotx_cm_mqtt.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\ports\\wrapper.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_msg_process.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_cota.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_ipc.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\MQTTDeserializePublish.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_prt_nwk_payload.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\impl_linkkit.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_report.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\client\\dm_client_adapter.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_timer.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_net.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\MQTTSubscribeClient.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\MQTTPacket.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_ota.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_fota.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\MQTTConnectClient.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\ports\\rtthread\\HAL_UDP_rtthread.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_sha256.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_opt.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\iotx_mqtt_client.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\MQTTSerializePublish.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_manager.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_utils.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\client\\dm_client.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\ports\\rtthread\\HAL_OS_rtthread.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\iotx_cm.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_message_cache.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\MQTTPacket.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_fota.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\ports\\rtthread\\HAL_OS_rtthread.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\ports\\rtthread\\HAL_TCP_rtthread.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\MQTTConnectClient.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_string.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_msg_process.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_ota.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\MQTTUnsubscribeClient.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_message.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_prt_nwk_payload.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_net.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_sign\\dev_sign_mqtt.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\client\\dm_client.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\iotx_cm.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\ports\\rtthread\\HAL_UDP_rtthread.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_ipc.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\iotx_mqtt_client.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_report.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\mqtt_api.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\iotx_cm_mqtt.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_log_report.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_manager.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\impl_linkkit.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\MQTTSubscribeClient.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_utils.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_timer.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\MQTTDeserializePublish.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\ports\\wrapper.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_opt.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\mqtt\\impl\\MQTTSerializePublish.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_api.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_cjson.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_log.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\dm_cota.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_sha256.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\dev_model\\client\\dm_client_adapter.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\iotkit-embedded\\src\\infra\\infra_defs.c",
|
||||
"packages\\ali-iotkit-v3.0.2\\SConscript"
|
||||
]
|
||||
},
|
||||
@ -68,22 +68,21 @@
|
||||
"name": "Applications",
|
||||
"path": "applications",
|
||||
"files": [
|
||||
"applications\\sim.c",
|
||||
"applications\\app_lcd.c",
|
||||
"applications\\sensor.c",
|
||||
"applications\\myinfrared.c",
|
||||
"applications\\init.c",
|
||||
"applications\\mysnake.c",
|
||||
"applications\\test_drv_example.c",
|
||||
"applications\\pin_irq_example.c",
|
||||
"applications\\init.c",
|
||||
"applications\\myproject.c",
|
||||
"applications\\my_func.c",
|
||||
"applications\\status.c",
|
||||
"applications\\assistant.c",
|
||||
"applications\\main.c",
|
||||
"applications\\mytest.c",
|
||||
"applications\\motor.c",
|
||||
"applications\\AHT10.c",
|
||||
"applications\\myinfrared.c",
|
||||
"applications\\myproject.c",
|
||||
"applications\\pin_irq_example.c",
|
||||
"applications\\app_lcd.c",
|
||||
"applications\\sensor.c",
|
||||
"applications\\main.c",
|
||||
"applications\\motor.c",
|
||||
"applications\\sim.c",
|
||||
"applications\\assistant.c",
|
||||
"applications\\my_func.c",
|
||||
"applications\\SConscript"
|
||||
]
|
||||
},
|
||||
@ -91,9 +90,9 @@
|
||||
"name": "AT",
|
||||
"path": "rt-thread\\components\\net\\at",
|
||||
"files": [
|
||||
"rt-thread\\components\\net\\at\\src\\at_cli.c",
|
||||
"rt-thread\\components\\net\\at\\src\\at_client.c",
|
||||
"rt-thread\\components\\net\\at\\src\\at_utils.c",
|
||||
"rt-thread\\components\\net\\at\\src\\at_cli.c",
|
||||
"rt-thread\\components\\net\\at\\SConscript"
|
||||
]
|
||||
},
|
||||
@ -101,8 +100,8 @@
|
||||
"name": "cJSON",
|
||||
"path": "packages\\cJSON-v1.7.17",
|
||||
"files": [
|
||||
"packages\\cJSON-v1.7.17\\cJSON.c",
|
||||
"packages\\cJSON-v1.7.17\\cJSON_Utils.c",
|
||||
"packages\\cJSON-v1.7.17\\cJSON.c",
|
||||
"packages\\cJSON-v1.7.17\\SConscript"
|
||||
]
|
||||
},
|
||||
@ -213,10 +212,10 @@
|
||||
"path": "rt-thread\\components\\fal",
|
||||
"files": [
|
||||
"rt-thread\\components\\fal\\src\\fal_flash.c",
|
||||
"rt-thread\\components\\fal\\src\\fal_rtt.c",
|
||||
"rt-thread\\components\\fal\\src\\fal.c",
|
||||
"rt-thread\\components\\fal\\src\\fal_partition.c",
|
||||
"rt-thread\\components\\fal\\samples\\porting\\fal_flash_sfud_port.c",
|
||||
"rt-thread\\components\\fal\\src\\fal_rtt.c",
|
||||
"rt-thread\\components\\fal\\src\\fal_partition.c",
|
||||
"rt-thread\\components\\fal\\SConscript"
|
||||
]
|
||||
},
|
||||
@ -241,10 +240,10 @@
|
||||
"path": "rt-thread\\components\\finsh",
|
||||
"files": [
|
||||
"rt-thread\\components\\finsh\\msh_parse.c",
|
||||
"rt-thread\\components\\finsh\\msh.c",
|
||||
"rt-thread\\components\\finsh\\msh_file.c",
|
||||
"rt-thread\\components\\finsh\\shell.c",
|
||||
"rt-thread\\components\\finsh\\cmd.c",
|
||||
"rt-thread\\components\\finsh\\msh_file.c",
|
||||
"rt-thread\\components\\finsh\\msh.c",
|
||||
"rt-thread\\components\\finsh\\SConscript"
|
||||
]
|
||||
},
|
||||
@ -268,8 +267,8 @@
|
||||
"name": "Infrared_frame",
|
||||
"path": "packages\\infrared-v0.1.1",
|
||||
"files": [
|
||||
"packages\\infrared-v0.1.1\\src\\nec_decoder.c",
|
||||
"packages\\infrared-v0.1.1\\src\\infrared.c",
|
||||
"packages\\infrared-v0.1.1\\src\\nec_decoder.c",
|
||||
"packages\\infrared-v0.1.1\\src\\drv_infrared.c",
|
||||
"packages\\infrared-v0.1.1\\SConscript"
|
||||
]
|
||||
@ -300,12 +299,12 @@
|
||||
"name": "kernel-samples",
|
||||
"path": "packages\\kernel_samples-latest\\en",
|
||||
"files": [
|
||||
"packages\\kernel_samples-latest\\en\\event_sample.c",
|
||||
"packages\\kernel_samples-latest\\en\\thread_sample.c",
|
||||
"packages\\kernel_samples-latest\\en\\semaphore_sample.c",
|
||||
"packages\\kernel_samples-latest\\en\\mutex_sample.c",
|
||||
"packages\\kernel_samples-latest\\en\\msgq_sample.c",
|
||||
"packages\\kernel_samples-latest\\en\\mailbox_sample.c",
|
||||
"packages\\kernel_samples-latest\\en\\msgq_sample.c",
|
||||
"packages\\kernel_samples-latest\\en\\thread_sample.c",
|
||||
"packages\\kernel_samples-latest\\en\\mutex_sample.c",
|
||||
"packages\\kernel_samples-latest\\en\\event_sample.c",
|
||||
"packages\\kernel_samples-latest\\en\\SConscript"
|
||||
]
|
||||
},
|
||||
@ -313,11 +312,11 @@
|
||||
"name": "klibc",
|
||||
"path": "rt-thread\\src\\klibc",
|
||||
"files": [
|
||||
"rt-thread\\src\\klibc\\kstdio.c",
|
||||
"rt-thread\\src\\klibc\\rt_vsnprintf_std.c",
|
||||
"rt-thread\\src\\klibc\\kerrno.c",
|
||||
"rt-thread\\src\\klibc\\rt_vsscanf.c",
|
||||
"rt-thread\\src\\klibc\\kstring.c",
|
||||
"rt-thread\\src\\klibc\\kstdio.c",
|
||||
"rt-thread\\src\\klibc\\rt_vsscanf.c",
|
||||
"rt-thread\\src\\klibc\\rt_vsnprintf_std.c",
|
||||
"rt-thread\\src\\klibc\\SConscript"
|
||||
]
|
||||
},
|
||||
@ -345,47 +344,47 @@
|
||||
"name": "Libraries",
|
||||
"path": "libraries\\STM32F4xx_HAL",
|
||||
"files": [
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_lptim.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_ll_sdmmc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_cortex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_cec.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_adc_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_uart.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_sram.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_tim_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_dma_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_usart.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pcd.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rcc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_ll_fsmc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_crc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_cryp.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_flash_ramfunc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pwr_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_cec.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_tim_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pccard.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_dma.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_sd.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_flash_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_tim.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_ll_fmc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pwr_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_gpio.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rcc_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_i2c_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pcd_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_hcd.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rtc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_cryp_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_adc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_qspi.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_flash_ramfunc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_ll_usb.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_dma_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pwr.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_sd.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_i2c.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_crc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rcc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rtc_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_ll_sdmmc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_spi.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_flash.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rng.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_cryp.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_dma.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pccard.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pcd_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\CMSIS\\Device\\ST\\STM32F4xx\\Source\\Templates\\system_stm32f4xx.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_i2c.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rtc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_i2c_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_adc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pcd.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rcc_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_qspi.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_sram.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_hcd.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_ll_fmc.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_adc_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_ll_usb.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rtc_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rng.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_cryp_ex.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_flash.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_spi.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_lptim.c",
|
||||
"libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_uart.c",
|
||||
"libraries\\STM32F4xx_HAL\\SConscript"
|
||||
]
|
||||
},
|
||||
@ -471,9 +470,9 @@
|
||||
"name": "rt_usbd",
|
||||
"path": "rt-thread\\components\\legacy\\usb\\usbdevice",
|
||||
"files": [
|
||||
"rt-thread\\components\\legacy\\usb\\usbdevice\\core\\usbdevice.c",
|
||||
"rt-thread\\components\\legacy\\usb\\usbdevice\\core\\usbdevice_core.c",
|
||||
"rt-thread\\components\\legacy\\usb\\usbdevice\\class\\cdc_vcom.c",
|
||||
"rt-thread\\components\\legacy\\usb\\usbdevice\\core\\usbdevice_core.c",
|
||||
"rt-thread\\components\\legacy\\usb\\usbdevice\\core\\usbdevice.c",
|
||||
"rt-thread\\components\\legacy\\usb\\usbdevice\\SConscript"
|
||||
]
|
||||
},
|
||||
@ -512,8 +511,8 @@
|
||||
"name": "Utilities",
|
||||
"path": "rt-thread\\components\\utilities\\ulog",
|
||||
"files": [
|
||||
"rt-thread\\components\\utilities\\ulog\\backend\\console_be.c",
|
||||
"rt-thread\\components\\utilities\\ulog\\ulog.c",
|
||||
"rt-thread\\components\\utilities\\ulog\\backend\\console_be.c",
|
||||
"rt-thread\\components\\utilities\\ulog\\SConscript"
|
||||
]
|
||||
},
|
||||
|
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -44,7 +44,8 @@
|
||||
"tuple": "c",
|
||||
"type_traits": "c",
|
||||
"utility": "c",
|
||||
"random": "c"
|
||||
"random": "c",
|
||||
"logn.h": "c"
|
||||
},
|
||||
// "cortex-debug.openocdPath": "d:/Develop/"
|
||||
}
|
14
.vscode/tasks.json
vendored
14
.vscode/tasks.json
vendored
@ -153,6 +153,20 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "汉字转Unicode",
|
||||
"type": "shell",
|
||||
"command": "C:/Users/19433/AppData/Local/Microsoft/WindowsApps/python3.11.exe d:/Develop/SumProject/my_error/ZHtoUnicode.py",
|
||||
"args": [],
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "汉字转UnicodePro(图形版)",
|
||||
"type": "shell",
|
||||
"command": "C:/Users/19433/AppData/Local/Microsoft/WindowsApps/python3.11.exe d:/Develop/SumProject/my_error/ZHUnicodePro.py",
|
||||
"args": [],
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "下载固件(pyocd)",
|
||||
"type": "shell",
|
||||
|
@ -59,7 +59,179 @@ __exit:
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
// 将 UTF-8 字符串转换为 UTF-16BE 编码的十六进制字符串
|
||||
void str_to_unicode(const char *input, uint8_t *output) {
|
||||
uint16_t unicode;
|
||||
uint8_t *ptr = output;
|
||||
while (*input) {
|
||||
// UTF-8 转 Unicode(仅处理基本多语言平面字符)
|
||||
if ((*input & 0xE0) == 0xE0) { // 3字节UTF-8字符(如中文)
|
||||
unicode = ((input[0] & 0x0F) << 12) | ((input[1] & 0x3F) << 6) | (input[2] & 0x3F);
|
||||
input += 3;
|
||||
} else if ((*input & 0xC0) == 0xC0) { // 2字节UTF-8字符(如拉丁扩展字符)
|
||||
unicode = ((input[0] & 0x1F) << 6) | (input[1] & 0x3F);
|
||||
input += 2;
|
||||
} else { // 1字节ASCII字符
|
||||
unicode = *input;
|
||||
input += 1;
|
||||
}
|
||||
// 转换为大端序(UTF-16BE)
|
||||
*ptr++ = (unicode >> 8) & 0xFF;
|
||||
*ptr++ = unicode & 0xFF;
|
||||
}
|
||||
*ptr = '\0'; // 结束符
|
||||
}
|
||||
//参数:utf8_in,要转码的UTF8编码地址,高字节在前
|
||||
//参数:uni_out,转码后输出的uni编码存储地址的指针,在转码后地址自动向后移编
|
||||
//返回值:下一个utf8编码地址
|
||||
uint8_t *utf82uni (const uint8_t *uft8_in,uint8_t **uni_out)
|
||||
{
|
||||
if ((uft8_in)&&(*uft8_in))
|
||||
{
|
||||
if (uft8_in[0]<0x80)
|
||||
{
|
||||
(*uni_out)[0]=0;
|
||||
(*uni_out)[1]=*uft8_in;
|
||||
(*uni_out)+=2;
|
||||
return (uint8_t*)uft8_in+1;
|
||||
}
|
||||
else
|
||||
{
|
||||
(*uni_out)[0]=uft8_in[0]<<4;
|
||||
(*uni_out)[0]|=(uft8_in[1]>>2)&0x0f;
|
||||
(*uni_out)[1]=(uft8_in[1]<<6);
|
||||
(*uni_out)[1]|=(uft8_in[2])&0x3f;
|
||||
(*uni_out)+=2;
|
||||
return (uint8_t*)uft8_in+3;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// 将手机号转换为UTF-16BE 格式(如 13812345678 -> "003100380032003100340035003600370038")
|
||||
void format_phone_number(const char *phone, char *output) {
|
||||
for (int i = 0; phone[i]; i++) {
|
||||
rt_sprintf(output + 4*i, "00%X", phone[i]); // 每位数字转为3位十六进制(如 '1' -> 0031)
|
||||
}
|
||||
}
|
||||
rt_err_t sim_message(char *phonenum, char *message)
|
||||
{
|
||||
rt_err_t rc = RT_EOK;
|
||||
at_response_t resp = NULL;
|
||||
|
||||
resp = at_create_resp(256, 1, 5 * RT_TICK_PER_SECOND);
|
||||
if (!resp)
|
||||
{
|
||||
LOG_E("No memory for AT response structure!");
|
||||
return -RT_ENOMEM;
|
||||
}
|
||||
char at_str[64];
|
||||
AT_SEND_CMD("AT+CMGF=1", resp);
|
||||
AT_SEND_CMD("AT+CSMP=17,167,1,8", resp);
|
||||
AT_SEND_CMD("AT+CSCS=\"UCS2\"", resp);
|
||||
uint8_t unicode_msg[256];
|
||||
char formatted_phone[32];
|
||||
|
||||
// 1. 编码转换
|
||||
format_phone_number(phonenum, formatted_phone);
|
||||
rt_sprintf(at_str, "AT+CMGS=\"%s\"", formatted_phone);
|
||||
AT_SEND_CMD(at_str, resp);
|
||||
// str_to_unicode("005B5DE553825B895168536B58EB005D8B6662A5FF1A4EBA54588FDB516553719669533A57DF8D858FC7003100300073", unicode_msg);
|
||||
// int cnt=0;
|
||||
// if(rt_strcmp(at_resp_get_line(resp, 1),">") == 0)
|
||||
// {
|
||||
AT_SEND_CMD("005B5DE553825B895168536B58EB005D8B6662A5FF1A4EBA54588FDB516553719669533A57DF8D858FC7003100300073", resp);
|
||||
AT_SEND_CMD("\x1A", resp);
|
||||
// }
|
||||
|
||||
|
||||
__exit:
|
||||
if (resp)
|
||||
{
|
||||
at_delete_resp(resp);
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
int cmd_sim_message(int argc, char**argv)
|
||||
{
|
||||
char testtmp[129];
|
||||
format_phone_number(argv[1],testtmp);
|
||||
LOG5("phone:%s",testtmp);
|
||||
// str_to_unicode(argv[2], testtmp);
|
||||
// LOG5("msg:%04X → %04X",argv[2],testtmp);
|
||||
// format_phone_number(argv[2],testtmp);
|
||||
// LOG5("msg(by phone):%s",testtmp);
|
||||
// utf82uni(argv[2],testtmp);
|
||||
// LOG5("msg(by utf82uni):%s",testtmp);
|
||||
|
||||
sim_message(argv[1], "");
|
||||
}
|
||||
MSH_CMD_EXPORT_ALIAS(cmd_sim_message,SIM_MSG, send message);
|
||||
int cmd_sim_test(int argc, char**argv)
|
||||
{
|
||||
rt_err_t rc = RT_EOK;
|
||||
at_response_t resp = NULL;
|
||||
|
||||
resp = at_create_resp(256, 1, 5 * RT_TICK_PER_SECOND);
|
||||
if (!resp)
|
||||
{
|
||||
LOG_E("No memory for AT response structure!");
|
||||
return -RT_ENOMEM;
|
||||
}
|
||||
char at_str[64];
|
||||
if(!rt_strcmp(argv[1],"1"))
|
||||
{
|
||||
|
||||
AT_SEND_CMD("AT+CMGF=1", resp);
|
||||
return 1;
|
||||
}
|
||||
if(!rt_strcmp(argv[1],"2"))
|
||||
{
|
||||
AT_SEND_CMD("AT+CSMP=17,167,1,8", resp);
|
||||
return 2;
|
||||
}
|
||||
if(!rt_strcmp(argv[1],"3"))
|
||||
{
|
||||
AT_SEND_CMD("AT+CSCS=\"UCS2\"", resp);
|
||||
return 3;
|
||||
}
|
||||
if(!rt_strcmp(argv[1],"4"))
|
||||
{
|
||||
AT_SEND_CMD("AT+CMGS=\"00310037003300310038003100310032003300360030\"", resp);
|
||||
return 4;
|
||||
}
|
||||
// 1. 编码转换
|
||||
|
||||
// str_to_unicode("005B5DE553825B895168536B58EB005D8B6662A5FF1A4EBA54588FDB516553719669533A57DF8D858FC7003100300073", unicode_msg);
|
||||
// int cnt=0;
|
||||
// if(rt_strcmp(at_resp_get_line(resp, 1),">") == 0)
|
||||
// {
|
||||
if(!rt_strcmp(argv[1],"5"))
|
||||
{
|
||||
AT_SEND_CMD("005B5DE553825B895168536B58EB005D8B6662A5FF1A4EBA54588FDB516553719669533A57DF8D858FC7003100300073", resp);
|
||||
AT_SEND_CMD("\x1A", resp);
|
||||
return 5;
|
||||
}
|
||||
// AT_SEND_CMD("005B5DE553825B895168536B58EB005D8B6662A5FF1A4EBA54588FDB516553719669533A57DF8D858FC7003100300073", resp);
|
||||
if (!rt_strcmp(argv[1],"6"))
|
||||
{
|
||||
/* code */AT_SEND_CMD("\x1A", resp);
|
||||
return 6;
|
||||
}
|
||||
|
||||
|
||||
// }
|
||||
|
||||
|
||||
__exit:
|
||||
if (resp)
|
||||
{
|
||||
at_delete_resp(resp);
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
MSH_CMD_EXPORT_ALIAS(cmd_sim_test,OTEST, send message);
|
||||
int cmd_at_send(int argc, char**argv)
|
||||
{
|
||||
rt_err_t rc = RT_EOK;
|
||||
|
@ -1,3 +1,4 @@
|
||||
#include "rtthread.h"
|
||||
rt_err_t sim_dev_init();
|
||||
rt_err_t sim_call(char *phonenum);
|
||||
rt_err_t sim_call(char *phonenum);
|
||||
rt_err_t sim_message(char *phonenum, char *message);
|
@ -83,7 +83,6 @@ void danger_status(void)
|
||||
rt_event_send(&robot_event, EVENT_DELAY);
|
||||
char *str = "aa";
|
||||
serial_send(str);
|
||||
sim_call("17318112360");
|
||||
fan_on();
|
||||
light_on();
|
||||
// LED_BreathMore(0,LED_NUM-1,LED_RED);
|
||||
@ -109,6 +108,8 @@ void collect_entry(void *parameter)
|
||||
rt_thread_mdelay(10000);
|
||||
if(cnt_warning>0)
|
||||
{
|
||||
sim_call("17318112360");
|
||||
sim_message("17318112360","");
|
||||
beep_on();
|
||||
}
|
||||
}
|
||||
|
3
my_error/ZHtoUnicode.py
Normal file
3
my_error/ZHtoUnicode.py
Normal file
@ -0,0 +1,3 @@
|
||||
s = input().strip()
|
||||
unicode_codes = ''.join(f"{ord(c):04X}" for c in s)
|
||||
print(unicode_codes)
|
95
my_error/ZHunicodePro.py
Normal file
95
my_error/ZHunicodePro.py
Normal file
@ -0,0 +1,95 @@
|
||||
import tkinter as tk
|
||||
from tkinter import ttk, messagebox
|
||||
|
||||
def copy_to_clipboard():
|
||||
root.clipboard_clear()
|
||||
root.clipboard_append(output_var.get())
|
||||
messagebox.showinfo("成功", "已复制到剪贴板")
|
||||
|
||||
def convert_unicode(event=None):
|
||||
s = entry.get().strip()
|
||||
if not s:
|
||||
messagebox.showwarning("提示", "请输入内容")
|
||||
return
|
||||
|
||||
try:
|
||||
unicode_str = ''.join(f"{ord(c):04X}" for c in s)
|
||||
output_var.set(unicode_str)
|
||||
# copy_to_clipboard()
|
||||
except Exception as e:
|
||||
messagebox.showerror("错误", f"转换失败: {str(e)}")
|
||||
|
||||
|
||||
# 创建主窗口
|
||||
root = tk.Tk()
|
||||
root.title("Unicode转换器")
|
||||
root.geometry("300x300") # 正方形窗口
|
||||
# root.resizable(False, False)
|
||||
root.configure(bg="#f5f6fa")
|
||||
|
||||
# 修复的变量定义
|
||||
output_var = tk.StringVar()
|
||||
|
||||
# 现代界面样式配置
|
||||
style = ttk.Style()
|
||||
style.theme_use('clam')
|
||||
|
||||
# 自定义样式
|
||||
style.configure("TFrame", background="#f5f6fa")
|
||||
style.configure("TLabel",
|
||||
font=("微软雅黑", 11),
|
||||
background="#f5f6fa",
|
||||
foreground="#2d3436")
|
||||
style.configure("TEntry",
|
||||
font=("微软雅黑", 11),
|
||||
padding=5)
|
||||
style.configure("TButton",
|
||||
font=("微软雅黑", 10, "bold"),
|
||||
padding=8,
|
||||
foreground="#ffffff")
|
||||
style.map("TButton",
|
||||
background=[("active", "#0984e3"), ("!active", "#74b9ff")],
|
||||
foreground=[("active", "#ffffff"), ("!active", "#ffffff")])
|
||||
|
||||
# 主容器
|
||||
main_frame = ttk.Frame(root)
|
||||
main_frame.pack(expand=True, padx=30, pady=30)
|
||||
|
||||
# 输入区域
|
||||
input_frame = ttk.Frame(main_frame)
|
||||
input_frame.pack(pady=15, fill="x")
|
||||
|
||||
ttk.Label(input_frame, text="输入文本:").pack(side="left", padx=(0, 10))
|
||||
entry = ttk.Entry(input_frame, width=20)
|
||||
entry.pack(side="left", expand=True)
|
||||
entry.bind("<Return>", convert_unicode) # 绑定回车键
|
||||
|
||||
# 输出区域
|
||||
output_frame = ttk.Frame(main_frame)
|
||||
output_frame.pack(pady=20, fill="x")
|
||||
|
||||
ttk.Label(output_frame, text="转换结果:").pack(side="left", padx=(0, 10))
|
||||
output_entry = ttk.Entry(
|
||||
output_frame,
|
||||
textvariable=output_var,
|
||||
width=24,
|
||||
state="readonly",
|
||||
font=("Consolas", 12, "bold"),
|
||||
foreground="#2d3436"
|
||||
)
|
||||
output_entry.pack(side="left", expand=True)
|
||||
|
||||
# 按钮区域
|
||||
btn_frame = ttk.Frame(main_frame)
|
||||
btn_frame.pack(pady=30)
|
||||
|
||||
convert_btn = ttk.Button(btn_frame, text="立即转换", command=convert_unicode)
|
||||
convert_btn.pack(side="left", padx=10)
|
||||
|
||||
copy_btn = ttk.Button(btn_frame, text="复制结果", command=copy_to_clipboard)
|
||||
copy_btn.pack(side="left")
|
||||
|
||||
# 窗口居中
|
||||
root.eval('tk::PlaceWindow . center')
|
||||
|
||||
root.mainloop()
|
48
my_error/testunicodephone.cpp
Normal file
48
my_error/testunicodephone.cpp
Normal file
@ -0,0 +1,48 @@
|
||||
#include<iostream>
|
||||
#include<algorithm>
|
||||
#include<cstring>
|
||||
using namespace std;
|
||||
void str_to_unicode(const char *input, uint8_t *output) {
|
||||
uint16_t unicode;
|
||||
uint8_t *ptr = output;
|
||||
while (*input) {
|
||||
// UTF-8 转 Unicode(仅处理基本多语言平面字符)
|
||||
if ((*input & 0xE0) == 0xE0) { // 3字节UTF-8字符(如中文)
|
||||
unicode = ((input[0] & 0x0F) << 12) | ((input[1] & 0x3F) << 6) | (input[2] & 0x3F);
|
||||
input += 3;
|
||||
} else if ((*input & 0xC0) == 0xC0) { // 2字节UTF-8字符(如拉丁扩展字符)
|
||||
unicode = ((input[0] & 0x1F) << 6) | (input[1] & 0x3F);
|
||||
input += 2;
|
||||
} else { // 1字节ASCII字符
|
||||
unicode = *input;
|
||||
input += 1;
|
||||
}
|
||||
// 转换为大端序(UTF-16BE)
|
||||
*ptr++ = (unicode >> 8) & 0xFF;
|
||||
*ptr++ = unicode & 0xFF;
|
||||
}
|
||||
*ptr = '\0'; // 结束符
|
||||
}
|
||||
int main()
|
||||
{
|
||||
int n;
|
||||
// string s;
|
||||
uint8_t a[10005];
|
||||
char s[100005];
|
||||
// cin>>s;
|
||||
scanf("%s",s);
|
||||
int i=-1;
|
||||
char sc[1005];
|
||||
str_to_unicode(s,a);
|
||||
for(int i=0;i<=100;i++)
|
||||
{
|
||||
printf("%X",a[i]);
|
||||
}
|
||||
while(s[++i])
|
||||
{
|
||||
sprintf(sc+i*4,"00%X",s[i]);
|
||||
printf("00%X",s[i]);
|
||||
}
|
||||
printf("\n%s",sc);
|
||||
|
||||
}
|
99
my_error/uni3.cpp
Normal file
99
my_error/uni3.cpp
Normal file
@ -0,0 +1,99 @@
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
//void print_utf8_to_unicode(const char *str) {
|
||||
// while (*str) {
|
||||
// unsigned char c = *str;
|
||||
// unsigned int code = 0;
|
||||
//
|
||||
// // 根据UTF-8编码规则解析字节
|
||||
// if (c < 0x80) { // 1字节
|
||||
// code = c;
|
||||
// str += 1;
|
||||
// } else if ((c & 0xE0) == 0xC0) { // 2字节
|
||||
// code = ((c & 0x1F) << 6) | (str[1] & 0x3F);
|
||||
// str += 2;
|
||||
// } else if ((c & 0xF0) == 0xE0) { // 3字节(中文常用)
|
||||
// code = ((c & 0x0F) << 12) | ((str[1] & 0x3F) << 6) | (str[2] & 0x3F);
|
||||
// str += 3;
|
||||
// } else if ((c & 0xF8) == 0xF0) { // 4字节
|
||||
// code = ((c & 0x07) << 18) | ((str[1] & 0x3F) << 12) | ((str[2] & 0x3F) << 6) | (str[3] & 0x3F);
|
||||
// str += 4;
|
||||
// } else {
|
||||
// // 处理无效字节
|
||||
// code = c; // Unicode替换字符
|
||||
// str++;
|
||||
// }
|
||||
//
|
||||
// printf("U+%04X ", code);
|
||||
// }
|
||||
//}
|
||||
|
||||
int Utf82Unicode(char* pInput, char* pOutput)
|
||||
{
|
||||
int outputSize = 0; //记录转换后的Unicode字符串的字节数
|
||||
*pOutput = 0;
|
||||
while (*pInput)
|
||||
{
|
||||
cout<< *pInput<<"; ";
|
||||
if (*pInput > 0x00 && *pInput <= 0x7F) //处理单字节UTF8字符(英文字母、数字)
|
||||
{
|
||||
*pOutput = *pInput;
|
||||
pOutput++;
|
||||
*pOutput = 0; //小端法表示,在高地址填补0
|
||||
}
|
||||
else if (((*pInput) & 0xE0) == 0xC0) //处理双字节UTF8字符
|
||||
//else if(*pInput >= 0xC0 && *pInput < 0xE0)
|
||||
{
|
||||
char high = *pInput;
|
||||
pInput++;
|
||||
char low = *pInput;
|
||||
if ((low & 0xC0) != 0x80) //检查是否为合法的UTF8字符表示
|
||||
{
|
||||
return -1; //如果不是则报错
|
||||
}
|
||||
|
||||
*pOutput = (high << 6) + (low & 0x3F);
|
||||
pOutput++;
|
||||
*pOutput = (high >> 2) & 0x07;
|
||||
}
|
||||
else if (((*pInput) & 0xF0) == 0xE0) //处理三字节UTF8字符
|
||||
//else if(*pInput>=0xE0 && *pInput<0xF0)
|
||||
{
|
||||
char high = *pInput;
|
||||
pInput++;
|
||||
char middle = *pInput;
|
||||
pInput++;
|
||||
char low = *pInput;
|
||||
if (((middle & 0xC0) != 0x80) || ((low & 0xC0) != 0x80))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
*pOutput = (middle << 6) + (low & 0x3F);//取出middle的低两位与low的低6位,组合成unicode字符的低8位
|
||||
pOutput++;
|
||||
*pOutput = (high << 4) + ((middle >> 2) & 0x0F); //取出high的低四位与middle的中间四位,组合成unicode字符的高8位
|
||||
}
|
||||
else //对于其他字节数的UTF8字符不进行处理
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
pInput ++;//处理下一个utf8字符
|
||||
pOutput ++;
|
||||
outputSize +=2;
|
||||
}
|
||||
//unicode字符串后面,有两个\0
|
||||
*pOutput = 0;
|
||||
pOutput++;
|
||||
*pOutput = 0;
|
||||
return outputSize;
|
||||
}
|
||||
|
||||
int main() {
|
||||
// 确保源代码文件以UTF-8编码保存
|
||||
char text[] =u8"你好";
|
||||
//// print_utf8_to_unicode(text);
|
||||
// char outs[1005];
|
||||
// Utf82Unicode(text,outs);
|
||||
printf("str:%04X",text);
|
||||
return 0;
|
||||
}
|
56
my_error/unicode.cpp
Normal file
56
my_error/unicode.cpp
Normal file
@ -0,0 +1,56 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int utf8ToUnicode(const char* utf8, int* unicode) {
|
||||
unsigned char byte = (unsigned char)utf8[0];
|
||||
int numBytes, codePoint;
|
||||
|
||||
if (byte < 0x80) {
|
||||
// 1字节编码,直接返回
|
||||
numBytes = 1;
|
||||
codePoint = byte;
|
||||
} else if ((byte & 0xE0) == 0xC0) {
|
||||
// 2字节编码
|
||||
numBytes = 2;
|
||||
codePoint = byte & 0x1F;
|
||||
} else if ((byte & 0xF0) == 0xE0) {
|
||||
// 3字节编码
|
||||
numBytes = 3;
|
||||
codePoint = byte & 0x0F;
|
||||
} else if ((byte & 0xF8) == 0xF0) {
|
||||
// 4字节编码
|
||||
numBytes = 4;
|
||||
codePoint = byte & 0x07;
|
||||
} else {
|
||||
// 非法编码
|
||||
return -1;
|
||||
}
|
||||
|
||||
// 解析余下的字节
|
||||
for (int i = 1; i < numBytes; ++i) {
|
||||
byte = (unsigned char)utf8[i];
|
||||
if ((byte & 0xC0) != 0x80) {
|
||||
// 非法编码
|
||||
return -1;
|
||||
}
|
||||
codePoint = (codePoint << 6) | (byte & 0x3F);
|
||||
}
|
||||
|
||||
*unicode = codePoint;
|
||||
return numBytes;
|
||||
}
|
||||
|
||||
int main() {
|
||||
char utf8[] = "你好,世界!";
|
||||
int unicode;
|
||||
|
||||
int numBytes = utf8ToUnicode(utf8, &unicode);
|
||||
if (numBytes == -1) {
|
||||
printf("非法UTF-8编码!\n");
|
||||
} else {
|
||||
printf("UTF-8编码: %s\n", utf8);
|
||||
printf("对应的Unicode码点: U+%04X\n", unicode);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user