⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lss

📁 用来pdu编解码
💻 LSS
📖 第 1 页 / 共 5 页
字号:
//**************************************************************************
void tmCreateMsg( TFrame *Frame)
{

	unsigned char *pMsg = Frame->msg; 
	uint16_t ck;
	
	//添加帧头
	myCopy( F_HEAD_STR, pMsg, 0, F_HEAD_LENGTH);	
	pMsg += F_HEAD_LENGTH;
	Frame->msglen = F_HEAD_LENGTH;
	
	//添加ID
	myCopy( BasicPara.TM_Time, pMsg, 0, TM_TIMELENGTH);	
	pMsg += TM_TIMELENGTH;
	Frame->msglen += TM_TIMELENGTH;
	myCopy( BasicPara.TM_type, pMsg, 0, TM_TYPELENGTH);	
	pMsg += TM_TYPELENGTH;
	Frame->msglen += TM_TYPELENGTH;
	myCopy( BasicPara.TM_id, pMsg, 0, TM_IDLENGTH);	
	pMsg += TM_IDLENGTH;	
	Frame->msglen += TM_IDLENGTH;
	//添加分段
	*pMsg++ = '0';
	Frame->msglen++;
	//添加帧长
	*pMsg++ = '0';	
	Frame->msglen++;
	//添加帧主类型
	*pMsg++ = Frame->type;
	Frame->msglen++;
	//添加帧子类型
	*pMsg++ = Frame->code;	
	Frame->msglen++;

	//添加数据段	
	switch (Frame->type)
	{
		case F_TYPE_RESPOND:
					switch(Frame->code)
					{
						//注册消息
						case F_CODE_LOGIN:							
							Frame->msglen +=tmLoginMsg(pMsg);
							break;	
						//车辆状态消息
						case F_CODE_CARSTATE:							
							Frame->msglen +=tmCarStateMsg(pMsg);
							break;	
						//工作参数查询响应消息					
						case F_CODE_GETWORKPARA:							
							Frame->msglen +=tmGetWorkParaMsg(pMsg);
							break;			
						//工作参数设定响应消息			
						case F_CODE_SETWORKPARA:							
							Frame->msglen +=tmGetWorkParaMsg(pMsg);
							break;	
						//工作状态查询响应消息				
						case F_CODE_GETWORKSTATE:							
							Frame->msglen +=tmGetWorkStateMsg(pMsg);
							break;
						//工作状态设定响应消息							
						case F_CODE_SETWORKSTATE:							
							Frame->msglen +=tmGetWorkStateMsg(pMsg);
							break;	
					}			
					break;				
		case F_TYPE_NOTE:break;		
	}	
	
	//计算校验和
	ck = cksum(Frame->msg, Frame->msglen);

	Frame->msg[Frame->msglen++] = ck / 256;
	Frame->msg[Frame->msglen++] = ck % 256;
	
	Frame->msg[F_LENGTH_BEGIN] = Frame->msglen;
}

