01-死磕QNX someip
1. vsomeip3.1.20版本
环境配置
export COMMONAPI_CONFIG=/etc/commonapi.ini
export LD_LIBRARY_PATH=/sdcard/someip:$LD_LIBRARY_PATH
export VSOMEIP_CONFIGURATION=/etc/vsomeip-service.json
export VSOMEIP_APPLICATION_NAME=HelloWorldSomeIPService
sysctl -w net.inet.ip.forwarding=1
route -n add 224.244.224.245 192.168.1.1
测试问题:
# ./HelloWorldSomeIPService
[CAPI][INFO] Loading configuration file '/etc/commonapi.ini'
[CAPI][INFO] Using default binding 'someip'
[CAPI][INFO] Using default shared library folder '/usr/local/lib/commonapi'
[CAPI][INFO] Registering function for creating "commonapi.HelloWorld:v1_0" stub adapter.
[CAPI][INFO] Registering stub for "local:commonapi.HelloWorld:v1_0:mid.someip.helloword"
1970-00-01 03:25:22.226275 [info] Parsed vsomeip configuration in 23ms
1970-00-01 03:25:22.226285 [info] Using configuration file: "/etc/vsomeip-service.json".
1970-00-01 03:25:22.226295 [info] Configuration module loaded.
1970-00-01 03:25:22.226295 [info] Initializing vsomeip application "HelloWorldSomeIPServiceA".
1970-00-01 03:25:22.226295 [info] Instantiating routing manager [Proxy].
1970-00-01 03:25:22.226295 [info] Client [ffff] is connecting to [0] at /tmp/vsomeip-0
1970-00-01 03:25:22.226305 [info] Application(HelloWorldSomeIPServiceA, ffff) is initialized (11, 100).
1970-00-Successfully Registered Service!1
03Waiting for calls... (Abort with CTRL+C):
25:22.226305 [info] Starting vsomeip application "HelloWorldSomeIPServiceA" (ffff) using 2 threads I/O nice 255
1970-00-01 03:25:22.226315 [info] main dispatch thread id from application: ffff (HelloWorldSomeIPServiceA) is: 4
1970-00-01 03:25:22.226315 [info] shutdown thread id from application: ffff (HelloWorldSomeIPServiceA) is: 5
1970-00-01 03:25:22.226315 [info] io thread id from application: ffff (HelloWorldSomeIPServiceA) is: 3
1970-00-01 03:25:22.226315 [info] io thread id from application: ffff (HelloWorldSomeIPServiceA) is: 6
1970-00-01 03:25:22.226325 [info] routing_manager_proxy::on_disconnect: Client 0xffff calling host_->on_state with DEREGISTERED
1970-00-01 03:25:22.227335 [info] routing_manager_proxy::on_disconnect: Client 0xffff calling host_->on_state with DEREGISTERED
1970-00-01 03:25:22.229346 [info] routing_manager_proxy::on_disconnect: Client 0xffff calling host_->on_state with DEREGISTERED
1970-00-01 03:25:23.233358 [info] routing_manager_proxy::on_disconnect: Client 0xffff calling host_->on_state with DEREGISTERED
1970-00-01 03:25:24.241375 [info] routing_manager_proxy::on_disconnect: Client 0xffff calling host_->on_state with DEREGISTERED
1970-00-01 03:25:25.257385 [info] routing_manager_proxy::on_disconnect: Client 0xffff calling host_->on_state with DEREGISTERED
1970-00-01 03:25:27.273403 [info] routing_manager_proxy::on_disconnect: Client 0xffff calling host_->on_state with DEREGISTERED
困扰了好久~~~~~~~~
2. vsomeip 2.10.21版本
2.1
export VSOMEIP_APPLICATION_NAME=hello_world_service
# ./hello_world_service
1970-01-01 01:42:17.065471 [info] Parsed vsomeip configuration in 15ms
1970-01-01 01:42:17.067471 [info] Using configuration file: "/etc/vsomeip-service.json".
1970-01-01 01:42:17.068471 [info] Default configuration module loaded.
1970-01-01 01:42:17.068471 [info] Initializing vsomeip application "hello_world_service".
1970-01-01 01:42:17.069471 [warning] Routing Manager seems to be inactive. Taking over...
1970-01-01 01:42:17.073471 [info] SOME/IP client identifier configured. Using 100b (was: 1000)
1970-01-01 01:42:17.074471 [info] Instantiating routing manager [Host].
1970-01-01 01:42:17.075471 [info] init_routing_endpoint Routing endpoint at /tmp/vsomeip-0
1970-01-01 01:42:17.079471 [error] Server endpoint creation failed (3)
1970-01-01 01:42:17.079471 [error] routing_manager_stub::init_routing_endpoint Client ID: 0 Path: /tmp/vsomeip-0 Reason: acceptor bind: Permission denied
1970-01-01 01:42:17.079471 [info] Client [100b] is connecting to [0] at /tmp/vsomeip-0
1970-01-01 01:42:17.079471 [info] Service Discovery enabled. Trying to load module.
1970-01-01 01:42:17.087471 [info] Service Discovery module loaded.
1970-01-01 01:42:17.087471 [info] Application(hello_world_service, 100b) is initialized (11, 100).
Successfully Registered Service!
Waiting for calls... (Abort with CTRL+C)
1970-01-01 01:42:17.088471 [info] Starting vsomeip application "hello_world_service" using 2 threads
1970-01-01 01:42:17.088471 [info] main dispatch thread id from application: 100b (hello_world_service) is: 4
1970-01-01 01:42:17.088471 [info] shutdown thread id from application: 100b (hello_world_service) is: 5
1970-01-01 01:42:17.089471 [info] SOME/IP routing ready.
1970-01-01 01:42:17.089471 [info] init_routing_endpoint Routing endpoint at /tmp/vsomeip-0
1970-01-01 01:42:17.091471 [error] Server endpoint creation failed (3)
1970-01-01 01:42:17.091471 [error] routing_manager_stub::init_routing_endpoint Client ID: 0 Path: /tmp/vsomeip-0 Reason: acceptor bind: Permission denied
1970-01-01 01:42:17.091471 [info] Watchdog is disabled!
1970-01-01 01:42:17.091471 [info] io thread id from application: 100b (hello_world_service) is: 3
1970-01-01 01:42:17.091471 [info] io thread id from application: 100b (hello_world_service) is: 7
1970-01-01 01:42:17.091471 [info] vSomeIP 2.10.21 | (default)
1970-01-01 01:42:20.291480 [warning] Releasing client identifier 100a. Its corresponding application went offline while no routing manager was running.
1970-01-01 01:42:20.291480 [info] Application/Client 100a is deregistering.
1970-01-01 01:42:27.094179 [info] vSomeIP 2.10.21 | (default)
1970-01-01 01:42:37.095811 [info] vSomeIP 2.10.21 | (default)
Waiting for calls... (Abort with CTRL+C)
1970-01-01 01:42:47.097257 [info] vSomeIP 2.10.21 | (default)
1970-01-01 01:42:57.098566 [info] vSomeIP 2.10.21 | (default)
上述LOG可以看出,socket bind 权限问题。那么怎么处理?
QNX LOG:
Jan 01 04:28:02.308 io_service.577610 default 14814 io_service[sensors_manager.c:618]: [39]Sensor:PMIC_THERM:43929 mCJan 01 04:28:02.704 npa_drv.32784 npa_hi_rate_logging 16103 qcore:[npa_drv.c:214] io_write: pid=45101, tid=2, ufs_drv:persistent /pmic/client/ufs 2
Jan 01 04:28:02.704 npa_drv.32784 npa_hi_rate_logging 16103 qcore:[npa_utils.c:282] NPA_CLIENT_REQUIRED 0x23177a2924 2
Jan 01 04:28:02.705 npa_drv.32784 npa_hi_rate_logging 16103 qcore:[npa_utils.c:284] NPA_CLIENT_REQUIRED 0x23177a2924 DONE
Jan 01 04:28:02.822 devnp_emac_eth.45081 emac* 2 emac_start: Link is not UP
Jan 01 04:28:02.825 dumper.680003 slog* 0 run fault pid 2977857 tid 1 signal 11 code 1 ip 0x155ccca794 ./hello_world_service
Jan 01 04:28:02.542 secpolgenerate.20487 info* 0 io-pkt-v6-hc (pid:45081 type:io_pkt_v6_hc_t) failed to attach to path /tmp/vsomeip-0: no rule
Jan 01 04:28:02.564 secpolgenerate.20487 info 0 io-pkt-v6-hc (pid:45081 type:io_pkt_v6_hc_t) failed to attach to path /tmp/vsomeip-1003: no rule
Jan 01 04:28:02.565 secpolgenerate.20487 info 0 io-pkt-v6-hc (pid:45081 type:io_pkt_v6_hc_t) failed to attach to path /tmp/vsomeip-0: no rule
Jan 01 04:28:03.213 io_service.577610 default 14814 io_service[sensors_manager.c:618]: [40]Sensor:PMIC_THERM2:44190 mCJan 01 04:28:03.218 display.45084..0 HI 10256 [20][wfdSetPipelineAttribiv:2111] DESTINATION_RECTANGLE (x=960 y=0 w=128 h=128), layer_id=8
Jan 01 04:28:03.311 io_service.577610 default 14814 io_service[sensors_manager.c:618]: [39]Sensor:PMIC_THERM:44321 mCJan 01 04:28:03.400 dumper.680003 slog 0 pid 2977857 core file created at /var/log/hello_world_service.core
Jan 01 04:28:04.071 npa_drv.32784 npa_hi_rate_logging 16103 qcore:[npa_drv.c:428] DCMD_NPA_ISSUE_REQUIRED_REQUEST client=0x2317732154, pid=32781, tid=1
Jan 01 04:28:04.135 npa_drv.32784 npa_hi_rate_logging 16103 qcore:[npa_drv.c:428] DCMD_NPA_ISSUE_REQUIRED_REQUEST client=0x2317732154, pid=32781, tid=7
Jan 01 04:28:04.216 io_service.577610 default 14814 io_service[sensors_manager.c:618]: [40]Sensor:PMIC_THERM2:44287 mCJan 01 04:28:04.265 devnp_emac_eth.45081 emac 2 emac_start: Link is not UP
Jan 01 04:28:04.314 io_service.577610 default 14814 io_service[sensors_manager.c:618]: [39]Sensor:PMIC_THERM:44223 mCJan 01 04:28:04.826 npa_drv.32784 npa_hi_rate_logging 16103 qcore:[npa_drv.c:214] io_write: pid=45101, tid=2, ufs_drv:persistent /pmic/client/ufs 1
Jan 01 04:28:04.826 npa_drv.32784 npa_hi_rate_logging 16103 qcore:[npa_utils.c:282] NPA_CLIENT_REQUIRED 0x23177a2924 1
Jan 01 04:28:04.826 npa_drv.32784 npa_hi_rate_logging 16103 qcore:[npa_utils.c:284] NPA_CLIENT_REQUIRED 0x23177a2924 DONE
Jan 01 04:28:05.218 io_service.577610 default 14814 io_service[sensors_manager.c:618]: [40]Sensor:PMIC_THERM2:44385 mCJan 01 04:28:05.252 display.45084..0 HI 10256 [20][wfdSetPipelineAttribiv:2111] DESTINATION_RECTANGLE (x=896 y=0 w=128 h=128), layer_id=8
Jan 01 04:28:05.317 io_service.577610 default 14814 io_service[sensors_manager.c:618]: [39]Sensor:PMIC_THERM:44158 mCJan 01 04:28:05.392 watchdog.32777 default 16024 watchdog[watchdog.c:427]: lowpriowd alive
通过io-pkt-v6-hc 对hello_world_service进行网络授权:
# io-pkt-v6-hc -i1 -ptcpip prefix=/alt
# SOCK=/alt /sdcard/someip/hello_world_service
1970-01-01 00:03:05.034710 [info] Parsed vsomeip configuration in 13ms
1970-01-01 00:03:05.036710 [info] Using configuration file: "/etc/vsomeip-service-ip.json".
1970-01-01 00:03:05.037710 [info] Default configuration module loaded.
1970-01-01 00:03:05.037710 [info] Initializing vsomeip application "hello_world_service".
1970-01-01 00:03:05.038710 [info] SOME/IP client identifier configured. Using 1001 (was: 1000)
1970-01-01 00:03:05.038710 [info] Instantiating routing manager [Host].
1970-01-01 00:03:05.039710 [info] init_routing_endpoint Routing endpoint at /tmp/vsomeip-0
1970-01-01 00:03:05.040710 [info] Listening at /tmp/vsomeip-0
1970-01-01 00:03:05.040710 [info] Client [1001] is connecting to [0] at /tmp/vsomeip-0
1970-01-01 00:03:05.040710 [info] Service Discovery enabled. Trying to load module.
1970-01-01 00:03:05.049710 [info] Service Discovery module loaded.
1970-01-01 00:03:05.049710 [info] Application(hello_world_service, 1001) is initialized (11, 100).
1970-01-01 00:03:05.050710 [info] OFFER(1001): [3adc.65d4:1.0]
1970-01-01 00:03:05.050710 [info] Starting vsomeip application "hello_world_service" using 2 threads
1970-01-01 00:03:05.050710 [info] main dispatch thread id from application: 1001 (hello_world_service) is: 4
1970-01-01 00:03:05.051710 [info] shutdown thread id from application: 1001 (hello_world_service) is: 5
Successfully Registered Service!
Waiting for calls... (Abort with CTRL+C)
1970-01-01 00:03:05.067710 [error] Server endpoint creation failed (3)
1970-01-01 00:03:05.067710 [error] outbound interface option IPv4: Can't assign requested address
1970-01-01 00:03:05.067710 [error] Service Discovery endpoint could not be created. Please check your network configuration.
1970-01-01 00:03:05.067710 [error] Couldn't start service discovery
1970-01-01 00:03:05.068710 [error] Server endpoint creation failed (3)
1970-01-01 00:03:05.068710 [error] acceptor bind: Can't assign requested address
1970-01-01 00:03:05.069710 [error] Server endpoint creation failed (3)
1970-01-01 00:03:05.069710 [error] outbound interface option IPv4: Can't assign requested address
1970-01-01 00:03:05.069710 [info] SOME/IP routing ready.
1970-01-01 00:03:05.069710 [info] Watchdog is disabled!
1970-01-01 00:03:05.070710 [info] io thread id from application: 1001 (hello_world_service) is: 3
1970-01-01 00:03:05.070710 [info] vSomeIP 2.10.21 | (default)
1970-01-01 00:03:05.070710 [info] io thread id from application: 1001 (hello_world_service) is: 7
2.2
清除emac网卡
io-pkt-v6-hc -i1 -ptcpip
添加本地route
route -n add 224.244.224.245 127.0.0.255
修改vsomeip-service.json 配置
运行QNX测试程序:
# ./hello_world_service &
[1] 1077288
# 1970-01-01 00:06:53.924619 [info] Parsed vsomeip configuration in 14ms
1970-01-01 00:06:53.925619 [info] Using configuration file: "/etc/vsomeip-service.json".
1970-01-01 00:06:53.926619 [info] Default configuration module loaded.
1970-01-01 00:06:53.926619 [info] Initializing vsomeip application "hello_world_service".
1970-01-01 00:06:53.927619 [info] SOME/IP client identifier configured. Using 1001 (was: 1000)
1970-01-01 00:06:53.927619 [info] Instantiating routing manager [Host].
1970-01-01 00:06:53.928619 [info] init_routing_endpoint Routing endpoint at /tmp/vsomeip-0
1970-01-01 00:06:53.931619 [info] Listening at /tmp/vsomeip-0
1970-01-01 00:06:53.931619 [info] Client [1001] is connecting to [0] at /tmp/vsomeip-0
1970-01-01 00:06:53.931619 [info] Service Discovery enabled. Trying to load module.
1970-01-01 00:06:53.942619 [info] Service Discovery module loaded.
1970-01-01 00:06:53.942619 [info] Application(hello_world_service, 1001) is initialized (11, 100).
1970-01-01 00:06:53.943619 [info] Starting vsomeip application "hello_world_service" using 2 threads
1970-01-01 00:06:53.943619 [info] main dispatch thread id from application: 1001 (hello_world_service) is: 4
1970-01-01 00:06:53.943619 [info] OFFER(1001): [3adc.65d4:1.0]
1970-01-01 00:06:53.943619 [info] shutdown thread id from application: 1001 (hello_world_service) is: 5
1970-01-01 00:06:53.944619 [info] SOME/IP routing ready.
1970-01-01 00:06:53.944619 [info] Watchdog is disabled!
1970-01-01 00:06:53.945619 [info] io thread id from application: 1001 (hello_world_service) is: 7
1970-01-01 00:06:53.945619 [info] io thread id from application: 1001 (hello_world_service) is: 3
1970-01-01 00:06:53.945619 [info] vSomeIP 2.10.21 | (default)
Successfully Registered Service!
Waiting for calls... (Abort with CTRL+C)#
#
#
#
# 1970-01-01 00:07:03.947413 [info] vSomeIP 2.10.21 | (default)#
#
# export VSOMEIP_APPLICATION_NAME=hello_world_client
#
#
# 1970-01-01 00:07:13.948714 [info] vSomeIP 2.10.21 | (default)
./hello_world_client
1970-01-01 00:07:16.782683 [info] Parsed vsomeip configuration in 11ms
1970-01-01 00:07:16.783683 [info] Using configuration file: "/etc/vsomeip-service.json".
1970-01-01 00:07:16.784683 [info] Default configuration module loaded.
1970-01-01 00:07:16.784683 [info] Initializing vsomeip application "hello_world_client".
1970-01-01 00:07:16.785683 [info] SOME/IP client identifier configured. Using 2000 (was: 2000)
1970-01-01 00:07:16.785683 [info] Instantiating routing manager [Proxy].
1970-01-01 00:07:16.785683 [info] Client [2000] is connecting to [0] at /tmp/vsomeip-0
1970-01-01 00:07:16.787683 [info] Listening at /tmp/vsomeip-2000
1970-01-01 00:07:16.787683 [info] Application(hello_world_client, 2000) is initialized (11, 100).
1970-01-01 00:07:16.788683 [info] Starting vsomeip application "hello_world_client" using 2 threads
Checking availability!
1970-01-01 00:07:16.789683 [info] main dispatch thread id from application: 2000 (hello_world_client) is: 4
1970-01-01 00:07:16.789683 [info] shutdown thread id from application: 2000 (hello_world_client) is: 5
1970-01-01 00:07:16.789683 [info] io thread id from application: 2000 (hello_world_client) is: 3
1970-01-01 00:07:16.790683 [info] io thread id from application: 2000 (hello_world_client) is: 6
1970-01-01 00:07:16.790683 [info] Client 2000 successfully connected to routing ~> registering..
1970-01-01 00:07:16.791683 [info] Application/Client 2000 is registering.
1970-01-01 00:07:16.791683 [info] Client [1001] is connecting to [2000] at /tmp/vsomeip-2000
1970-01-01 00:07:16.793683 [info] Application/Client 2000 is registered.
1970-01-01 00:07:16.794683 [info] REGISTERED_ACK(2000)
1970-01-01 00:07:16.799683 [info] REQUEST(2000): [3adc.65d4:1.4294967295]
1970-01-01 00:07:16.800683 [info] ON_AVAILABLE(2000): [3adc.65d4:1.0]
Available...
Enter number 1: Waiting for calls... (Abort with CTRL+C)
综上,未发现routing 错误,以及socket bind问题; 可以判断,上述2.1 someip 在QNX环境运行跟网络配置关系很大。
2.3
2.10.21 版本,配置文件service 以及 route name 与实际运行的程序名称不一致时会出现与3.1.20类似的问题:routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
export VSOMEIP_APPLICATION_NAME=HelloWorldSomeIPService
# ./HelloWorldSomeIPService
1970-01-01 01:15:59.927933 [info] Parsed vsomeip configuration in 14ms
1970-01-01 01:15:59.928933 [info] Using configuration file: "/etc/vsomeip-service.json".
1970-01-01 01:15:59.929933 [info] Default configuration module loaded.
1970-01-01 01:15:59.930933 [info] Initializing vsomeip application "HelloWorldSomeIPService".
1970-01-01 01:15:59.931933 [info] SOME/IP client identifier configured. Using 1007 (was: 0000)
1970-01-01 01:15:59.931933 [info] Instantiating routing manager [Proxy].
1970-01-01 01:15:59.931933 [info] Client [1007] is connecting to [0] at /tmp/vsomeip-0
1970-01-01 01:15:59.937933 [error] Server endpoint creation failed (3)
1970-01-01 01:15:59.937933 [error] Client ID: 1007: acceptor bind: Permission denied
1970-01-01 01:15:59.937933 [info] Application(HelloWorldSomeIPService, 1007) is initialized (11, 100).
Successfully Registered Service!
1970-01-01 01:15:59.937933 [info] Starting vsomeip application "HelloWorldSomeIPService" using 2 threadsWaiting for calls... (Abort with CTRL+C)1970-01-01 01:15:59.937933 [info] main dispatch thread id from application: 1007 (HelloWorldSomeIPService) is: 4
1970-01-01 01:15:59.937933 [info] shutdown thread id from application: 1007 (HelloWorldSomeIPService) is: 5
1970-01-01 01:15:59.940933 [error] Server endpoint creation failed (3)
1970-01-01 01:15:59.940933 [error] Client ID: 1007: acceptor bind: Permission denied
1970-01-01 01:15:59.940933 [info] io thread id from application: 1007 (HelloWorldSomeIPService) is: 6
1970-01-01 01:15:59.940933 [info] io thread id from application: 1007 (HelloWorldSomeIPService) is: 3
1970-01-01 01:15:59.941933 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:00.043602 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:00.245036 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:00.646979 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:01.447985 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:03.048993 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:04.650002 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:06.251906 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:07.853345 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:09.454760 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:11.055769 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:12.657247 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:14.258393 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
1970-01-01 01:16:15.859996 [info] routing_manager_proxy::on_disconnect: Client 0x1007 calling host_->on_state with DEREGISTERED
3. vsomeip 2.5.2版本
相关文章:
配置AutoFacManger.cs
使用配置AutoFacManger的好处是不用我们像之前一样写一层注入一层,这样自动注入只要我们命名规范的话,就可以实现不在用去Program中手动后注入 创建一个类里边写public class AutoFacManger : Autofac.Module{/// <summary>/// 自动注入/// </summary>/// <pa…...
Vue3使用vue3-puzzle-vcode进行滑动验证
npm包地址:https://www.npmjs.com/package/vue3-puzzle-vcode npm安装 npm install vue3-puzzle-vcode --save最简单例子: <template><Vcode :show="isShow" @success="onSuccess" @close="onClose"/><button @click="onS…...
Windows10 子系统 WSL 位置迁移问题_wsl --import 未指定的错误
CSDN搬家失败,手动导出markdown后再导入博客园最近想体验下世界上最好的 Linux 发行版 Win10(bushi),拿来深度学习炼丹,所以参考了在 WSL2 中使用 CUDA 提到的方法安装。 列举下遇到的问题: 1 Windows 预览版本没响应 按理说在设置 - 更新和安全 - Windows 预览体验计划里…...
Keil辅助工具推荐及使用
前言 再最近的学习当中无意间学到了一些关于Keil自动化运行脚本的方式,特此收集整理记录一下这里主要介绍三种收集而来的工具:Keil编译自动生成定制的Hex文件 Keil自动化编译代码脚本 Keil编译信息增强工具Keil编译自动生成定制的Hex文件 参考链接:Keil编译自动生成定制的HE…...
扫描线模板
#include<bits/stdc++.h> using namespace std; using i64 = long long; const int N = 1e6 + 5;//本模板是从左往右扫的,从下往上扫同理 #define ls (rt<<1) #define rs (rt<<1|1)i64 cover[N * 8]; //存放i节点对应区间覆盖情况的值 i64 n; i64 len[N * 8…...
P1064 [NOIP2006 提高组] 金明的预算方案 题解
分析 每一套物品有主件和附件,主件可以单独购买,附件只能和主件一起买。所以,每一套物品有四种买法:主件、主件和附件1、主件和附件2、主件和所有附件。 \(dp_j=\max(dp_j,dp_{j-v_{i_1}}+w_{i_1},dp_{j-v_{i_1}-v_{i_2}}+w_{i_1}+w_{i_2},dp_{j-v_{i_1}-v_{i_3}}+w_{i_1}+…...
01-死磕QNX someip
1. vsomeip3.1.20版本 环境配置 export COMMONAPI_CONFIG/etc/commonapi.ini export LD_LIBRARY_PATH/sdcard/someip:$LD_LIBRARY_PATH export VSOMEIP_CONFIGURATION/etc/vsomeip-service.json export VSOMEIP_APPLICATION_NAMEHelloWorldSomeIPService sysctl -w net.ine…...
OTFS输入输出关系
目录 1. OTFS输入输出关系的矩阵表示 1.1 OTFS:矩阵表示 1.2 OTFS发射机的实现 1.2.1 传统的OTFS调制 ISFFT 海森堡变换 1.2.2 基于IDZT的OTFS调制 1.3 OTFS接收机的实现 1.3.1 传统的OTFS解调 维格纳变换 SFFT 1.3.2 基于DZT的OTFS解调 Appendix-Matlab C…...
Java的抽象类和接口
目录 一 、抽象类 1、抽象类概念 2、抽象类语法 3、抽象类特性 4、抽象类的作用 二、接口 1、接口的概念 2、语法规则 3、接口使用 4、接口特性 5、实现多个接口 6、接口间的继承 7、抽象类和接口的区别 8、接口使用实例 9、Clonable 接口和深拷贝 三、Object类…...
作为一个女测试员是什么样的体验?
面试时极度紧张,语无伦次,觉得肯定没戏,最后却拿到高薪offer。 工作之后我听同事们讲,测试总监面试官并没打算要我,但身边的人都问他: 那个小姐姐什么时候来报道?... 于是在众人的期待的目光…...
移动端 REM 适配
Vant 中的样式默认使用 px 作为单位,如果需要使用 rem 单位,推荐使用以下两个工具: postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 rem lib-flexible 用于设置 rem 基准值 下面我们分别将这两个工具配置到项目中完成 R…...
哈希表【leetcode】
笔记:代码随想录 理论 概念 哈希表(hash table,散列表):是根据关键码的值而直接访问的数据结构,说白,数组就是一张哈希表。 哈希函数:把变量直接映射为表上的索引。 哈希碰撞&a…...
【Gem5】有关gem5模拟器的资料导航
网上有关gem5模拟器的资料、博客良莠不齐,这里记录一些总结的很好的博客与自己的学习探索。 一、gem5模拟器使用入门 官方的教程: learning_gem5:包括gem5简介、修改扩展gem5的示例、Ruby相关的缓存一致性等。gem5 Documentation࿱…...
R语言中apply系列函数详解
文章目录applylapply, sapply, vapplyrapplytapplymapplyR语言的循环效率并不高,所以并不推荐循环以及循环嵌套。为了实现循环功能的情况下,兼顾效率,R语言提供了apply系列函数,用于对规则的数据进行函数式的迭代处理。 apply a…...
AOP的另类用法 (权限校验自定义注解)
👳我亲爱的各位大佬们好😘😘😘 ♨️本篇文章记录的为 AOP的另类用法 (权限校验&&自定义注解) 相关内容,适合在学Java的小白,帮助新手快速上手,也适合复习中,面试中的大佬🙉🙉…...
【机器学习】机器学习建模调参方法总结
文章目录一、前言1.1 数据来源1.2 理论简介二、知识总结2.1 回归分析2.2 长尾分布2.3 欠拟合与过拟合2.4 正则化2.5 调参方法2.5.1 贪心调参 (坐标下降)2.5.2 网格调参GridSearchCV2.5.3 贝叶斯调参三、建模与调参3.1 线性回归3.1.1 模型建立3.1.2 查看训…...
Python数据分析师|Pandas之基础知识
版权声明:原创不易,本文禁止抄袭、转载,侵权必究! 目录一、数据分析简介二、数据分析简介三、数据查看四、知识总结五、作者Info一、数据分析简介 随着科技的发展,数据变得尤为重要,甚至有着“数据为王”&…...
macOS 13.3(22E252)/12.6.4/11.7.5正式版发布
系统介绍 3 月 28 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.3 更新(内部版本号:22E252)苹果今天还发布了macOS Monterey 12.6.4和macOS Big Sur 11.7.5,本次更新距离上次发布隔了 42 天。 macOS Ventura 带来…...
速度与兼容性功能大比拼:7款浏览器测评,哪一款更好用
还在为使用哪款浏览器而发愁吗?电脑配置低,又想浏览网页顺畅、下载速度快,那么就要挑选功能齐全、速度快的浏览器。话不多说,给大家做了7款浏览器的最全测评,看看2023年哪个浏览器更好用,更适合自己。 本次…...
【建议收藏】2023年中高级软件测试大厂面试秘籍,为你保驾护航金三银四,直通大厂
前言 从几十份顶级面试仓库和300多篇高质量面经中总结出一份全面成体系化的软件测试高级面试题集。 随着软件测试岗位技术发展的成熟,自动化、性能、框架等一下子就进入了我们的视野内,同时,软件测试自身的技术栈也正在不断扩展,…...
Cinema 4D 2023.1.3安装包下载及安装教程
[软件名称]:Cinema 4D 2023.1.3 [软件大小]: 1.0GB [安装环境]: Win11/Win 10 [软件安装包下载]: https://pan.quark.cn/s/c2324deaa028 CINEMA 4D字面意思是4D电影,不过其本身就是3D的表现软件,由德国Maxon Computer开发,以极高的运算速度和…...
IDEA vs Eclipse:使用体验对比
1. 概述 IDEA 和 Eclipse 都是常见的集成开发环境(IDE),用于编写和调试代码。它们都有一些共同的功能,例如代码编辑器、调试器、版本控制等等。但是在具体的使用体验上,它们有很多不同之处。 本文将对 IDEA 和 Eclip…...
新手学SpringCloud前需知道的5点
目录 第一点: 什么是微服务架构 第二点:为什么需要学习Spring Cloud 第三点: Spring Cloud 是什么 第四点: SpringCloud的优缺点 1、SpringCloud优点 2、SpringCloud缺点 第五点: SpringCloud由什么组成 1&…...
Java集合—HashMap为什么2倍扩容 、HashMap的key允许空值而Hashtable却不允许
目录 1. Java集合—HashMap为什么2倍扩容 1.1 从源码分析 2. 为什么HashMap的key允许空值,而Hashtable却不允许 2.1 从源码分析 1. Java集合—HashMap为什么2倍扩容 HashMap的初始容量都是2的n次幂的形式存在的,而扩容也是2倍的原来的容量进行扩容&a…...
国内、外(翻)的新闻网站推荐
也许有很多朋友和我一样,小小螺丝天天关注国家大事,总喜欢在茶余饭后关注下国内外新闻,除了新闻广播和电视之外还能有哪些方式呢?今天就给大家盘点总结一下。 一、国内 1.今日头条:链接:今日头条 推荐等…...
PHP初级教程------------------(2)
目录 运算符 赋值运算符 算术运算符 比较运算符 逻辑运算符 连接运算符 错误抑制符 三目运算符 自操作运算符 编辑 计算机码 位运算符 运算符优先级 流程控制 控制分类 顺序结构 分支结构 If分支 Switch分支 循环结构 For循环 while循环 do-while循环 循环控制 …...
js的递归函数——实现可收放的树形菜单
递归函数实现树形菜单创建假数据或者请求接口数据定义递归函数,处理数据调用函数,渲染页面效果展示完整代码树形菜单是一种常见的网站导航方式,它通常由多个层级的菜单项组成,每个菜单项可以有子菜单项。在JavaScript中࿰…...
如何高效搭建资产管理平台?众安科技告诉你答案是图技术
本⽂整理⾃ NebulaGraph x 阿⾥云计算巢专场中众安保险的⼤数据应⽤⾼级专家曾⼒带来的《众安资产在 NebulaGraph 的应⽤实践》分享,视频⻅链接。 ⼤家好,我是众安数据科学应⽤中⼼的曾⼒,今天很⾼兴在这⾥可以跟⼤家分享 NebulaGraph 在众安…...
使用mybatis-plus-generator配置一套适合你的CRUD
1、maven引入 mybatis-plus-generator 和模板引擎,你也可以使用freemarker之类的,看个人 <!-- mybatisplus代码生成器 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactI…...
vue门户网站,滚动到可视化区域展示动画效果方案
1.准备两个工具库: (1.1) animate.css:动画库 (动画效果展示:Animate.css | A cross-browser library of CSS animations.) (1.2)wowjs: 负责滚动到可视化区域ÿ…...
【0180】PG内核读取pg_hba.conf并创建HbaLine记录(1)
文章目录 1. pg_hba.conf文件是什么?2. postmaster何时读取pg_hba.conf?2.1 pg内核使用pg_hba.conf完成客户端认证的原理2.2 读取pg_hba.conf的几个模块3. pg内核读取pg_hba.conf过程3.1 VFD机制获取文件描述符3.2 根据fd读取文件内容相关阅读: 【0178】DBeaver、pgAdmin I…...
【五】线程安全VS线程不安全
1. Java内存模型的特征 Java内存模型是围绕着在并发过程中如何处理原子性、可见性和有序性这三个特征来建立。下面逐个看下哪些操作实现这三个特性: 1.1 原子性(Atomicity) 由Java内存模型来直接保证的原子性变量操作包括 read、load、assig…...
【大屏设计方案】
大屏设计方案一、非等比放大(填充满整个屏幕)目的屏幕比例大小和设计稿的差的不多目的屏幕比例大小和设计稿的差很多二、等比放大(比如16:9)解决方案之后就可以用rem了,有两种便利的方式:也可以用media 根据不同的屏幕…...
input 标签原生实现数字选择器
在使用开源的UI框架时,实现数字选择器很容易,直接拷贝就行,如iview、elementui...等。但有时项目不使用第三方样式库,这样的话UI控件只能自己实现。笔者就遇到过这样的情况,自己实现数字选择器,下面分享下实…...
大数据项目实战之数据仓库:用户行为采集平台——第3章 用户行为日志
第3章 用户行为日志 3.1 用户行为日志概述 用户行为日志的内容,主要包括用户的各项行为信息以及行为所处的环境信息。收集这些信息的主要目的是优化产品和为各项分析统计指标提供数据支撑。收集这些信息的手段通常为埋点。 目前主流的埋点方式,有代码…...
zookeeper 学习(一):简单认识zookeeper
zookeeper 学习(一):简单认识zookeeper zk官网 zk是什么? highly reliable distributed coordination. 来自官网,高可用的分布式协调服务,应用最多的场景就是用来做其他服务中间件的协调者,我最开始接触zk ,…...
IP 归属用 Ip2region 就够了
文章目录Ip2region 简介是什么特性支持的编程语言案例实操依赖获取IP输入流转化解析IP测试抖音、微博、小红书等各平台相继上线" 网络用户IP地址显示功能", 境外显示 国家, 境内显示到 省市,且该功能无法关闭,IP地址为强…...
最小生成树kruskal-修建公路1
题目描述 L 城一共有 N 个小区。 小明是城市建设的规划者,他计划在城市修 M 条路,每修建一条路都要支付工人们相应的工钱(需要支付的工钱 = 路的长度)。 然而小明所拿到的经费并不够支付修建 M 条路的工钱,于是迫于无奈,他只能将计划改变为修建若干条路,使得 N 个小区之…...
Linux常用命令汇总
一、文件和文件夹操作 1、进入某一文件夹: cd xxx/yyy/简便记忆:改变目录,change directory,cd 2、复制文件到另一个文件: cp xxx/xxx.yyy ddd/rrr.zzz简便记忆:复制,copy,cp 第…...
vue部署包可配置后台接口地址
有时候一个部署包可能要应用于不同服务器,这就需要频繁更换后台地址。 由此引申出了部署包可直接配置后台地址的需求,这样就不需要频繁打包了。 方法 1. public 新增 config.js 文件(会被恶意修改地址,不安全) publi…...
企业电子采购系统:采购过程更规范,更透明
满足采购业务全程数字化, 实现供应商管理、采购需求、全网寻源、全网比价、电子招 投标、合同订单执行的全过程管理。 电子招标采购,是指在网上寻源和采购产品和服务的过程。对于企业和企业主来说,这是个既省钱又能提高供应链效率的有效方法…...
php 修改服务器文件上传大小限制
输入docker cp mlfnginx:/etc/nginx/conf.d/pl.conf .输入vimpl.conf 修改nginx配置文件移动到图中所示位置client_max_body_size 按键盘”i”对图中的xxM修改成需要的大小,然后按”esc”,在按”:wq”,最后按回车键输入docker cp ./pl.con…...
PICO640红外探测器配置模块verilog
目录 一、PICO640 Introduction 二、实现代码 一、PICO640 Introduction PICO640 Gen2™ is a high resolution (640x480 pixels) infrared image sensor for military, surveillance or thermography applications. It makes use of the ULIS latest, state o…...
简单易懂 关于nextTick()的理解
前言 学习Vue的过程中,大家肯定都使用过nextTick(),关于nextTick()的使用时机,大家肯定都知道,那么它的工作原理是怎样的呢,本文就简单说一下它的nextTick()的工作原理。 nextTick的使用时机 首先记住:n…...
第一节:auto.js开发环境搭建
相关学习文档:http://doc.autoxjs.com 一、下载并安装 Visual Studio Code 下载地址:https://code.visualstudio.com/ 二、安装 auto.js 插件 启动 Visual Studio Code按住 ctrlshift x输入Auto.js-Autox.js-VSCodeExt点击安装即可 三、启动 auto.…...
看他人代码小总结
针对几个功能类似的函数: 1.需要经常调试则定义一个参数比如is_debug来选择是否在调试,定义一些参数专门用于调试用,不用每次都修改这些参数,只需要修改is_debug这个参数; 2.把其中的变量(常量)单独拎出来放到一个文件…...
第四季新星计划即将开启,博客之星取消拉票你怎么看?
catalogue🌟 写在前面🌟 线下创机遇🌟 新星计划🌟 做导师可以得到什么🌟 新星计划跟原力计划有何不同?🌟 博客之星新玩法你怎么看?🌟 写在前面 哈喽,大家好&…...
AI绘画关键词网站推荐 :轻松获取百万个提示词!完全免费
一、lexica.art 该网站拥有数百万Stable Diffusion案例的文字描述和图片,可以为大家提供足够的创作灵感。 使用上也很简单,只要在搜索框输入简单的关键词或上传图片,就能为你提供大量风格不同的照片。点击照片就能看到完整的AI关键词&#…...
数据分析之Pandas(2)
3.Pandas 文章目录3.Pandas3.3 Pandas进阶3.3.1 数据重塑和轴向旋转(1)层次化索引Series的层次化索引DataFrame的层次化索引层次化——电影数据示列(2)数据旋转3.3.2 数据分组、分组运算3.3.3 离散化处理3.3.4 合并数据集…...
推荐人工智能领域十大类专业好用的深度学习预训练模型
深度学习领域出现了许多优秀的预训练模型。以下是一些常用的专业深度学习预训练模型: 图像分类模型: VGG(Visual Geometry Group)系列:VGG16、VGG19等 ResNet(Residual Network)系列:ResNet50、ResNet101等 Inception(Google Inception)系列:InceptionV3、Incepti…...
App 抓包提示网络异常怎么破?
背景 当你测试App的时候,想要通过Fiddler/Charles等工具抓包看下https请求的数据情况,发现大部分的App都提示网络异常/无数据等等信息。以“贝壳找房”为例: Fiddler中看到的请求是这样的: 你可能开始找证书的问题:是…...
Leetcode217——是否存在重复数字
217. 存在重复元素难度简单969收藏分享切换为英文接收动态反馈给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。示例 1:输入:nums [1,2,3,1]输出&…...
【面试题系列】K8S面试题(二)
目录 问题: 1.什么是有状态服务?如何与无状态服务区分开来? 2.有哪些常见的有状态服务?它们的特点是什么? 3. 如何在 Kubernetes 中管理有状态服务? 4.如何进行有状态服务的伸缩? 5.如何实…...
【多线程】synchronized 原理
✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 目 录❄️一. 基本特点☁️二. 加锁工作过程❄️一. 基本特点 开始时是乐观锁, 如果锁冲突频繁, 就转换为悲观锁.(自适应) 开始是轻量级锁实现, 如果锁被持有的时间较长, 就转换成…...
Docker打包exe运行环境
Docker打包exe运行环境 本文运行环境 Window安装Docker环境 修改配置 点击Switch to Window containers OS/Arch 变为 windows/amd64 拉取window镜像 访问Nano Server找到需要的Window版本拉取镜像 运行镜像测试 进入到容器内部 其他内容就自由发挥啦~~ 参考内容…...
防抖函数(最全 最干净 最好理解)
1.应用场景 1.input输入框 输入远程查询 2.邮箱,手机号验证,用户名验证 3.resize等高评率场景 2.解决问题 高频场景带来的重复渲染 等问题 多次操作 只在操作结束后再执行操作函数 3.具体实现 3.1this问题(因为settimeout是window的对…...
【网站项目】SpringBoot379儿童疫苗接种管理系统
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...
全栈式数据统计:Flask+Pandas按年,季度,月统计显示
话不多说,有图有源码 1.实现效果: 按季度统计 按月度统计: 2.实现源码: 2.1)test_pandashtml.py from flask import Flask, render_template import pandas as pdapp Flask(__name__)# 自定义千分位格式化函数 def format_thousands(x):return f{x:,.2f}app.route(/) def …...
Spring 各版本发布时间与区别
版本版本特性Spring Framework 1.01. 所有代码都在一个项目中 2. 支持核心功能IoC、AOP 3. 内置支持Hibernate、iBatis等第三方框架 4. 对第三方技术简单封装。如:JDBC、Mail、事务等 5. 只支持XML配置方式。6.主要通过 XML 配置文件来管理对象和依赖关系࿰…...
大模型prompt实例:知识库信息质量校验模块
大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模…...
【Python】os.scandir()函数示例以及和os.listdir()函数的对比优势
在 Python 中,os.scandir() 函数是一个用来列出指定目录下的条目(包括文件和子目录)的高效方式。它返回一个迭代器,不仅可以迭代目录中的所有条目,还能访问每个条目的文件属性,如文件类型、文件大小等&…...
OV SSL证书年度成本概览:确保企业级安全的经济之选
随着网络安全意识的日益增强,SSL证书成为了网站安全的标配,尤其是对于企业而言,选择一款既能确保数据传输安全又符合预算的证书至关重要。在众多SSL证书中,组织验证型(Organization Validation,简称OV&…...
如何对接 CommBank 的 EMV 3D Secure (3DS) 流程
如何对接 CommBank 的 EMV 3D Secure (3DS) 流程 在现代电子商务中,确保支付过程的安全性和合规性至关重要。本文将详细介绍如何对接 CommBank 的 EMV 3D Secure (3DS) 流程,以提升交易的安全性并确保符合 PCI 标准。 步骤 1:创建支付表单 …...
第二证券股市技巧|港股交易规则有哪些?
港股商场作为全球首要的股票商场之一,招引了很多出资者的目光。关于港股的生意规则有哪些,第二证券下面就为大家详细介绍一下。 港股的生意规则: 1、港股生意时刻:港股商场的生意时刻分为上午和下午两个时段,上午的生…...
whisper模型微调
Whisper模型详解及其微调过程 一、引言 在人工智能领域中,自动语音识别(ASR)技术一直是一个热门且挑战性的研究方向。近年来,随着深度学习技术的快速发展,ASR技术取得了显著的进步。其中,OpenAI的Whisper…...
什么是hw行动
“HW行动”,即"护网行动",是中国公安部组织的一项国家级网络安全演习,始于2016年。这项行动的目的是检测国家关键基础设施与重要信息系统的安全问题和隐患,以及检验这些系统的安全防护与应急处置能力。HW行动涉及的行业…...
好用的Tipard 蓝光转换器 (Tipard Blu-ray Converter) mac&win
Tipard Blu-ray Converter 是一款令人惊叹的蓝光解决方案软件,可将蓝光光盘/文件夹转换为 1:1 质量的数字格式,速度提高 30 倍,用于 4K UHD 和 1080p 高清视频。它可以将蓝光光盘和文件夹中的蓝光电影转换为MKV、MP4、WMV、MOV、AVI、FLV、VO…...
c语言中数字字符串和数字互转
#include <getopt.h> #include <stdio.h> #include <stdlib.h>#define MAX_PATH 256 char filename[MAX_PATH 5]; int main(int argc, char** argv) {//数字字符串转数字const char* kk "689";int zhi atoi(kk) 8;//数字字符串转doubledoub…...