自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 select

select这种思想很想CPU对IO的处理的发展历程, select的地位就像中断管理器, IO设备有中断请求时才通知CPU, 对应的, 只有当客户端有连接请求时才会通知server进行处理. 也就是说只要server收到通知, 就一定有数据待处理或连接待响应, 不会再被阻塞而浪费资源了;select函数#include <sys/time.h>#include <sys/types.h>#include <unistd.h>int select(int

2021-03-26 08:42:17 102

原创 socket封装

wrap.c#include "wrap.h"void perr_exit(const char *s) { perror(s); exit(-1);}int Accept(int fd, struct sockaddr *sa, socklen_t *salenptr) { int n;again: if ((n = accept(fd, sa, salenptr)) < 0) { if ((errno == ECONNABORTED) || (errno.

2021-03-26 08:42:05 143

原创 多进程并发服务器

错误处理函数的封装wrap.h#ifndef __WRAP_H_#define __WRAP_H_#include <errno.h>#include <stdio.h>#include <stdlib.h>#include <sys/socket.h>#include <unistd.h>void perr_exit(const char *s);int Accept(int fd, struct sockaddr *sa

2021-03-25 12:57:58 134

原创 socket编程

socket编程网络字节序小端法: 高位存在高地址, 低位存在低地址(计算机本地采用);大端法: 高位存在低地址, 低位存在高地址(网络通信采用);调用库函数做网络字节序和主机字节序的转换;#include<arpa/inet.h>uint32_t htonl(uint32_t hostlong); //主要针对IPuint16_t htons(uint16_t hostshort); //主要针对portuint32_t ntohl(uint32_t netlon

2021-03-25 10:09:19 186

原创 classes及messages

classes及messages全局配置class GlobalData成员变量值CyberConfig config_CHECK(InitConfig())std::string host_ip_InitHostInfo():string host_name_InitHostInfo()int process_id_getpid()std::string process_group_“cyber_default_” + std::to_strin

2021-03-02 16:58:02 306

原创 调度

调度class Reader : public ReaderBase template <typename MessageT> bool Reader<MessageT>::Init() {​````略 std::function<void(const std::shared_ptr<MessageT>&)> func; if (reader_func_ != nullptr) { func

2021-03-02 16:53:15 293

原创 接收消息

接收消息class Transport template <typename M> auto Transport::CreateReceiver( const RoleAttributes& attr, const typename Receiver<M>::MessageListener& msg_listener, const OptionalMode& mode) -> typena

2021-03-02 16:50:45 278

原创 创建一个listener

创建一个listenervoid MessageCallback( const std::shared_ptr<apollo::cyber::examples::proto::Chatter>& msg) { AINFO << "Received message seq-> " << msg->seq(); AINFO << "msgcontent->" << msg->content();}

2021-03-02 16:48:38 413

原创 发送消息

发送消息talker->Write(msg);auto msg = std::make_shared();msg->set_timestamp(Time::Now().ToNanosecond());msg->set_lidar_timestamp(Time::Now().ToNanosecond());msg->set_seq(seq++);msg->set_content(“Hello, apollo!”);talker->Write(msg);

2021-03-02 16:34:38 251

原创 创建一个Writer

创建一个Writerauto talker = talker_node->CreateWriter(“channel/chatter”);class Node template <typename MessageT> auto Node::CreateWriter(const std::string& channel_name) -> std::shared_ptr<Writer<MessageT>> { return

2021-03-02 16:32:35 512 3

原创 创建一个节点Node

范例int main(int argc, char *argv[]) { // init cyber framework apollo::cyber::Init(argv[0]); // create talker node auto talker_node = apollo::cyber::CreateNode("talker"); // create talker auto talker = talker_node->CreateWriter<Chatter>

2021-03-02 16:28:48 652

原创 cyber RT概括

用户通过调用CreateNode函数创造一个节点,该函数是在节点类Node的友元函数。Nodel类的成员变量·node_channel_impl(NodeChannellmpl)负责创建Reader和Writer。Writer类中包含transmitter_ , change_conn_, channel_manager_,及JoinTheTopology函数。Writer类在初始化过程中会调用函数transport::Transport::Instance()->CreateTransmit.

2021-03-02 16:24:51 1056 1

原创 gtest使用

gtest使用#include "gtest/gtest.h"int add(int a,int b){ return a+b;}int sub(int a,int b){ return a-b;}TEST(testCase,add){ EXPECT_EQ(add(2,3),3);}TEST(testCase,sub){ EXPECT_EQ(sub(1,3),-2);}int main(int argc,char **argv){ testing

2021-03-02 16:04:37 137

原创 SoftmaxLayer

#include "caffe/layers/softmax_layer.hpp"#include <algorithm>#include <vector>#include "caffe/util/math_functions.hpp"namespace caffe {template <typename Dtype>void SoftmaxLayer<Dtype>::Reshape(const vector<Blob<Dt..

2021-03-02 15:54:26 230

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除