//**************************************************************************
//从source的beginindex开始拷贝degits字节到dest
//输入:source=源字符串;beginindex=起始位置(从0开始算)
//      dest=目标字符串; degits=请求字节数
//返回:实际拷贝的字节数
//dest以'\0'结束
//**************************************************************************
int myCopy(char *source , char *dest , int beginindex ,int degits)
{
	int n ;
	int len ;
	len = strlen(source) ;
	if (degits>=(len-beginindex))
	{
		for(n=beginindex;n<len;n++)
			*(dest++)=source[n];
		*dest='\0';
			
		return (len-beginindex) ;	
		
	}else
	{
		for(n=beginindex;n<(degits+beginindex);n++)
			*(dest++)=source[n];
		*dest='\0';
			
		return degits ;	
		
	}		
}
//***************************************************************************
//寻找字符c在PStr中第Num次出现的位置
//返回:	=-1 不存在
//		>-1 c在PStr中第Num次出现的位置
//**************************************************************************
int FindeCharInStr ( char* PStr , int nSrcLength ,int cNum , char c ) 
{
     1be:	fc 01       	movw	r30, r24
     1c0:	92 2f       	mov	r25, r18
		int i ,FindeCharInStr = -1 ;
     1c2:	2f ef       	ldi	r18, 0xFF	; 255
     1c4:	3f ef       	ldi	r19, 0xFF	; 255
		for(i = 0 ; i<nSrcLength;i++ , PStr++)
     1c6:	a0 e0       	ldi	r26, 0x00	; 0
     1c8:	b0 e0       	ldi	r27, 0x00	; 0
     1ca:	a6 17       	cp	r26, r22
     1cc:	b7 07       	cpc	r27, r23
     1ce:	6c f4       	brge	.+26     	; 0x1ea <FindeCharInStr+0x2c>
		{
			if (*PStr==c)
     1d0:	80 81       	ld	r24, Z
     1d2:	89 17       	cp	r24, r25
     1d4:	39 f4       	brne	.+14     	; 0x1e4 <FindeCharInStr+0x26>
			{
				cNum-- ;
     1d6:	41 50       	subi	r20, 0x01	; 1
     1d8:	50 40       	sbci	r21, 0x00	; 0
				if (cNum < 1 )
     1da:	14 16       	cp	r1, r20
     1dc:	15 06       	cpc	r1, r21
     1de:	14 f0       	brlt	.+4      	; 0x1e4 <FindeCharInStr+0x26>
				{
					FindeCharInStr = i ;
     1e0:	9d 01       	movw	r18, r26
					break ;		
     1e2:	03 c0       	rjmp	.+6      	; 0x1ea <FindeCharInStr+0x2c>
     1e4:	11 96       	adiw	r26, 0x01	; 1
     1e6:	31 96       	adiw	r30, 0x01	; 1
     1e8:	f0 cf       	rjmp	.-32     	; 0x1ca <FindeCharInStr+0xc>
				}
			}	
		}
		return FindeCharInStr ;
}
     1ea:	c9 01       	movw	r24, r18
     1ec:	08 95       	ret

000001ee <tmLoginMsg>:
     1ee:	ef 92       	push	r14
     1f0:	ff 92       	push	r15
     1f2:	0f 93       	push	r16
     1f4:	1f 93       	push	r17
     1f6:	7c 01       	movw	r14, r24
     1f8:	06 e9       	ldi	r16, 0x96	; 150
     1fa:	17 e0       	ldi	r17, 0x07	; 7
     1fc:	1f 93       	push	r17
     1fe:	0f 93       	push	r16
     200:	9f 93       	push	r25
     202:	8f 93       	push	r24
     204:	0e 94 3b 1c 	call	0x3876 <sprintf>
     208:	26 e0       	ldi	r18, 0x06	; 6
     20a:	30 e0       	ldi	r19, 0x00	; 0
     20c:	e2 0e       	add	r14, r18
     20e:	f3 1e       	adc	r15, r19
     210:	09 5f       	subi	r16, 0xF9	; 249
     212:	1f 4f       	sbci	r17, 0xFF	; 255
     214:	1f 93       	push	r17
     216:	0f 93       	push	r16
     218:	ff 92       	push	r15
     21a:	ef 92       	push	r14
     21c:	0e 94 3b 1c 	call	0x3876 <sprintf>
     220:	84 e0       	ldi	r24, 0x04	; 4
     222:	90 e0       	ldi	r25, 0x00	; 0
     224:	e8 0e       	add	r14, r24
     226:	f9 1e       	adc	r15, r25
     228:	0b 5f       	subi	r16, 0xFB	; 251
     22a:	1f 4f       	sbci	r17, 0xFF	; 255
     22c:	1f 93       	push	r17
     22e:	0f 93       	push	r16
     230:	ff 92       	push	r15
     232:	ef 92       	push	r14
     234:	0e 94 3b 1c 	call	0x3876 <sprintf>
     238:	80 ef       	ldi	r24, 0xF0	; 240
     23a:	9f ef       	ldi	r25, 0xFF	; 255
     23c:	90 95       	com	r25
     23e:	81 95       	neg	r24
     240:	9f 4f       	sbci	r25, 0xFF	; 255
     242:	2d b7       	in	r18, 0x3d	; 61
     244:	3e b7       	in	r19, 0x3e	; 62
     246:	24 5f       	subi	r18, 0xF4	; 244
     248:	3f 4f       	sbci	r19, 0xFF	; 255
     24a:	0f b6       	in	r0, 0x3f	; 63
     24c:	f8 94       	cli
     24e:	3e bf       	out	0x3e, r19	; 62
     250:	0f be       	out	0x3f, r0	; 63
     252:	2d bf       	out	0x3d, r18	; 61
     254:	1f 91       	pop	r17
     256:	0f 91       	pop	r16
     258:	ff 90       	pop	r15
     25a:	ef 90       	pop	r14
     25c:	08 95       	ret

