• 1.52 MB
  • 2022-04-22 11:23:01 发布

无线传感器网络(上位机)-毕业论文.doc

  • 53页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁虿袇莂蒆蚅袆肂荿薁袅膄薄蒇袄芆莇螆袃羆薃蚂袃肈莆薈羂膁薁蒄羁芃莄螃羀羃膇螈罿膅蒂蚄羈芇芅薀羇羇蒀蒆羇聿芃螅肆膁葿蚁肅芄节薇肄羃蒇蒃肃膆芀袂肂芈薅螈肁莀莈蚄肁肀薄薀蚇膂莆蒆蚆芅薂螄螅羄莅蚀螅肇薀薆螄艿莃薂螃莁芆袁螂肁蒁螇螁膃芄蚃螀芅蒀蕿蝿羅节蒅衿肇蒈螃袈膀芁蒃薁肆芀荿蚀螅肃芅虿袈芈膁蚈羀肁薀蚇螀芆蒆蚆袂腿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂螃衿膆莈螂羁罿芄螁蚁膄膀螀袃羇蕿蝿羅节蒅蝿肈肅莁螈螇芁芇螇衿肄薅袆羂艿蒁袅肄肂莇袄螄芇芃蒁羆肀艿蒀肈莆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅薆螅膅蒁薅袇羈莆薄聿膃莂薃蝿肆芈薂袁节薇薁羄肄蒃薁肆芀荿蚀螅肃芅虿袈芈膁蚈羀肁薀蚇螀芆蒆蚆袂腿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂螃衿膆莈螂羁罿芄螁蚁膄膀螀袃羇蕿蝿羅节蒅蝿肈肅莁螈螇芁芇螇衿肄薅袆羂艿蒁袅肄肂莇袄螄芇芃蒁羆肀艿蒀肈莆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅薆螅膅蒁薅袇羈莆薄聿膃莂薃蝿肆芈薂袁节薇薁羄肄蒃薁肆芀荿蚀螅肃芅虿袈芈膁蚈羀肁薀蚇螀芆蒆蚆袂腿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂螃衿膆莈螂羁罿芄螁蚁膄膀螀袃羇蕿蝿羅节蒅蝿肈肅莁螈螇芁芇螇衿肄薅袆羂艿蒁袅肄肂莇袄螄芇芃蒁羆肀艿蒀肈莆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅薆螅膅蒁薅袇羈莆薄聿膃莂薃蝿肆芈薂袁节薇薁羄肄蒃薁肆芀荿蚀螅肃芅虿袈芈膁蚈羀肁薀蚇螀芆蒆蚆袂腿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂螃衿膆莈螂羁罿芄螁蚁膄膀螀袃羇蕿蝿羅节蒅蝿肈肅莁螈螇芁芇螇衿肄薅袆羂艿蒁袅肄肂莇袄螄芇芃蒁羆肀艿蒀肈莆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅薆螅膅蒁薅袇羈莆薄聿膃莂薃蝿肆芈薂袁节薇薁羄肄蒃薁肆芀荿蚀螅肃芅虿袈芈膁蚈羀肁薀蚇螀芆蒆蚆袂腿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂螃衿膆莈螂羁罿芄螁蚁膄膀螀袃羇蕿蝿羅节蒅蝿肈肅莁螈螇芁芇螇衿肄薅袆羂艿蒁袅肄肂莇袄螄芇芃蒁羆肀艿蒀肈莆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅薆螅膅蒁薅袇羈莆薄聿膃莂薃蝿肆芈薂袁节薇薁羄肄蒃薁肆芀荿蚀螅肃芅虿袈芈膁蚈羀肁薀蚇螀芆蒆蚆袂腿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂螃衿膆莈螂羁罿芄螁蚁膄膀螀袃羇蕿蝿羅节蒅蝿肈肅莁螈螇芁芇螇衿肄薅袆羂艿蒁袅肄肂莇袄螄芇芃蒁羆肀艿蒀肈莆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅薆螅膅蒁薅袇羈莆薄聿膃莂薃蝿肆芈薂袁节薇薁羄肄蒃薁肆芀荿蚀螅肃芅虿袈芈膁蚈羀肁薀蚇螀芆蒆蚆袂腿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂螃衿膆莈螂羁罿芄螁蚁膄膀螀袃羇蕿蝿羅节蒅蝿肈肅莁螈螇芁芇螇衿肄薅袆羂艿蒁袅肄肂莇袄螄芇芃蒁羆肀艿蒀肈莆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅薆螅膅蒁薅袇羈莆薄聿膃莂薃蝿肆芈薂袁节薇薁羄肄蒃薁肆芀荿蚀螅肃芅虿袈芈膁蚈羀肁薀蚇螀芆蒆蚆袂腿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂螃衿膆莈螂羁罿芄螁蚁膄膀螀袃羇蕿蝿羅节蒅蝿肈肅莁螈螇芁芇螇衿肄薅袆羂艿蒁袅肄肂莇袄螄芇芃蒁羆肀艿蒀肈莆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅薆螅膅蒁薅袇羈莆薄聿膃莂薃蝿肆芈薂袁节薇薁羄肄蒃薁肆芀荿蚀螅肃芅虿袈芈膁蚈羀肁薀蚇螀芆蒆蚆袂腿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂螃衿膆莈螂羁罿芄螁蚁膄膀螀袃羇蕿蝿羅节蒅蝿肈肅莁螈螇芁芇螇衿肄薅袆羂艿蒁袅肄肂莇袄螄芇芃蒁羆肀艿蒀肈莆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅薆螅膅蒁薅袇羈莆薄聿膃莂薃蝿肆芈薂袁节薇薁羄肄蒃薁肆芀荿蚀螅肃芅虿袈芈膁蚈羀肁薀蚇螀芆蒆蚆袂腿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂螃衿膆莈螂羁罿芄螁蚁膄膀螀袃羇蕿蝿羅节蒅蝿肈肅莁螈螇芁芇螇衿肄薅袆羂艿蒁袅肄肂莇袄螄芇芃蒁羆肀艿蒀肈莆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅薆螅膅蒁薅袇羈莆薄聿膃莂薃蝿肆芈薂袁节薇薁羄肄蒃薁肆芀荿蚀螅肃芅虿袈芈膁蚈羀肁薀蚇螀芆蒆蚆袂腿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂螃衿膆莈螂羁罿芄螁蚁膄膀螀袃羇蕿蝿羅节蒅蝿肈肅莁螈螇芁芇螇衿肄薅袆羂艿蒁袅肄肂莇袄螄芇芃蒁羆肀艿蒀肈莆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅薆螅膅蒁薅袇羈莆薄聿膃莂薃蝿肆芈薂袁节薇薁羄肄蒃薁肆芀荿蚀螅肃芅虿袈芈膁蚈羀肁薀蚇螀芆蒆蚆袂腿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂螃衿膆莈螂羁罿芄螁蚁膄膀螀袃羇蕿蝿羅节蒅蝿肈肅莁螈螇芁芇螇衿肄薅袆羂艿蒁袅肄肂莇袄螄芇芃蒁羆肀艿蒀肈莆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅薆螅膅蒁薅袇羈莆薄聿膃莂薃本科毕业设计(论文)题目基于CC2430的无线传感器网络研究(上位机部分)学生姓名黄飞学 号0507060212教学院系电子信息工程学院专业年级通信工程2005级指导教师李伟勤职 称讲师单  位西南石油大学 完成日期2009年6月7日 摘要无线传感器网络是由大量无处不在的微小传感器节点组成,它能根据环境自主完成指定任务的自治监控功能,是对21世纪产生巨大影响力的技术之一。本设计是将无线传感器网络应用于温度监测方面。软件系统前台应用VisualBasic6.0编程开发环境。采用VB的ADODC控件完成数据库连接,MSchart控件实现节点温度的条形图显示,MScomm控件完成串行数据接收。软件系统后台采用MicrosoftOfficeAccess2003数据库,实现节点信息的存储。采用定时器定时读取数据库,完成节点信息的实时更新。通过串行口与下位机连接,接收适配器发送过来的字符数据,实现无线传感器网络温度监测功能。关键词:无线传感器网络;Access2003数据库;串行通信I AbstractWirelessSensorNetworksisconsistedofalargenumberoftinysensornodeswhichisrandomlydeployedinunattendedmonitoringregional.Itcancompletetheassignedtaskofenvironmentalself-monitoringnetworksystem.Furthermoreitistheoneofthegreatimpactofcompetitivetechnologieswhichisimportanttothe21stcentury.Thisdesignisthatwirelesssensornetworkswillbeusedinmonitoringthetemperature.ThefrontSoftwaresystemuseVisualBasic6.0programmingdevelopmentenvironment,makeuseofVB’sADODCtocompletedatabaseconnectioncontrol,useMSchartcontrolboxtoachievethenode’sbargraphdisplaying,otherwisetheMScommcontrolboxcompleteserialdatareceiving,BackgroundsoftwaresystemuseMicrosoftOfficeAccess2003databasestoachievethenodeinformationstorage.Usingthetimertoreadthedatabasefromtimetotime,itcancompletereal-timeupdatesofnodeinformation.Throughtheserialportconnectedwiththelowerpart,thesoftwarereceivedthecharacterdatasentfromtheadapter,andrealizedthewirelesssensornetworksmonitoringthetemperaturefunctionKeywords:WirelessSensorNetworks;AccessDatabase;SerialCommunicationI 目录摘要IAbstractII1绪论11.1课题背景与研究意义11.2无线传感器网络简介11.3设计任务42无线传感器网络上位机系统概要设计52.1系统功能简要描述52.2系统模块功能描述52.3系统设计的上位机、下位机的连接52.4数据库设计72.4.1数据库表的创建72.4.2数据库表92.4.3数据库表设计说明92.4.4数据库连接设计102.5计算机硬件要求及开发环境102.5.1计算机的硬件建议配置102.5.2开发工具的选择112.5.3开发工具概述113无线传感器网络(上位机)详细设计123.1无线传感器网络温度监测系统(main.frm)123.2节点管理(net_creat.frm)153.3节点信息设置(net_setup.frm)163.4报警管理(alarm.frm)163.5软件模拟(moni.frm)173.6出厂设置(default_setup)184软件测试204.1测试内容204.2测试步骤204.2.1软件模拟测试204.2.2无线传感器网络上、下位机实现测试214.3测试结果22 5结论24谢辞25参考文献26附录27 基于CC2430的无线传感器网络研究(上位机部分)1绪论1.1课题背景与研究意义人类进入21世纪以来,微电子机械系统、计算机、通信、自动控制和人工智能等学科的飞速发展孕育了一种新型的测控网络—无线传感器网络(wirelesssensornetwork,WSN)。无线传感器网络是由大量无处不在的具有通信与计算机能力的微小传感器节点,密集布设在无人值守的监控区域而构成的,能够根据环境自主完成指定任务的“智能”自治监控网络系统。无线传感器网络是一种超大规模、无人值守、资源严格受限的全分布系统,采用多跳对等的通信方式,其网络拓扑动态变化,具有自组织、自治、自适应等智能属性。无线传感器网络的出现引起了全世界范围的广泛关注。无线传感器网络技术的研究起源于20世纪70年代,最早应用于军事领域,在卡耐基一梅隆大学成立了新一代分布式传感器网络工作组。此后,DA联合美国自然科学基金委员会设立了多项有关无线传感器网络的研究项目。我国近两年也以多种形式支持无线传感器网络的研究。这些研究推动了以网络技术为核心的新军事革命,诞生了网络中心战的思想和体系。目前,无线传感器网络的应用己由军事领域扩展到其他许多领域,如灾难预警与救助、家庭健康监测、空间探索等传统方法无法完成的任务,成为一种“无所不在”的传感技术。本课题的研究目的是设计一种基于ZigBee技术的无线传感器网络系统,进而将其应用于温度系统的监控方面。因为这种监控网络成本较低、无需布线,多个传感器节点布置于各种监控环境。企业设备监测系统一般需要铺设大量的电缆、网线、光纤构成传输网络,设备建设和维护成本很高,而无线传感器网络技术是一种低功耗、自组织的短距离技术,可以实现监测、感知和采集网络分布区域内的各种环境对象数据。传感器网络配合专家系统就可以实现数据的采集和分析,从而降低人工维护成本和设备成本。基于ZigBee的传感器网络技术如果配合有线网络(如以太网),可以实现整个工厂范围内机组的实时监控;配合无线蜂窝网络技术可以实现手机对温度的实时监测。因此无线传感器网络的研究具有重要的应用价值。1.2无线传感器网络简介整个传感器网络由无线温度传感器节点(温度数据采集终端)、协调器和监测中心计算机组成。无线温度传感器节点分布于需要测量的现场,47 基于CC2430的无线传感器网络研究(上位机部分)执行温度数据的采集、预处理、发送等工作。协调器负责接收节点传送过来的数据,将无线网络协议的数据转化为以太网络协议的数据传送到监测中心计算机。监测中心计算机通过与协调器间的通信,实时的显示每个温度传感器节点的温度信息。系统框图如图1.1所示。每一个传感器节点周期性的将温度数据通过无线收发模块发送到协调器,最终显示于监测中心计算机。图1.1系统总体结构图无线传感器网络下位机设计主要分为硬件设计和软件设计,硬件方面是以CC2430为主要器件,系统功能引脚图如图1.2。CC2430内部包含80C51的内核、无线收发模块,一个CC2340即可完成无线接收或发送功能,功能非常强大。CC2430是TI公司推出的全新概念新一代ZigBee无线单片机系列芯片。是一款真正符合IEEE802.15.4标准的片上ZigBee产品,采用7mmx7mlnQLP48封装。它包括RF收发器,集成了加强型8051MCU。CC2430工作在2.4GHz频段,灵敏度高、最大输出为24dBm、最大传送速率为250kb/s,其外围元件数目很少。使用一个非平衡天线,连接非平衡变压器使天线性能更好。电路中的非平衡变压器由电容C12和电感L1、L2、L3以及1个PCB微波传输线组成,整个结构满足RF输入/输出匹配电阻(50Q)的要求。值得注意的是。为了使系统达到有效复位,应使RESET-N端保持10ms的低电平。当复位结束后立即对该器件进行初始化时。很容易发生错误。所以,进入O000H地址后。应首先执行1ms-10ms的软件延时。然后再进行初始化。47 基于CC2430的无线传感器网络研究(上位机部分)图1.2CC2430及外围器件温度采集使用数字式温度传感器DS18B20,DS18B20具有3引脚PR-35小体积封装形式,温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,测出的温度用符号扩展的16位数字量方式串行输出,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。DS18B20采集温度数据后,处理为数字信号发送给CC2430内部控制器运算器,由它进行温度处理并传送给无线发送模块。与上位机的串行通信还要求下位机有串行通信模块,串行通信使用RS232串行接口,该接口技术成熟,结构简单,只需3条普通导线就可以进行双向通信,实现非常方便。软件部分采用Zigbee协议栈,完成无线网络的网络连接和无线网络数据传输交换。ZigBee协议依据IEEE802.15.4标准,在数千个微小的传感器之间相互协调实现通信。这些传感器只需要很少的能量,以接力的方式通过无线电波将温度数据从一个传感器传到另一个传感器,然后传到适配器最后传到电脑端。ZigBee协议是由IEEE802.15.4协议标准定义的PHY层和MAC层与ZigBee联盟所制定的网络层和应用层所构成。其工作频率在2.4GHz、9l5MHz和868MHz,最高传输速率为250kbps。IEEE802.15.4协议MAC层采用CSMA-CA机制来控制信道接入,主要负责传输信标帧、同步以及提供可信赖的传输机制。ZigBee协议栈如图1.3。47 基于CC2430的无线传感器网络研究(上位机部分)图1.3ZigBee协议架构1.1设计任务主要任务是分析CC2430协调器串口传输的温度数据格式,通过VB编程实现的数据库写入、读出处理,实时对温度进行图形显示,同时设置温度报警范围,可以进行报警事件处理等。47 基于CC2430的无线传感器网络研究(上位机部分)1无线传感器网络上位机系统概要设计1.1系统功能简要描述1)系统具有良好的人机界面。2)自然美观的图形化温度显示,可以一目了然的监测所有节点温度。3)方便的数据添加和修改功能。4)定时更新数据库,定时更新温度数据,人性化的温度监测。5)声光报警功能,最大限度的告诉监控人员节点状态。6)环境模拟仿真,在没有下位机时也可体验温度检测功能。7)串行口数据自动接收,自动分析,自动处理,无需人工干预。8)数据备份和清理功能。1.2系统模块功能描述整个上位机系统由许多窗体组成,它包括出窗体main.frm、节点管理窗体net_creat.frm、节点信息设置窗体net_setup.frm、报警管理窗体alarm.frm。具体窗体信息见表2.1。表2.1统功能描述序号功能名称窗体名称优先级简要描述1无线传感器网络监测系统Main.frm高串行口设置,和温度的图形显示2节点管理Net_creat.frm中新建节点,删除节点3节点信息设置Net_setup.frm中节点报警温度设置,更新时间设置4报警管理Alarm_m.frm高显示报警节点,报警屏蔽等1.3系统设计的上位机、下位机的连接无线传感器网络上位机通过串行线与下位机连接,按照串行通信协议发送、接收数据,串行通信发送的数据帧结构如表2.2。数据帧由“:”开始,表示一个网络节点数据的开始,其次是网络节点ID,用来标识检测的节点通道号,然后是网络节点温度,最后“。”上位机一但接收到该字符,则立即进入事件处理,首先分析发送过来的字符数据,分别提取节点ID号,节点温度,然后在数据库中搜索对应的网络节点ID字段,如果搜索到成功,则立即更新节点温度,如果47 基于CC2430的无线传感器网络研究(上位机部分)搜索失败,返回为空,不更新数据库。表2.2数据帧格式8位数据起始标志网络节点ID号节点温度8位数据结束标识当下位机增加网络节点时,必须在上位机端对应添加网络节点,并按照实际网络节点ID添加。事件处理代码见下:PrivateSubMSCON_OnComm()Dimmy_end$Dimmy_sql$Dimmy_rsAsNewADODB.RecordsetDimnet_id$Dimnet_tem$DimbAsIntegerDimcAsIntegerWithMSCONSelectCase.CommEventCasecomEvReceivemy_end=.Inputmcu_msg=mcu_msg&my_endText2.Text=mcu_msgIfInStr(my_end,".")Then"收到结束标志"取用户名,查询,写如记录c=InStrL(mcu_msg,".")mcu_msg=Left(mcu_msg,c)b=InStrL(mcu_msg,":")mcu_msg=Mid(mcu_msg,b+1,c-b-1)net_id=Left(mcu_msg,4)net_tem=Right(mcu_msg,Len(mcu_msg)-4)"MsgBox(net_id)my_sql="selectnid,ntempfrombasicwherenid=""&net_id&"""my_rs.Opensql,con,adOpenDynamic,adLockPessimisticIfmy_rs.EOFThenElse‘写入进出记录47 基于CC2430的无线传感器网络研究(上位机部分)Image2.Visible=TrueImage1.Visible=FalseTimer1.Enabled=FalseTimer2.Enabled=FalseCallAdd_temp(net_id,net_tem)EndIfmy_rs.CloseSetmy_rs=Nothingmcu_msg=""EndIfEndSelectEndWithEndSub1.1数据库设计本设计主要采用微软公司OfficeAccess2003数据库,比起SQL此数据库功能稍稍逊色,但Access2003数据库操作简单,属于Office家族,基于它的程序开发较为快捷,它具有很好的兼容性,拓展性,受到许多VB程序员们青睐。1.1.1数据库表的创建首先打开OfficeAccess2003,点击新建,这时右边会出现你所要新建的对象,如图2.3。图2.3数据库窗创建界面47 基于CC2430的无线传感器网络研究(上位机部分)进入之后如图2.4。此时你可以选择使用设计器创建表,使用向导创建表,通过输入数据创建表。此时选择使用设计器创建表。图2.4数据库创建向导界面选择使用设计器进入数据表设计,设置字段名称以及字段存储类型。定义主键,数据表设计界面如图2.5。图2.5数据表设计界面设置好所有节点字段名称,设置的节点名称要与你的数据库信息有关,以便于方便调用。设置完后可以向数据表中添加新数据,具体新数据录入如图2.6。47 基于CC2430的无线传感器网络研究(上位机部分)图2.6新数据录入1.1.1数据库表表2.3数据库表介绍编号数据表名称描述功能说明1网络节点信息表网络节点信息主要用于所有网络节点信息存储,比如节点温度,节点ID等。2节点出厂信息表网络节点初始值信息主要用于新建网络节点时的初始信息。3管理员信息表管理员登陆信息主要用于管理员登陆1.1.2数据库表设计说明1)网络节点信息表(Noteinformation)表2.4网络节点信息编号字段名称字段代码字段类型是否为空是否主键1序号Num自动编号NY2节点IDNid文本YN3节点状态Nstate文本YN4节点名称Nname文本YN5节点地址Naddress文本YN6节点温度Ntemp数字YN7一级报警值Falarm数字YN8二级报警值Salarm数字YN9单位Danwei文本YN10更新时间Updatetime数字YN11节点类型Nstyle文本YN2)管理员信息表(Administrator)表2.5管理员信息编号字段名称字段代码字段类型是否为空是否主键47 基于CC2430的无线传感器网络研究(上位机部分)1管理员IDAdministrator文本NN2管理员密码Secret文本NN1)节点出厂信息表(Notedefault)表2.6节点出厂信息编号字段名称字段代码字段类型是否为空是否主键1节点温度Ntemp数字YN2一级报警值Falarm数字YN3二级报警值Salarm数字YN4单位Danwei文本YN5更新时间Updatetime数字YN6节点类型Nstyle文本YN1.1.1数据库连接设计VisualBasic6.0中的ADODC1控件拥有强大的数据库连接功能,在窗体中添加该控件后,调用如下函数,即可实现数据库连接。PublicFunctiongetcon()appdisk=IIf(Right(App.Path,1)="",App.Path,App.Path&"")con.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;PersistSecurityInfo=False;DataSource="&appdisk&"db1.mdb"con.Opencon.CursorLocation=adUseClientEndFunction数据库连接成功后,系统软件就可以访问数据库了,但是还不能调用、修改、更新数据库中的数据表,必须建立记录集,建立记录集的函数如下,记录集与数据库表连接成功后,就可以修改数据库表中的数据了。PublicSubgetrs()sql="select*frombasic"rs.Opensql,con,adOpenDynamic,adLockPessimisticEndSubPublicSub1.2计算机硬件要求及开发环境1.2.1计算机的硬件建议配置CPU1.6GMHZ内存512M47 基于CC2430的无线传感器网络研究(上位机部分)硬盘60G操作系统WINXP操作系统或更高1.1.1开发工具的选择本系统后台采用MicrosoftOfficeAccess2003数据库,该数据库操作简单,功能强大,兼容性和拓展性非常好,前台采用Microsoft公司的MicrosoftVisualBasic6.0作为主要的开发工具,它可以与MicrosoftOfficeAccess2003数据库无缝连接。1.1.2开发工具概述1)VisualBasic6.0简介微软公司的VisualBasic6.0是Windows应用程序开发工具,使目前非常广泛的、易学易用的面向对象的开发工具。VisualBasic6.0能自动产生界面设计代码,编程人员不必编写大量的程序代码,只需要按照设计要求在窗口中的适当位置添加所需的各种部件,整个界面设计过程是直观、可视的,设计界面与程序运行时实际显示的界面一致,大大提高了程序设计的效率。VisualBasic6.0还拥有以下几个特点:1)支持面向对象的程序设计(OOP);2)采用事件驱动方式;3)提供对象的连接与嵌入(OLE)和访问数据库功能;2)MicrosoftOfficeAccess2003简介MicrosoftOfficeAccess2003是由微软发布的关联式数据库管理系统。它结合了MicrosoftJetDatabaseEngine和图形用户界面两项特点,是MicrosoftOffice2007的成员之一。ACCESS2003具有强大的数据资源能力和强大的业务支持,通过表格链接,您可以在Access2003窗体、报表和数据访问页面中同时访问来自多个数据库的数据。它还能够将来自其他MicrosoftAccess数据库、MicrosoftExcel电子表格、ODBC数据源、MicrosoftSQLServer数据库以及其他的数据库资源的表格进行链接。ACCESS2003是一个功能强大的后台数据库管理系统,以其低费用、可伸缩性、可靠性和易用性等诸多方面的优势,被广大人们所喜爱。47 基于CC2430的无线传感器网络研究(上位机部分)1无线传感器网络(上位机)详细设计无线传感器网络(上位机)主要实现人机对话功能,设计要求人性化,可视化,图形化。上位机通过一根串行通信线与下位机连接,下位机定时向上位机发送一定格式的数据帧,数据帧包含节点ID,节点温度等信息,上位机接收到数据后首先存入数据库,然后更新连接数据库,图形化、图表化显示节点信息。主程序流程图如图3.1。图3.1主数据流图1.1无线传感器网络温度监测系统(main.frm)功能描述:可视化的操作界面,主要由串行口设置模块、数据库连接模块、图形显示模块、报警模块组成,管理员可以使用串行口设置模块设置串行端口号,串行端口传输速率,是否校验,以及是否有停止位。在串行通信前这个模块完成所有串行口初始化工作,管理员设置完串行口后,打开串行口即可实现串行通信。数据库连接模块完成与Access2003的数据库的连接,连接完成后,显示连接成功,连接成功后软件自动初始化,将数据库中所有网络节点信息用DataGrid显示出来,管理员可以一目了然的看到所有网络节点信息,并可以清楚知道是否有节点处于报警状态。图形显示模块的功能主要是实时显示节点温度,使用人性化、可视化的设计,用简单的条形图就可以监测所有节点,避免庞大的数据表查看,让监控过程更为轻松。报警模块采用声光报警,当有节点温度操作设置的报警值时,报警指示灯不断闪烁,并发出报警声音,不断告知有节点温度超标。无线传感器网络界面如图3.2所示。47 基于CC2430的无线传感器网络研究(上位机部分)图3.2无线传感器网络温度监测中心无线传感器网络温度监测中心是整个软件的主界面,它承载着数据库连接,记录集建立,串口初始化,以及图形控件的初始化等,软件流程图见附录图3.8,运行软件后,系统首先初始化串行口,然后等待用户建网,当建网成功后,数据库会连接成功,Datagrid与记录集连接,并显示记录集所有信息。实现初始化的关键代码如下:PublicSubk_int()"--------------数据库记录集连接----------------------------"CallgetconCallgetrsSetDataGrid1.DataSource=rscb2.ListIndex=0cb3.ListIndex=0cb4.ListIndex=0cb5.ListIndex=0"--------------串口初始化---------------------------------"MSCON.CommPort=1"设置通信端口号为COM1MSCON.Settings="38400,n,8,1""设置串口参数,波特率9600MSCON.InputMode=0"接收文本型数据47 基于CC2430的无线传感器网络研究(上位机部分)MSCON.RThreshold=1"接收到一个字符就产生oncomm事件MSCON.PortOpen=True"------------Datagrid初始化----------------------------------"DataGrid1.MarqueeStyle=dbgHighlightRowDataGrid1.RefreshDataGrid1.Columns(0).Caption="序号"DataGrid1.Columns(1).Caption="节点ID"DataGrid1.Columns(2).Caption="节点状态"DataGrid1.Columns(3).Caption="节点名称"DataGrid1.Columns(4).Caption="节点地址"DataGrid1.Columns(5).Caption="节点温度"DataGrid1.Columns(6).Caption="一级报警值"DataGrid1.Columns(7).Caption="二级报警值"DataGrid1.Columns(8).Caption="单位"DataGrid1.Columns(9).Caption="更新时间"DataGrid1.Columns(10).Caption="节点类型"DataGrid1.Columns(0).Width=600DimiAsIntegerFori=1To10DataGrid1.Columns(i).Width=1000NextiDataGrid1.BorderStyle=dbgFixedSingle"---------------text初始化----------------------------------"Ifrs.BOF=FalseAndrs.EOF=FalseThencb1.Text=rs.Fields("nid")Text1(0).Text=rs.Fields("nname")Text1(1).Text=rs.Fields("ntemp")Text1(2).Text=Trim(rs.Fields("updatetime"))Text1(3).Text=rs.Fields("falarm")Text1(4).Text=rs.Fields("salarm")Text1(5).Text=rs.Fields("danwei")EndIf"--------------初始化MSchart---------------------------------"MSChart1.AllowSeriesSelection=False"设置不能选中整个系列MSChart1.RowCount=15"设置行共15行47 基于CC2430的无线传感器网络研究(上位机部分)MSChart1.ColumnCount=1"设置列1列TT.Interval=rs.Fields("updatetime")EndSub1.1节点管理(net_creat.frm)功能描述:可视化界面,用户可以管理节点基本信息,包括节点ID,节点名称,节点状态,节点地址,节点温度,节点报警值,节点温度单位,更新时间等,每个节点的信息清晰、完整,方便管理员对每个节点的管理,同时管理员可以进行添加节点,删除节点等操作。节点管理界面如图3.3所示。图3.3节点管理节点管理的核心功能是实现数据库记录集内数据的新建和删除,并及时更新数据库,在主界面显示出来,软件流程图见附录图3.9。新建记录集的时候系统首先自动由出厂设置预设网络节点初始信息,用户也可以根据自己的需求更改。核心代码实现见下:rs.AddNewFori=0To8rs.Fields(i+1)=Text1(i).TextNextiCallgetrs1rs.Fields("nstyle")=rs1.Fields("nstyle")Calllostrs1rs.Updaters.MoveFirstCallk_int47 基于CC2430的无线传感器网络研究(上位机部分)1.1节点信息设置(net_setup.frm)功能描述:可视化界面,包括一级报警值设置,二级报警值设置,更新时间设置,管理员可以通过主界面右键进入,也可以通过菜单选项进入。管理员可以根据实际需求设置每个节点的报警值,方便对每个节点特殊管理,使监控更实用,更具有广阔的监控范围。节点设置界面如图3.4所示。图3.4节点信息设置节点信息设置主要实现数据库更新数据功能,包括更新一级报警值,二级报警值和更新时间。软件流程图见附录图3.10。实现核心代码见下:PrivateSubCommand1_Click()rs.Fields("falarm")=Text2.Textrs.Fields("salarm")=Text3.Textrs.Fields("updatetime")=List1.Textrs.Updaters.ResyncUnloadMeEndSub1.2报警管理(alarm.frm)功能描述:可视化界面,管理员可以查看所有温度超标的节点信息,包括节点ID,节点温度,一级报警值,二级报警值,和列表显示报警节点信息,人性化的设计,方便管理员对报警节点统一管理,同时管理员可以对报警节点报警屏蔽,报警值重新设置等操作。报警管理界面如图3.5所示。47 基于CC2430的无线传感器网络研究(上位机部分)图3.5报警管理报警管理窗体能搜索所有报警中的字段并列表显示出来,实现核心是搜索功能,软件流程图见附录图3.11。核心代码如下:sql="select*frombasicwherenstatelike"%报警%""my_rs2.Opensql,con,1,1Setdisplay.DataSource=my_rs2Ifmy_rs2.BOF=FalseAndmy_rs2.EOF=FalseThenText1(0).Text=my_rs2.Fields("nid")Text1(1).Text=my_rs2.Fields("ntemp")Text1(2).Text=my_rs2.Fields("falarm")Text1(3).Text=my_rs2.Fields("salarm")EndIf1.1软件模拟(moni.frm)功能描述:可视化界面,管理员可以在没有下位机的情况下测试软件的功能,数据帧主要包括数据帧起始标志,节点ID,节点温度,数据帧结束标志。管理员可以自行设置节点ID,节点温度,并通过复选框按钮选择是否多通道发送字符,为更好的人机结合,管理员可查看发送的字符串数据,为调试和测试软件功能提供了强大的支持,模拟开始后,主窗体会显示模拟字样,操作非常简单。模拟参数设置界面如图3.6所示。47 基于CC2430的无线传感器网络研究(上位机部分)图3.6软件模拟软件模拟的实现主要是定时向串行口发送数据帧格式的数据,以触发主界面的数据接收事件,即使更新数据信息。定时功能用定时器完成。软件流程图见附录图3.12。核心代码如下:PrivateSubTimer1_Timer()IfCheck1.Value=1AndCheck2.Value=1Thencstring=":"&Text1.Text&Text2.Text&"."&":"&Text3.Text&Text4.Text&"."ElseIfCheck1.Value=1AndCheck2.Value=0Thencstring=":"&Text1.Text&Text2.Text&"."ElseIfCheck1.Value=0AndCheck2.Value=1Thencstring=":"&Text3.Text&Text4.Text&"."Elsecstring=""EndIfIfmain.MSCON=FalseThenmain.MSCON.PortOpen=TrueEndIfmain.MSCON.Output=cstringEndSub1.1出厂设置(default_setup)可视化界面47 基于CC2430的无线传感器网络研究(上位机部分),管理员可以设置温度节点测试类型,选择好温度检测类型后,系统会自动根据测试类型初始化一级报警值和二级报警值,如果符合要求确定表示设置完成,如果需要更改立即更改,出厂设置参数设置后,在新建网络节点时的一级报警值、二级报警值和节点类型都和出厂设置的信息相同,这样非常方便的对新网络节点的统一管理,功能更为完善和强大。出厂设置界面如图3.7所示。图3.7出厂设置出厂设置的核心处理是更改数据库字段内容,操作比较简单:rs1.Fields("falarm")=Text1.Textrs1.Fields("salarm")=Text2.Textrs1.Fields("nstyle")=Combo1.Textrs1.Update47 基于CC2430的无线传感器网络研究(上位机部分)1软件测试本设计是基于CC2430无线传感器网络(上位机)设计,配合下位机将各个网络节点温度显示出来,并有报警功能。为提高程序开发效率以及能方便的调试,软件还具有模拟功能,在没有下位机的情况下,只需要将串行通信口的发送、接收引脚短接,即可实现软件仿真功能。软件仿真窗体将定时从串行口的2引脚(数据发送引脚TXD)发送数据帧,因为2、3引脚短接,数据直接发送到3(数据接收引脚RXD)引脚,并传回电脑端,这时主窗体的数据字符处理模块就正常运行,进行网络节点温度实时显示和处理功能了,同时,管理员还可以改变模拟节点的节点ID和温度,模拟软件的实时显示温度,并在主窗体上显示“模拟中”字样,表示现在处于模拟状态,停止模拟后,该字样消失。1.1测试内容1)软件是否初始化正常,数据库连接是否成功,退出及关闭时是否无任何错误。2)主界面良好,是否能成功建网并提示,图形显示是否正常并能定时更新,管理员是否根据自己需求改变串行端口号、传输速率和是否校验等。3)数据库可维护性好,数据的录入、删除及更改是否能顺利完成,并能实现动态更新。4)串行口数据接收是否正常,能正常、准确分析接收的数据,并且数据库字段是否能搜索实时更新。5)软件模拟功能是否正常实现,演示功能是否强大。6)与下位机连接是否成功,并能成功传输更新数据。1.2测试步骤1.2.1软件模拟测试首先进入主界面(图4.1),这时,窗体界面基本初始化已经完成,但并没有完成网络节点注册,选择菜单软件模拟,进入软件模拟窗体(图4.2)。图4.2软件模拟界面图4.1主界面图47 基于CC2430的无线传感器网络研究(上位机部分)点击开始模拟和开始建网,建网成功后,图形化显示初始化并连接数据库,开定时更新数据,通过模拟软件窗体改变节点温度,网路节点列表和条形图实时显示温度信息(图4.3)。管理员可以点击鼠标右键,打开弹出菜单,选择要进行的操作,可以重新设置节点报警值或进入报警处理窗体(图4.4),进行报警屏蔽等操作。图4.4报警屏蔽界面图图4.3程序主界面图进入节点管理窗体(图4.5),可以新建节点,删除节点,软件会自动给新节点分配网络地址和网络ID,并按照出厂设置内容初始化网络节点,点击保存后,新建节点成功,系统立刻更新数据,主界面记录会立刻添加管理员新建的数据(图4.6),并开始实时显示。图4.6新建节点后的主界面图4.5节点管理1.1.1无线传感器网络上、下位机实现测试与下位机连接后进入上位机下位机连接测试,因为下位机仅有一个网络节点,所以软件只监测一个节点温度,测试步骤如下进入主界面(如图4.1)后点击开始建网,建网成功后(如图4.6),图形化显示初始化并连接数据库,此时,数据库连接成功,软件已经开始定时接收串行口发送过来的数据,已经开始定时更新数据库了,此时我在程序中加一条代码:msgboxnet_tem,47 基于CC2430的无线传感器网络研究(上位机部分)这个代码的意思是在每次接收到串行数据发送的数据后,待分析完字符数据,提取net_tem后,通过msgbox告诉我是否温度检测成功,数据是否成功收到,如果消息盒子的报告是空的,则表示数据接收失败或者没受到数据,如果消息盒子报告弹出温度正常,则表示成功接收并更新了数据库。具体代码如下cu_msg=Mid(mcu_msg,2,3)net_tem=mcu_msgMsgBoxnet_temCallAdd_temp("0001",net_tem)1.1测试结果1)在软件的不断启动关闭过程中没有出现死机、程序执行效率降低等各种不良现象,功能的实现较为完善。2)数据库的可维护性良好,数据的录入能顺利完成,并能实现动态更新,删除和修改也能顺利完成。3)串行数据接收只能识别一种数据帧格式,对其他数据格式不具有兼容性,但数据帧分析处理功能正常,数据帧中提取节点ID,节点温度字段非常准确,能很好的完成数据更新。4)数据溢出、越界基本未能进行非法提示,以警告用户的错误使用。但能对用户的非正常操作方式能提出警告。5)软件对操作系统的兼容性良好,但未打包程序不能在未安装VB的机器上使用,主要是因为系统中用到了ADO控件和MSchart控件。6)软件窗体在运行过程中主窗体不能最大化,但可以拖动窗体缩放,根据使用者习惯调整窗体大小。原本Access2003数据库网络节点信息表信息如图4.7,一共有5条记录,每条记录有完整的参数,包括节点ID、节点状态、节点名称、节点地址、节点温度、节点报警值等。图4.7数据库网路节点信息表147 基于CC2430的无线传感器网络研究(上位机部分)新建网络节点后,记录集一共增加为6条(图4.8),新网络节点的所有相关参数也准确的设定了初始值,数据库记录添加无误。图4.8数据库网路节点信息表247 基于CC2430的无线传感器网络研究(上位机部分)1结论无线传感器网络的应用越来越广泛,基于CC2430的无线传感器网络研究非常有意义,我经过3个月的不懈努力,完成了无线传感器网络上位机的设计。设计采用VisualBasic6.0软件开发环境开发前台人机界面程序,采用Access2003数据库完成数据存储,整个软件分为8个窗体,每个窗体完成特定功能,经过反复测试,系统完成后运行添加、修改、查询、等功能均正常,并能完成数据帧接收,分析处理数据帧。采用定时器定时读取数据库,完成节点信息的实时更新。通过串行口与下位机连接,接收适配器发送过来的字符数据,成功实现无线传感器网络温度监测。此系统仍存在许多缺陷,但是通过该系统设计达到了系统设计目的意义,基本掌握了无线传感器网络的基本原理,了解了软件开发时必须注意的问题,另外,在设计过程中也逐渐提高了软件开发技能和编程技能。因此本设计虽然较粗糙,但是从学习的角度上看,非常有意义。47 基于CC2430的无线传感器网络研究(上位机部分)谢辞本次毕业设计是在指导老师李伟勤的悉心指导下,我才能顺利地完成了这次毕业设计的工作任务。在毕业设计期间,导师李老师给予了很大的帮助和关心,李老师他对整个毕业设计要求很严格,但正是这种严格,让我学到了曾经遗漏和忽略的知识。李老师在电子制作和软件程序设计方面也有面深刻的造诣,给与了我许多指导,值得我尊敬,在此谨向他表示最诚挚的感谢。在本设计的研究过程中,参考了许多专家学者的重要著作和文献资料,同时借鉴了VB程序员们成功的编程经验,他们的研究成果以及成熟的VB程序程序设计理念给了我极大的启发和帮助,在此向他们表示最衷心的感谢。最后衷心地感谢电子信息工程学院与通信工程教研室的老师们以及辅导员老师,感谢你们这四年来对我的谆谆教导和殷切关怀,你们的教育和关心,使得我在大学四年里不仅学到了扎实的专业知识,而且学到了很多做人道理,我定会以更加饱满的激情和昂扬的斗志投身到新的学习工作当中,以更加优异的成绩回报老师,回报母校!由于知识水平有限,在设计过程中难免有所差错和不足,所以,希望各位老师、同学能对我的设计论文中的缺陷和不足予以指正,本人在此表示衷心感谢!47 基于CC2430的无线传感器网络研究(上位机部分)参考文献[1]李玉东等编著.VisualBasic6.0/.NET控件大全.北京:电子工业出版社,2002[2]陈学东,常丹等编著.VisualBasic6.0程序设计教程.北京:清华大学出版社,2005[3]李文仲,段朝玉等编著.ZigBee无线网络技术入门与实战.北京:北京航空航天大学出版社,2007[4]瞿雷,刘盛德,胡咸斌编著.ZigBee技术及应用.北京:北京航空航天大学出版社,2007.9[5]谢炎桦编著.VisualBasic&Access数据库管理系统构建实例.北京:清华大学出版社,2001.547 基于CC2430的无线传感器网络研究(上位机部分)附录1.主窗体(main.frm)源代码OptionExplicitDimtspeedDimmcu_msg$PublicSublostrs1()EndSubPublicSubgetrs()sql="select*frombasic"rs.Opensql,con,adOpenDynamic,adLockPessimisticEndSubPublicSubgetrs1()sql="select*fromhf"rs1.Opensql,con,adOpenDynamic,adLockPessimisticEndSubPublicFunctiongetcon()appdisk=IIf(Right(App.Path,1)="",App.Path,App.Path&"")con.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;PersistSecurityInfo=False;DataSource="&appdisk&"db1.mdb"con.Opencon.CursorLocation=adUseClientEndFunctionPrivateSubalarm_c_Timer()IfShape1.FillColor=&HFF8080ThenShape1.FillColor=&HFF&ElseIfShape1.FillColor=&HFF&ThenShape1.FillColor=&HFF8080EndIfEndSubPrivateSubalarm_scan_Timer()Dimrs3AsNewADODB.RecordsetDimiAsIntegerflagf=False47 基于CC2430的无线传感器网络研究(上位机部分)flags=Falsesql="select*frombasic"rs3.Opensql,con,adOpenDynamic,adLockPessimisticrs3.MoveFirstFori=1Tors3.RecordCountIfNotrs3.EOFOrNotrs3.BOFThenIfVal(rs3.Fields("ntemp"))>Val(rs3.Fields("falarm"))Thenflagf=Truers3.Fields("nstate")="一级报警"rs3.UpdateElseIfVal(rs3.Fields("ntemp"))Val(rs3.Fields("salarm"))Thenflagf=Truers3.Fields("nstate")="二级报警"rs3.UpdateEndIfEndIfrs3.MoveNextNextirs3.CloseIfflagf=TrueThenalarm_c.Enabled=TrueWindowsMediaPlayer1.Controls.playElseIfflagf=FalseThenalarm_c.Enabled=FalseWindowsMediaPlayer1.Controls.stopShape1.FillColor=&HFF8080EndIfrs.Updaters.ResyncEndSub47 基于CC2430的无线传感器网络研究(上位机部分)PrivateSubB1_Click()IfMSCON.PortOpen=FalseThenMSCON.PortOpen=TrueMsgBox"串行端口成功打开"B1.Visible=FalseB2.Visible=TrueElseIfMSCON.PortOpen=TrueThenB1.Visible=FalseB2.Visible=TrueEndIfEndSubPrivateSubB2_Click()IfMSCON.PortOpen=TrueThenMSCON.PortOpen=FalseB1.Visible=TrueB2.Visible=FalseElseB1.Visible=TrueB2.Visible=FalseEndIfEndSubPrivateSubcb2_Click()IfMSCON.PortOpen=TrueThenMsgBox"请先关闭串行端口"ElseIfMSCON.PortOpen=FalseThenMSCON.CommPort=cb2.ListIndex+1EndIfEndSubPrivateSubcb3_Click()IfMSCON.PortOpen=TrueThenMsgBox"请先关闭串行端口"ElseIfMSCON.PortOpen=FalseThenSelectCasecb3.ListIndexCase0MSCON.Settings="38400,n,8,1"47 基于CC2430的无线传感器网络研究(上位机部分)tspeed=9600Case1MSCON.Settings="14400,n,8,1"MSCON.Settings="9600,n,8,1"tspeed=14400Case2MSCON.Settings="19200,n,8,1"MSCON.Settings="9600,n,8,1"tspeed=19200Case3MSCON.Settings="56000,n,8,1"MSCON.Settings="9600,n,8,1"tspeed=56000EndSelectEndIfEndSubPrivateSubcb4_Click()IfMSCON.PortOpen=TrueThenMsgBox"请先关闭串行端口"ElseIfMSCON.PortOpen=FalseThenIfcb4.ListIndex=0ThenMSCON.Settings=tspeed&",n,8,1"ElseIfcb4.ListIndex=1ThenMSCON.Settings=tspeed&",e,8,1"EndIfEndIfEndSubPrivateSubcb5_Click()IfMSCON.PortOpen=TrueThenMsgBox"请先关闭串行端口"ElseIfMSCON.PortOpen=FalseThenIfcb5.ListIndex=0ThenMSCON.Settings=tspeed&",n,8,1"ElseIfcb5.ListIndex=1ThenMSCON.Settings=tspeed&",n,8,2"47 基于CC2430的无线传感器网络研究(上位机部分)EndIfEndIfEndSubPrivateSubCheck1_Click()IfCheck1.Value=1ThenWindowsMediaPlayer1.URL=App.Path&"bb.wav"ElseIfCheck1.Value=0ThenWindowsMediaPlayer1.URL=App.Path&"aa.mid"EndIfEndSubPrivateSubCommand1_Click()Callk_intTimer1.Enabled=TrueTimer2.Enabled=TrueCommand1.Enabled=FalseCommand2.Enabled=TrueEndSubPrivateSubCommand2_Click()pb.Enabled=Falsepb.Value=0Timer1.Enabled=FalseTimer2.Enabled=FalseImage1.Visible=FalseImage2.Visible=FalseTT.Enabled=Falsealarm_scan.Enabled=Falsealarm_c.Enabled=Falsecon.CloseSetcon=NothingCommand1.Enabled=TrueCommand2.Enabled=FalseMSCON.PortOpen=FalseEndSubPrivateSubCommand3_Click()alarm_m.Show47 基于CC2430的无线传感器网络研究(上位机部分)EndSubPrivateSubCommand7_Click()Me.HideEndSubPrivateSubDataGrid1_Click()Ifrs.BOF=FalseAndrs.EOF=FalseThencb1.Text=rs.Fields("nid")Text1(0).Text=rs.Fields("nname")Text1(1).Text=rs.Fields("ntemp")Text1(2).Text=Trim(rs.Fields("updatetime"))Text1(3).Text=rs.Fields("falarm")Text1(4).Text=rs.Fields("salarm")Text1(5).Text=rs.Fields("danwei")EndIfEndSubPrivateSubDataGrid1_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)IfButton=2ThenPopupMenuxm1EndIfEndSubPrivateSubForm_Unload(CancelAsInteger)lostrs1EndSubPrivateSubMSCON_OnComm()Dimmy_end$Dimmy_sql$Dimmy_rsAsNewADODB.RecordsetDimnet_id$Dimnet_tem$DimbAsIntegerDimcAsIntegerWithMSCONSelectCase.CommEventCasecomEvReceive47 基于CC2430的无线传感器网络研究(上位机部分)my_end=.Inputmcu_msg=mcu_msg&my_end"MsgBoxmy_end"MsgBoxmcu_msgText2.Text=mcu_msgIfInStr(my_end,".")Then"收到结束标志"取用户名,查询,写如记录c=InStrL(mcu_msg,".")mcu_msg=Left(mcu_msg,c)b=InStrL(mcu_msg,":")mcu_msg=Mid(mcu_msg,b+1,c-b-1)net_id=Left(mcu_msg,4)net_tem=Right(mcu_msg,Len(mcu_msg)-4)"MsgBox(net_id)"MsgBox(net_tem)"MsgBoxmcu_msgCallAdd_temp(net_id,net_tem)mcu_msg=""EndIfEndSelectEndWithEndSub"函数功能:查找指定字符串在另一字符串中的最后的位置PublicFunctionInStrL(inStringAsString,srchStringAsString)AsIntegerDimiLastPosAsIntegerIfLen(srchString)ThenDimiCurPosAsIntegerDoiLastPos=iCurPosiCurPos=InStr(iCurPos+1,inString,srchString,vbTextCompare)LoopUntiliCurPos=0EndIfInStrL=iLastPos47 基于CC2430的无线传感器网络研究(上位机部分)EndFunction"函数功能:写入温度信息PublicSubAdd_temp(net_idAsString,net_tempAsString)Dimmy_sql$Dimmy_rs1AsNewADODB.Recordset"my_sql="selectnid,ntempfrombasicwherenid=""&net_id&""""my_rs1.Opensql,con,adOpenDynamic,adLockPessimisticsql="select*frombasicwherenid=""&net_id&"""my_rs1.Opensql,con,adOpenDynamic,adLockPessimisticIfNotmy_rs1.EOFAndNotmy_rs1.BOFThenmy_rs1.Fields("ntemp")=net_tempmy_rs1.Updatemy_rs1.CloseSetmy_rs1=Nothingrs.Updaters.ResyncEndIfEndSubPrivateSubTimer1_Timer()Ifpb.Value>198ThenTT.Enabled=Truealarm_scan.Enabled=TrueMsgBox"建网成功"Timer1.Enabled=FalseTimer2.Enabled=FalseImage1.Visible=FalseImage2.Visible=TrueElseIfpb.Value<200Thenpb.Value=pb.Value+1EndIfEndSubPrivateSubTimer2_Timer()Image1.Visible=NotImage1.VisibleEndSubPublicSubk_int()47 基于CC2430的无线传感器网络研究(上位机部分)CallgetconCallgetrsSetDataGrid1.DataSource=rscb2.ListIndex=0cb3.ListIndex=0cb4.ListIndex=0cb5.ListIndex=0"--------------串口初始化---------------------------------"MSCON.CommPort=1"设置通信端口号为COM1MSCON.Settings="38400,n,8,1""设置串口参数,波特率9600MSCON.InputMode=0"接收文本型数据MSCON.RThreshold=1"接收到一个字符就产生oncomm事件MSCON.PortOpen=True"--------------Datagrid初始化-----------------------------------"DataGrid1.MarqueeStyle=dbgHighlightRowDataGrid1.RefreshDataGrid1.Columns(0).Caption="序号"DataGrid1.Columns(1).Caption="节点ID"DataGrid1.Columns(2).Caption="节点状态"DataGrid1.Columns(3).Caption="节点名称"DataGrid1.Columns(4).Caption="节点地址"DataGrid1.Columns(5).Caption="节点温度"DataGrid1.Columns(6).Caption="一级报警值"DataGrid1.Columns(7).Caption="二级报警值"DataGrid1.Columns(8).Caption="单位"DataGrid1.Columns(9).Caption="更新时间"DataGrid1.Columns(10).Caption="节点类型"DataGrid1.Columns(0).Width=600DimiAsIntegerFori=1To10DataGrid1.Columns(i).Width=1000NextiDataGrid1.BorderStyle=dbgFixedSingle"----------------------------------------------------"Ifrs.BOF=FalseAndrs.EOF=FalseThen47 基于CC2430的无线传感器网络研究(上位机部分)cb1.Text=rs.Fields("nid")Text1(0).Text=rs.Fields("nname")Text1(1).Text=rs.Fields("ntemp")Text1(2).Text=Trim(rs.Fields("updatetime"))Text1(3).Text=rs.Fields("falarm")Text1(4).Text=rs.Fields("salarm")Text1(5).Text=rs.Fields("danwei")EndIf"--------------初始化MSchart---------------------------"MSChart1.AllowSeriesSelection=False"设置不能选中整个系列MSChart1.RowCount=15"设置行共15行MSChart1.ColumnCount=1"设置列1列TT.Interval=rs.Fields("updatetime")EndSubPrivateSubTT_Timer()DimiAsIntegerDimjAsIntegerDimmy_rsAsNewADODB.Recordsetsql="select*frombasic"my_rs.Opensql,con,adOpenDynamic,adLockPessimisticTT.Interval=my_rs.Fields("updatetime")*500j=my_rs.RecordCount"MsgBoxjmy_rs.MoveFirstMSChart1.Row=1Fori=1TojIfNotmy_rs.EOFAndNotmy_rs.BOFThen"MsgBoxmy_rs.Fields("ntemp")MSChart1.Data=Val(my_rs.Fields("ntemp"))MSChart1.RowLabel=Val(my_rs.Fields("nid"))MSChart1.Row=i+1my_rs.Updatemy_rs.Resyncmy_rs.MoveNextEndIf47 基于CC2430的无线传感器网络研究(上位机部分)NextiFori=j+1To15MSChart1.Row=iMSChart1.Data=0Nextimy_rs.CloseSetmy_rs=NothingEndSubPublicSubaddicon()WithnfIconData.hWnd=Me.hWnd.uID=Me.Icon.uFlags=NIF_ICONOrNIF_MESSAGEOrNIF_TIP.uCallbackMessage=WM_MOUSEMOVE.hIcon=Me.Icon.Handle"定义鼠标移动到托盘上时显示的Tip.szTip="温度监测中心"&vbNullChar.cbSize=Len(nfIconData)EndWithCallShell_NotifyIcon(NIM_ADD,nfIconData)"=============================================================SystemTrayEndEndSubPrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)DimlMsgAsSinglelMsg=x/Screen.TwipsPerPixelXSelectCaselMsgCaseWM_LBUTTONUPShowWindowMe.hWnd,SW_RESTORE"下面两句的目的是把窗口显示在窗口最顶层Me.ShowMe.SetFocusCaseWM_RBUTTONUPPopupMenum1"如果是在系统m1图标上点右键,则弹出菜单m147 基于CC2430的无线传感器网络研究(上位机部分)CaseWM_MOUSEMOVECaseWM_LBUTTONDOWNCaseWM_LBUTTONDBLCLKCaseWM_RBUTTONDOWNCaseWM_RBUTTONDBLCLKCaseElseEndSelect"--------------音乐播放------------------------------------------WindowsMediaPlayer1.URL=App.Path&"aa.mid"WindowsMediaPlayer1.Controls.stopEndSubPrivateSubForm_Load()CalladdiconEndSub2.节点管理窗体(net_creat.frm)PublicSublostrs1()rs1.CloseEndSubPublicSubgetrs()sql="select*frombasic"rs.Opensql,con,adOpenDynamic,adLockPessimisticEndSubPublicSubgetrs1()sql="select*fromhf"rs1.Opensql,con,adOpenDynamic,adLockPessimisticEndSubPublicSubk_int()Callgetrs1rs.MoveLastSetDataGrid1.DataSource=rsText1(0).Text=Left(rs.Fields("nid"),Len(rs.Fields("nid"))-1)&Val(Right(rs.Fields("nid"),1))+1Text1(1).Text=rs.Fields("nstate")Text1(2).Text=Left(rs.Fields("nname"),Len(rs.Fields("nname"))-1)&Val(Right(rs.Fields("nname"),1))+147 基于CC2430的无线传感器网络研究(上位机部分)Text1(3).Text=Left(rs.Fields("naddress"),Len(rs.Fields("naddress"))-1)&Val(Right(rs.Fields("naddress"),1))+1Text1(4).Text=rs1.Fields("ntemp")Text1(5).Text=rs1.Fields("falarm")Text1(6).Text=rs1.Fields("salarm")Text1(7).Text=rs1.Fields("danwei")Text1(8).Text=rs1.Fields("updatetime")"--------------Datagrid初始化-----------------------------------"DataGrid1.MarqueeStyle=dbgHighlightRowDataGrid1.RefreshDataGrid1.Columns(0).Caption="序号"DataGrid1.Columns(1).Caption="节点ID"DataGrid1.Columns(2).Caption="节点状态"DataGrid1.Columns(3).Caption="节点名称"DataGrid1.Columns(4).Caption="节点地址"DataGrid1.Columns(5).Caption="节点温度"DataGrid1.Columns(6).Caption="一级报警值"DataGrid1.Columns(7).Caption="二级报警值"DataGrid1.Columns(8).Caption="单位"DataGrid1.Columns(9).Caption="更新时间"DataGrid1.Columns(10).Caption="节点类型"DataGrid1.Columns(0).Width=600DimiAsIntegerFori=1To10DataGrid1.Columns(i).Width=1000NextiDataGrid1.BorderStyle=dbgFixedSingle"----------------------------------------------------"Calllostrs1EndSubPrivateSubCommand1_Click()rs.AddNewFori=0To8rs.Fields(i+1)=Text1(i).TextNexti47 基于CC2430的无线传感器网络研究(上位机部分)Callgetrs1rs.Fields("nstyle")=rs1.Fields("nstyle")Calllostrs1rs.Updaters.MoveFirstCallk_intEndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubCommand3_Click()rs.Deleters.Updaters.ResyncDataGrid1.RefreshEndSubPrivateSubCommand4_Click()UnloadMeEndSubPrivateSubForm_Load()k_intEndSubPrivateSubForm_Unload(CancelAsInteger)Me.HideEndSub3.报警管理窗体源代码(alam.frrm)Dimnet_idAsStringDimiAsIntegerDimmy_rs2AsNewADODB.RecordsetPrivateSubCommand2_Click()net_setup.ShowMe.HideEndSubPrivateSubCommand3_Click()UnloadMe47 基于CC2430的无线传感器网络研究(上位机部分)EndSubPrivateSubdisplay_Click()Withmy_rs2If.BOF=FalseAnd.EOF=FalseThenText1(0).Text=my_rs2.Fields("nid")Text1(1).Text=my_rs2.Fields("ntemp")Text1(2).Text=my_rs2.Fields("falarm")Text1(3).Text=my_rs2.Fields("salarm")EndIfEndWithEndSubPrivateSubForm_Load()Callint_k"--------------Datagrid初始化-----------------------------------"Withdisplay.MarqueeStyle=dbgHighlightRow.Refresh.Columns(0).Caption="序号".Columns(1).Caption="节点ID".Columns(2).Caption="节点状态".Columns(3).Caption="节点名称".Columns(4).Caption="节点地址".Columns(5).Caption="节点温度".Columns(6).Caption="一级报警值".Columns(7).Caption="二级报警值".Columns(8).Caption="单位".Columns(9).Caption="更新时间".Columns(10).Caption="节点类型".Columns(0).Width=600Fori=1To10.Columns(i).Width=1000Nexti.BorderStyle=dbgFixedSingleEndWithEndSub47 基于CC2430的无线传感器网络研究(上位机部分)PublicSubint_k()sql="select*frombasicwherenstatelike"%报警%""my_rs2.Opensql,con,1,1Setdisplay.DataSource=my_rs2Ifmy_rs2.BOF=FalseAndmy_rs2.EOF=FalseThenText1(0).Text=my_rs2.Fields("nid")Text1(1).Text=my_rs2.Fields("ntemp")Text1(2).Text=my_rs2.Fields("falarm")Text1(3).Text=my_rs2.Fields("salarm")EndIfEndSubPrivateSubForm_Unload(CancelAsInteger)my_rs2.CloseSetmy_rs2=NothingEndSub4软件模拟窗体源代码(moni.frm)DimcstringAsStringPrivateSubCommand1_Click()IfCheck1.Value=1AndCheck2.Value=1Thencstring=":"&Text1.Text&Text2.Text&"."&":"&Text3.Text&Text4.Text&"."ElseIfCheck1.Value=1AndCheck2.Value=0Thencstring=":"&Text1.Text&Text2.Text&"."ElseIfCheck1.Value=0AndCheck2.Value=1Thencstring=":"&Text3.Text&Text4.Text&"."Elsecstring=""EndIfText5.Text=cstringEndSubPrivateSubCommand2_Click()main.Print"模拟中............."Timer1.Enabled=TrueEndSubPrivateSubCommand3_Click()47 基于CC2430的无线传感器网络研究(上位机部分)Timer1.Enabled=Falsemain.ClsEndSubPrivateSubCommand4_Click(IndexAsInteger)Text2.Text=Val(Text2.Text)+1EndSubPrivateSubCommand5_Click(IndexAsInteger)Text2.Text=Val(Text2.Text)-1EndSubPrivateSubCommand6_Click(IndexAsInteger)Text4.Text=Val(Text4.Text)+1EndSubPrivateSubCommand7_Click(IndexAsInteger)Text4.Text=Val(Text4.Text)-1EndSubPrivateSubForm_Load()Check1.Value=1Check2.Value=0EndSubPrivateSubTimer1_Timer()IfCheck1.Value=1AndCheck2.Value=1Thencstring=":"&Text1.Text&Text2.Text&"."&":"&Text3.Text&Text4.Text&"."ElseIfCheck1.Value=1AndCheck2.Value=0Thencstring=":"&Text1.Text&Text2.Text&"."ElseIfCheck1.Value=0AndCheck2.Value=1Thencstring=":"&Text3.Text&Text4.Text&"."Elsecstring=""EndIfIfmain.MSCON=FalseThenmain.MSCON.PortOpen=TrueEndIfmain.MSCON.Output=cstringEndSub47 基于CC2430的无线传感器网络研究(上位机部分)5程序逻辑图图3.8无线传感器网络监测系统流程图47 基于CC2430的无线传感器网络研究(上位机部分)图3.9节点管理流程图图3.10节点信息设置流程图47 基于CC2430的无线传感器网络研究(上位机部分)图3.11报警管理流程图图3.12软件模拟流程图47 基于CC2430的无线传感器网络研究(上位机部分)虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈蒄蒈袀莄莀蒇羃膇芆蒇肅羀薅蒆螅膅蒁薅袇羈莇薄罿膃芃薃虿羆艿薂袁节薇薁羄肄蒃薁肆芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀芇莆蚆螂聿莂蚅羄莅芈蚅肇膈薆蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螀螃羇葿螀羅膂蒅蝿肈肅莁螈螇芁芇螇袀肄薅螆羂艿蒁螅肄肂莇袄螄芇芃蒁袆肀腿蒀肈芆薈葿螈膈47'