关于http服务器的学习笔记 基于CC3200
来源:互联网 发布:制作动画片软件是什么 编辑:程序博客网 时间:2024/06/08 08:08
本文记录通过网页控制CC3200device设备的过程。
首先贴出过程框架,如图1 sw,图2 hw
图1
图2
是图一中可以看出 Customer Application 运行在最上层。本文中指的是网页。图2为硬件框架图。
CC3200HTTP服务器支持以下功能:
1、http支持版本:1.0
2、http请求:Get和Post。
3、支持文件类型:HTML,.htm,.css,.xml,.png和.gif
4、HTML表单通过post方法提交数据
5、默认端口:80
主要用到get和post处理
以用网页控制LED亮灭为例子,说明过程。
先看网页代码 $(function() {
var sprinklerSwitch = $('#sprinklerSwitch'),
switchBtn = $('#switchImage'),
sprinkler = $('#sprinkler'),
spriklerRunning = false,
imageOn = false,
sprinklerToggle = setInterval(function() {
if (spriklerRunning) {
if (imageOn) {
sprinkler.attr('src',"images/demo-sprinkler-off.jpg");
imageOn = false;
} else {
sprinkler.attr('src',"images/demo-sprinkler-on.jpg");
imageOn = true;
}
}
}, 300);
sprinklerSwitch.click(function(){
if (switchBtn.hasClass('on')) {
switchBtn.removeClass('on');
com.TI.toggleLED('_OFF');
spriklerRunning = false;
sprinkler.attr('src',"images/demo-sprinkler-off.jpg");
imageOn = false;
} else {
switchBtn.addClass('on');
com.TI.toggleLED('_Blink');
spriklerRunning = true;
imageOn = true;
}
});
sprinklerSwitch.click(function()函数获取网页开关状态,之后调用com.TI.toggleLED函数
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
这里重点看$.post(“No_content”, {“__SL_P_ULD”: params}); 即通过post传递数据给回调函数。
函数com.TI.toggleLED()首先定义变量params:
1,OFF时params=LED1_OFF;
2,ON时 params=LED1_Blink;
然后处理http请求:以post方法发送“”_SL_P_ULD“”和params。
http服务器接受到http请求后,对用户post请求标记“”_SL_P_ULD“”调用回调函数post事件处理程序对params参数传递的内容进行处理:
1,对LED1_OFF调用GPIO_IF_Ledoff()熄灭红led,同时将led状态g_ucledstatus设为LED_BLINK,OBB任务函数OBBTask()通过判断g_ucLEDStatus再次调用GPIO_IF_LedOff()熄灭红LED.
2,对LED1_BLINK的处理过程不再赘与。
以上都是网页上的程序,通过chrome开发者工具可以观察并调试。
现在去找回调函数,运行在device上
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
可以看到device对来自web命令的相应回复。
这里需要注意,在device上运行有http事件处理函数,且处在待命状态。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
还有一个void SimpleLinkNetAppEventHandler()函数也时刻待命。
这里只用到了post。如果是从device到web,要用get。比如,在web上显示传感器的温度。用get函数获取。
理解
**post:推送
get:获取**
这里只是web和device之间数据交换 只能在连接device之后才能使用web。所以范围很小。我们需要同在有互联网的任何地方控制和监察device,所以就需要云
有云之后的一般过程为:
- 在云上注册设备
- 运行设备
- 在云上开发solution
可以在(https://exosite.com/)上注册,然后用python运行虚拟设备,体验整个开发过程。
关于HTML+css+js,在网上看到一则比较好理解的解释:
形象的说
你建一座木屋,html就是他的门,墙,柱子,屋顶,
你要是确定屋子多高,多宽,门,窗在哪,就是css确定,
你在屋子里,把椅子从南拿到北,这个过程就是js,
这三个才构成网页的页面。
《完》
- 关于http服务器的学习笔记 基于CC3200
- 关于http服务器的学习笔记 基于CC3200
- CC3200学习笔记
- CC3200学习笔记
- CC3200使用官方的Http cli连接服务器
- 基于CC3200的Flappy Bird
- zephyr学习笔记---CC3200---GPIO
- zephyr学习笔记---CC3200---Button
- zephyr学习笔记---CC3200---GPIO
- zephyr学习笔记---CC3200---Button
- CC3200 HTTP Cli通过POST的方式把json数据提交给服务器出现的问题
- 基于CC3200的MQTT客户端网关设计
- zephyr学习笔记---CC3200---跑马灯
- CC3200 学习
- 一起学习CC3200之局域网内搭建外网能访问的服务器--花生壳
- 基于TCP的http服务器
- cc3200学习系列--开发环境的搭建
- 第三章 学习CC3200的ADC
- 【编程题】 黑化的牛牛
- 安卓自定义View进阶-Canvas之画布操作
- 大数阶乘
- linux awk命令详解
- RXJS中的concat
- 关于http服务器的学习笔记 基于CC3200
- ArcEngine遍历Map中的图层(包括图层组)
- Qt中从数据库读取内容,从xml读取内容,设置QSS
- [第5章]实作第一个嵌入式系统
- Linux 常见问题合集
- Java学习总论(新手)
- void *memset(void *s,int c,size_t n)
- [BZOJ4762]最小集合/[JZOJ5151]幻梦终醒
- 面向对象编程(一)