0000025e <myCopy>:
     25e:	cf 93       	push	r28
     260:	df 93       	push	r29
     262:	dc 01       	movw	r26, r24
     264:	eb 01       	movw	r28, r22
     266:	fc 01       	movw	r30, r24
     268:	01 90       	ld	r0, Z+
     26a:	00 20       	and	r0, r0
     26c:	e9 f7       	brne	.-6      	; 0x268 <myCopy+0xa>
     26e:	31 97       	sbiw	r30, 0x01	; 1
     270:	e8 1b       	sub	r30, r24
     272:	f9 0b       	sbc	r31, r25
     274:	bf 01       	movw	r22, r30
     276:	64 1b       	sub	r22, r20
     278:	75 0b       	sbc	r23, r21
     27a:	26 17       	cp	r18, r22
     27c:	37 07       	cpc	r19, r23
     27e:	7c f0       	brlt	.+30     	; 0x29e <myCopy+0x40>
     280:	4e 17       	cp	r20, r30
     282:	5f 07       	cpc	r21, r31
     284:	4c f4       	brge	.+18     	; 0x298 <myCopy+0x3a>
     286:	a4 0f       	add	r26, r20
     288:	b5 1f       	adc	r27, r21
     28a:	8d 91       	ld	r24, X+
     28c:	89 93       	st	Y+, r24
     28e:	4f 5f       	subi	r20, 0xFF	; 255
     290:	5f 4f       	sbci	r21, 0xFF	; 255
     292:	4e 17       	cp	r20, r30
     294:	5f 07       	cpc	r21, r31
     296:	cc f3       	brlt	.-14     	; 0x28a <myCopy+0x2c>
     298:	18 82       	st	Y, r1
     29a:	9b 01       	movw	r18, r22
     29c:	11 c0       	rjmp	.+34     	; 0x2c0 <myCopy+0x62>
     29e:	b9 01       	movw	r22, r18
     2a0:	64 0f       	add	r22, r20
     2a2:	75 1f       	adc	r23, r21
     2a4:	46 17       	cp	r20, r22
     2a6:	57 07       	cpc	r21, r23
     2a8:	54 f4       	brge	.+20     	; 0x2be <myCopy+0x60>
     2aa:	fa 01       	movw	r30, r20
     2ac:	e8 0f       	add	r30, r24
     2ae:	f9 1f       	adc	r31, r25
     2b0:	81 91       	ld	r24, Z+
     2b2:	89 93       	st	Y+, r24
     2b4:	4f 5f       	subi	r20, 0xFF	; 255
     2b6:	5f 4f       	sbci	r21, 0xFF	; 255
     2b8:	46 17       	cp	r20, r22
     2ba:	57 07       	cpc	r21, r23
     2bc:	cc f3       	brlt	.-14     	; 0x2b0 <myCopy+0x52>
     2be:	18 82       	st	Y, r1
     2c0:	c9 01       	movw	r24, r18
     2c2:	df 91       	pop	r29
     2c4:	cf 91       	pop	r28
     2c6:	08 95       	ret

000002c8 <centSetWorkPara>:
     2c8:	cf 92       	push	r12
     2ca:	df 92       	push	r13
     2cc:	ef 92       	push	r14
     2ce:	ff 92       	push	r15
     2d0:	0f 93       	push	r16
     2d2:	1f 93       	push	r17
     2d4:	cf 93       	push	r28
     2d6:	df 93       	push	r29
     2d8:	ec 01       	movw	r28, r24
     2da:	6b 01       	movw	r12, r22
     2dc:	ee 24       	eor	r14, r14
     2de:	ff 24       	eor	r15, r15
     2e0:	ec 14       	cp	r14, r12
     2e2:	fd 04       	cpc	r15, r13
     2e4:	0c f0       	brlt	.+2      	; 0x2e8 <centSetWorkPara+0x20>
     2e6:	37 c1       	rjmp	.+622    	; 0x556 <centSetWorkPara+0x28e>
     2e8:	88 81       	ld	r24, Y
     2ea:	99 27       	eor	r25, r25
     2ec:	84 30       	cpi	r24, 0x04	; 4
     2ee:	91 05       	cpc	r25, r1
     2f0:	09 f4       	brne	.+2      	; 0x2f4 <centSetWorkPara+0x2c>
     2f2:	6e c0       	rjmp	.+220    	; 0x3d0 <centSetWorkPara+0x108>
     2f4:	85 30       	cpi	r24, 0x05	; 5
     2f6:	91 05       	cpc	r25, r1
     2f8:	84 f4       	brge	.+32     	; 0x31a <centSetWorkPara+0x52>
     2fa:	81 30       	cpi	r24, 0x01	; 1
     2fc:	91 05       	cpc	r25, r1
     2fe:	59 f1       	breq	.+86     	; 0x356 <centSetWorkPara+0x8e>
     300:	82 30       	cpi	r24, 0x02	; 2
     302:	91 05       	cpc	r25, r1
     304:	1c f4       	brge	.+6      	; 0x30c <centSetWorkPara+0x44>
     306:	89 2b       	or	r24, r25
     308:	f9 f0       	breq	.+62     	; 0x348 <centSetWorkPara+0x80>
     30a:	28 c1       	rjmp	.+592    	; 0x55c <centSetWorkPara+0x294>
     30c:	82 30       	cpi	r24, 0x02	; 2
     30e:	91 05       	cpc	r25, r1
     310:	81 f1       	breq	.+96     	; 0x372 <centSetWorkPara+0xaa>
     312:	03 97       	sbiw	r24, 0x03	; 3
     314:	09 f4       	brne	.+2      	; 0x318 <centSetWorkPara+0x50>
     316:	47 c0       	rjmp	.+142    	; 0x3a6 <centSetWorkPara+0xde>
     318:	21 c1       	rjmp	.+578    	; 0x55c <centSetWorkPara+0x294>
     31a:	87 30       	cpi	r24, 0x07	; 7
     31c:	91 05       	cpc	r25, r1
     31e:	09 f4       	brne	.+2      	; 0x322 <centSetWorkPara+0x5a>
     320:	81 c0       	rjmp	.+258    	; 0x424 <centSetWorkPara+0x15c>
     322:	88 30       	cpi	r24, 0x08	; 8
     324:	91 05       	cpc	r25, r1
     326:	44 f4       	brge	.+16     	; 0x338 <centSetWorkPara+0x70>
     328:	85 30       	cpi	r24, 0x05	; 5
     32a:	91 05       	cpc	r25, r1
     32c:	09 f4       	brne	.+2      	; 0x330 <centSetWorkPara+0x68>
     32e:	5d c0       	rjmp	.+186    	; 0x3ea <centSetWorkPara+0x122>
     330:	06 97       	sbiw	r24, 0x06	; 6
     332:	09 f4       	brne	.+2      	; 0x336 <centSetWorkPara+0x6e>
     334:	6f c0       	rjmp	.+222    	; 0x414 <centSetWorkPara+0x14c>
     336:	12 c1       	rjmp	.+548    	; 0x55c <centSetWorkPara+0x294>
     338:	88 30       	cpi	r24, 0x08	; 8
     33a:	91 05       	cpc	r25, r1
     33c:	09 f4       	brne	.+2      	; 0x340 <centSetWorkPara+0x78>
     33e:	7b c0       	rjmp	.+246    	; 0x436 <centSetWorkPara+0x16e>
     340:	09 97       	sbiw	r24, 0x09	; 9
     342:	09 f4       	brne	.+2      	; 0x346 <centSetWorkPara+0x7e>
     344:	80 c0       	rjmp	.+256    	; 0x446 <centSetWorkPara+0x17e>
     346:	0a c1       	rjmp	.+532    	; 0x55c <centSetWorkPara+0x294>
     348:	21 96       	adiw	r28, 0x01	; 1
     34a:	89 91       	ld	r24, Y+
     34c:	80 93 a9 07 	sts	0x07A9, r24
     350:	82 e0       	ldi	r24, 0x02	; 2
     352:	90 e0       	ldi	r25, 0x00	; 0
     354:	fd c0       	rjmp	.+506    	; 0x550 <centSetWorkPara+0x288>
     356:	21 96       	adiw	r28, 0x01	; 1
     358:	2d e0       	ldi	r18, 0x0D	; 13
     35a:	30 e0       	ldi	r19, 0x00	; 0
     35c:	40 e0       	ldi	r20, 0x00	; 0
     35e:	50 e0       	ldi	r21, 0x00	; 0
     360:	6a ea       	ldi	r22, 0xAA	; 170
     362:	77 e0       	ldi	r23, 0x07	; 7
     364:	ce 01       	movw	r24, r28
     366:	0e 94 2f 01 	call	0x25e <myCopy>
     36a:	2d 96       	adiw	r28, 0x0d	; 13
     36c:	8e e0       	ldi	r24, 0x0E	; 14
     36e:	90 e0       	ldi	r25, 0x00	; 0
     370:	ef c0       	rjmp	.+478    	; 0x550 <centSetWorkPara+0x288>
     372:	21 96       	adiw	r28, 0x01	; 1
     374:	24 e0       	ldi	r18, 0x04	; 4
     376:	30 e0       	ldi	r19, 0x00	; 0
     378:	40 e0       	ldi	r20, 0x00	; 0
     37a:	50 e0       	ldi	r21, 0x00	; 0
     37c:	68 eb       	ldi	r22, 0xB8	; 184
     37e:	77 e0       	ldi	r23, 0x07	; 7
     380:	ce 01       	movw	r24, r28
     382:	0e 94 2f 01 	call	0x25e <myCopy>
     386:	24 96       	adiw	r28, 0x04	; 4
     388:	88 81       	ld	r24, Y
     38a:	99 27       	eor	r25, r25
     38c:	98 2f       	mov	r25, r24
     38e:	88 27       	eor	r24, r24
     390:	29 81       	ldd	r18, Y+1	; 0x01
     392:	82 0f       	add	r24, r18
     394:	91 1d       	adc	r25, r1
     396:	90 93 c1 07 	sts	0x07C1, r25
     39a:	80 93 c0 07 	sts	0x07C0, r24
     39e:	22 96       	adiw	r28, 0x02	; 2
     3a0:	87 e0       	ldi	r24, 0x07	; 7
     3a2:	90 e0       	ldi	r25, 0x00	; 0
     3a4:	d5 c0       	rjmp	.+426    	; 0x550 <centSetWorkPara+0x288>
     3a6:	21 96       	adiw	r28, 0x01	; 1
     3a8:	88 81       	ld	r24, Y
     3aa:	99 27       	eor	r25, r25
     3ac:	98 2f       	mov	r25, r24
     3ae:	88 27       	eor	r24, r24
     3b0:	29 81       	ldd	r18, Y+1	; 0x01
     3b2:	82 0f       	add	r24, r18
     3b4:	91 1d       	adc	r25, r1
     3b6:	90 93 15 07 	sts	0x0715, r25
     3ba:	80 93 14 07 	sts	0x0714, r24
     3be:	90 93 19 07 	sts	0x0719, r25
     3c2:	80 93 18 07 	sts	0x0718, r24
     3c6:	22 96       	adiw	r28, 0x02	; 2
     3c8:	83 e0       	ldi	r24, 0x03	; 3
     3ca:	90 e0       	ldi	r25, 0x00	; 0
     3cc:	e8 0e       	add	r14, r24
     3ce:	f9 1e       	adc	r15, r25
     3d0:	21 96       	adiw	r28, 0x01	; 1
     3d2:	88 81       	ld	r24, Y
     3d4:	99 27       	eor	r25, r25
     3d6:	98 2f       	mov	r25, r24
     3d8:	88 27       	eor	r24, r24
     3da:	29 81       	ldd	r18, Y+1	; 0x01
     3dc:	82 0f       	add	r24, r18
     3de:	91 1d       	adc	r25, r1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -