WWW.PROGRAMMA.X-PDF.RU
БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА - Учебные и рабочие программы
 

Pages:     | 1 | 2 ||

«Аннотация В данном дипломном проекте произведена разработка центрального устройства системы «Умный дом» на базе технологии ZigBee. Был выполнен обзор теоретического материала по ...»

-- [ Страница 3 ] --

} if (status!=0x00) Resend(frameid);

else frameID.Free(frameid);

return CombineBytes(0x97,status,frameid,0x00);

}

default:

return 0xFFFFFFFE;

} } ////////SumOfBytes///////////////////////////////////////////////////////////////// uint8_t { uint8_t result = 0;

for (uint8_t i=0; i2; i++) result += (uint8_t)(input i*8);

return result;

} uint8_t Xbee::SumOfBytes(uint32_t input) { uint8_t result = 0;

for (uint8_t i=0; i4; i++) result += (uint8_t)(input i*8);

return result;

} uint8_t Xbee::SumOfBytes(uint64_t input) { uint8_t result = 0;

for (uint8_t i=0; i8; i++) result += (uint8_t)(input i*8);

return result;

} ////////CombineBytes/////////////////////////////////////////////////////////////////

Продолжение приложения В

uint32_t Xbee::CombineBytes(uint8_t byte1, uint8_t byte2, uint8_t byte3, uint8_t byte4) { uint32_t result = 0;

result=((uint32_t) byte1)24|((uint32_t) byte2)16|((uint32_t) byte3)8|byte4;

return result;

} ////////ATCommandRequest///////////////////////////////////////////////////////////////// uint8_t Xbee::ATCommandRequest(uint8_t assignID, uint16_t ATCommand) { uint8_t checksum=0;

uint8_t frameid=0;

if (assignID!=0) { frameid=frameID.KeepNext();

if (frameid==0) return 0xFF;

} mtx.lock();

serial.Write((uint32_t) 0x7E000408);

if (assignID==0) serial.Write((uint8_t) 0x00);

else { serial.Write(frameid);

checksum+=frameid;

} serial.Write(ATCommand);

checksum+=0x08+SumOfBytes(ATCommand);

checksum=0xFF-checksum;

serial.Write(checksum);

if (frameid!=0) frameID.SaveFrame(frameid,serial.outputBuffer,serial.outputBufferPointerIn);

serial.Send();

usleep((__useconds_t) sendDelay);

mtx.unlock();

return(frameid);

} uint8_t Xbee::ATCommandRequest(uint8_t assignID, uint16_t ATCommand, uint8_t value) { uint8_t checksum=0;

Продолжение приложения В

uint8_t frameid=0;

if (assignID!=0) { frameid=frameID.KeepNext();

if (frameid==0) return 0xFF;

} mtx.lock();

serial.Write((uint32_t) 0x7E000508);

if (assignID==0) serial.Write((uint8_t) 0x00);

else { serial.Write(frameid);

checksum+=frameid;

} serial.Write(ATCommand);

serial.Write(value);

checksum+=0x08+SumOfBytes(ATCommand)+value;

checksum=0xFF-checksum;

serial.Write(checksum);

if (frameid!=0) frameID.SaveFrame(frameid,serial.outputBuffer,serial.outputBufferPointerIn);

serial.Send();

usleep((__useconds_t) sendDelay);

mtx.unlock();

return(frameid);

} uint8_t Xbee::ATCommandRequest(uint8_t assignID, uint16_t ATCommand, uint16_t value) { uint8_t checksum=0;

uint8_t frameid=0;

if (assignID!=0) { frameid=frameID.KeepNext();

if (frameid==0) return 0xFF;

} mtx.lock();

serial.Write((uint32_t) 0x7E000608);

if (assignID==0) serial.Write((uint8_t) 0x00);

else { serial.Write(frameid);

Продолжение приложения В

checksum+=frameid;

} serial.Write(ATCommand);

serial.Write(value);

checksum+=0x08+SumOfBytes(ATCommand)+SumOfBytes(value);

checksum=0xFF-checksum;

serial.Write(checksum);

if (frameid!=0) frameID.SaveFrame(frameid,serial.outputBuffer,serial.outputBufferPointerIn);

serial.Send();

usleep((__useconds_t) sendDelay);

mtx.unlock();

return(frameid);

} uint8_t Xbee::ATCommandRequest(uint8_t assignID, uint16_t ATCommand, uint32_t value) { uint8_t checksum=0;

uint8_t frameid=0;

if (assignID!=0) { frameid=frameID.KeepNext();

if (frameid==0) return 0xFF;

} mtx.lock();

serial.Write((uint32_t) 0x7E000808);

if (assignID==0) serial.Write((uint8_t) 0x00);

else { serial.Write(frameid);

checksum+=frameid;

} serial.Write(ATCommand);

serial.Write(value);

checksum+=0x08+SumOfBytes(ATCommand)+SumOfBytes(value);

checksum=0xFF-checksum;

serial.Write(checksum);

if (frameid!=0) frameID.SaveFrame(frameid,serial.outputBuffer,serial.outputBufferPointerIn);

serial.Send();

usleep((__useconds_t) sendDelay);

mtx.unlock();

Продолжение приложения В

return(frameid);

} uint8_t Xbee::ATCommandRequest(uint8_t assignID, uint16_t ATCommand, uint64_t value) { uint8_t checksum=0;

uint8_t frameid=0;

if (assignID!=0) { frameid=frameID.KeepNext();

if (frameid==0) return 0xFF;

} mtx.lock();

serial.Write((uint32_t) 0x7E000C08);

if (assignID==0) serial.Write((uint8_t) 0x00);

else { serial.Write(frameid);

checksum+=frameid;

} serial.Write(ATCommand);

serial.Write(value);

checksum+=0x08+SumOfBytes(ATCommand)+SumOfBytes(value);

checksum=0xFF-checksum;

serial.Write(checksum);

if (frameid!=0) frameID.SaveFrame(frameid,serial.outputBuffer,serial.outputBufferPointerIn);

serial.Send();

usleep((__useconds_t) sendDelay);

mtx.unlock();

return(frameid);

} ///////////RemoteATCommandRequest////////////////////////////////////////////////////////// uint8_t Xbee::RemoteATCommandRequest(uint8_t assignID, uint64_t destinationSN, uint16_t destinationNA, uint8_t RCP, uint16_t ATCommand) { if (RCP!=0x00 && RCP!=0x01 && RCP!=0x02 && RCP!=0x40) return 0xFE;

uint8_t checksum=0;

uint8_t frameid=0;

if (assignID!=0)

Продолжение приложения В

{ frameid=frameID.KeepNext();

if (frameid==0) return 0xFF;

} mtx.lock();

serial.Write((uint32_t) 0x7E000F17);

if (assignID==0) serial.Write((uint8_t) 0x00);

else { serial.Write(frameid);

checksum+=frameid;

} serial.Write(destinationSN);

serial.Write(destinationNA);

serial.Write(RCP);

serial.Write(ATCommand);

checksum+=0x17+SumOfBytes(destinationSN)+SumOfBytes(destinationNA )+RCP+SumOfBytes(ATCommand);

checksum=0xFF-checksum;

serial.Write(checksum);

if (frameid!=0) frameID.SaveFrame(frameid,serial.outputBuffer,serial.outputBufferPointerIn);

serial.Send();

usleep((__useconds_t) sendDelay);

mtx.unlock();

return(frameid);

} uint8_t Xbee::RemoteATCommandRequest(uint8_t assignID, uint64_t destinationSN, uint16_t destinationNA, uint8_t RCP, uint16_t ATCommand, uint8_t value) { if (RCP!=0x00 && RCP!=0x01 && RCP!=0x02 && RCP!=0x40) return 0xFE;

uint8_t checksum=0;

uint8_t frameid=0;

if (assignID!=0) { frameid=frameID.KeepNext();

if (frameid==0) return 0xFF;

} mtx.lock();

serial.Write((uint32_t) 0x7E001017);

Продолжение приложения В

if (assignID==0) serial.Write((uint8_t) 0x00);

else { serial.Write(frameid);

checksum+=frameid;

} serial.Write(destinationSN);

serial.Write(destinationNA);

serial.Write(RCP);

serial.Write(ATCommand);

serial.Write(value);

checksum+=0x17+SumOfBytes(destinationSN)+SumOfBytes(destinationNA )+RCP+SumOfBytes(ATCommand)+value;

checksum=0xFF-checksum;

serial.Write(checksum);

if (frameid!=0) frameID.SaveFrame(frameid,serial.outputBuffer,serial.outputBufferPointerIn);

serial.Send();

usleep((__useconds_t) sendDelay);

mtx.unlock();

return(frameid);

} uint8_t Xbee::RemoteATCommandRequest(uint8_t assignID, uint64_t destinationSN, uint16_t destinationNA, uint8_t RCP, uint16_t ATCommand, uint16_t value) { if (RCP!=0x00 && RCP!=0x01 && RCP!=0x02 && RCP!=0x40) return 0xFE;

uint8_t checksum=0;

uint8_t frameid=0;

if (assignID!=0) { frameid=frameID.KeepNext();

if (frameid==0) return 0xFF;

} mtx.lock();

serial.Write((uint32_t) 0x7E001117);

if (assignID==0) serial.Write((uint8_t) 0x00);

else { serial.Write(frameid);

Продолжение приложения В

checksum+=frameid;

} serial.Write(destinationSN);

serial.Write(destinationNA);

serial.Write(RCP);

serial.Write(ATCommand);

serial.Write(value);

checksum+=0x17+SumOfBytes(destinationSN)+SumOfBytes(destinationNA )+RCP+SumOfBytes(ATCommand)+SumOfBytes(value);

checksum=0xFF-checksum;

serial.Write(checksum);

if (frameid!=0) frameID.SaveFrame(frameid,serial.outputBuffer,serial.outputBufferPointerIn);

serial.Send();

usleep((__useconds_t) sendDelay);

mtx.unlock();

return(frameid);

} uint8_t Xbee::RemoteATCommandRequest(uint8_t assignID, uint64_t destinationSN, uint16_t destinationNA, uint8_t RCP, uint16_t ATCommand, uint32_t value) { if (RCP!=0x00 && RCP!=0x01 && RCP!=0x02 && RCP!=0x40) return 0xFE;

uint8_t checksum=0;

uint8_t frameid=0;

if (assignID!=0) { frameid=frameID.KeepNext();

if (frameid==0) return 0xFF;

} mtx.lock();

serial.Write((uint32_t) 0x7E001317);

if (assignID==0) serial.Write((uint8_t) 0x00);

else { serial.Write(frameid);

checksum+=frameid;

} serial.Write(destinationSN);

serial.Write(destinationNA);

serial.Write(RCP);

Продолжение приложения В

serial.Write(ATCommand);

serial.Write(value);

checksum+=0x17+SumOfBytes(destinationSN)+SumOfBytes(destinationNA )+RCP+SumOfBytes(ATCommand)+SumOfBytes(value);

checksum=0xFF-checksum;

serial.Write(checksum);

if (frameid!=0) frameID.SaveFrame(frameid,serial.outputBuffer,serial.outputBufferPointerIn);

serial.Send();

usleep((__useconds_t) sendDelay);

mtx.unlock();

return(frameid);

} uint8_t Xbee::RemoteATCommandRequest(uint8_t assignID, uint64_t destinationSN, uint16_t destinationNA, uint8_t RCP, uint16_t ATCommand, uint64_t value) { if (RCP!=0x00 && RCP!=0x01 && RCP!=0x02 && RCP!=0x40) return 0xFE;

uint8_t checksum=0;

uint8_t frameid=0;

if (assignID!=0) { frameid=frameID.KeepNext();

if (frameid==0) return 0xFF;

} mtx.lock();

serial.Write((uint32_t) 0x7E001717);

if (assignID==0) serial.Write((uint8_t) 0x00);

else { serial.Write(frameid);

checksum+=frameid;

} serial.Write(destinationSN);

serial.Write(destinationNA);

serial.Write(RCP);

serial.Write(ATCommand);

serial.Write(value);

checksum+=0x17+SumOfBytes(destinationSN)+SumOfBytes(destinationNA )+RCP+SumOfBytes(ATCommand)+SumOfBytes(value);

Продолжение приложения В

checksum=0xFF-checksum;

serial.Write(checksum);

if (frameid!=0) frameID.SaveFrame(frameid,serial.outputBuffer,serial.outputBufferPointerIn);

serial.Send();

usleep((__useconds_t) sendDelay);

mtx.unlock();

return(frameid);

} ///////////TransmitRequest//////////////////////////////////////////////////////////////////////////// uint8_t Xbee::TransmitRequest(uint8_t assignID, uint64_t destinationSN, uint16_t destinationNA, vectoruint8_t* payload) { if (payload-size()==0) return 0xFE;

uint8_t checksum=0;

uint8_t frameid=0;

uint16_t length=0;

length=14+payload-size();

if (assignID!=0) { frameid=frameID.KeepNext();

if (frameid==0) return 0xFF;

} mtx.lock();

serial.Write((uint8_t) 0x7E);

serial.Write(length);

serial.Write((uint8_t) 0x10);

if (assignID==0) serial.Write((uint8_t) 0x00);

else { serial.Write(frameid);

checksum+=frameid;

} serial.Write(destinationSN);

serial.Write(destinationNA);

serial.Write((uint16_t) 0x0000);

for (uint8_t i=0; i(payload-size()); i++) { serial.Write((uint8_t)payload-at(i));

// printf("payload %x\n",payload-at(i));

checksum+=payload-at(i);

}

Продолжение приложения В

checksum+=0x10+SumOfBytes(destinationSN)+SumOfBytes(destinationNA );

checksum=0xFF-checksum;

serial.Write(checksum);

if (frameid!=0) frameID.SaveFrame(frameid,serial.outputBuffer,serial.outputBufferPointerIn);

serial.Send();

usleep((__useconds_t) sendDelay);

mtx.unlock();

return frameid;

} uint8_t Xbee::TransmitRequest(uint8_t assignID, uint64_t destinationSN, uint16_t destinationNA, uint8_t BR, uint8_t O, vectoruint8_t* payload) { if (payload-size()==0) return 0xFE;

if (O!=0x00 && O!=0x01 && O!=0x20 && O!=0x40) return 0xFD;

uint8_t checksum=0;

uint8_t frameid=0;

uint16_t length=0;

length=14+payload-size();

if (assignID!=0) { frameid=frameID.KeepNext();

if (frameid==0) return 0xFF;

} mtx.lock();

serial.Write((uint8_t) 0x7E);

serial.Write(length);

serial.Write((uint8_t) 0x10);

if (assignID==0) serial.Write((uint8_t) 0x00);

else { serial.Write(frameid);

checksum+=frameid;

} serial.Write(destinationSN);

serial.Write(destinationNA);

serial.Write(BR);

serial.Write(O);

for (uint8_t i=0; i(payload-size()); i++)

Окончание приложения В

{ serial.Write((uint8_t)payload-at(i));

// printf("payload %x\n",payload-at(i));

checksum+=payload-at(i);

} checksum+=0x10+SumOfBytes(destinationSN)+SumOfBytes(destinationNA )+BR+O;

checksum=0xFF-checksum;

serial.Write(checksum);

if (frameid!=0) frameID.SaveFrame(frameid,serial.outputBuffer,serial.outputBufferPointerIn);

serial.Send();

usleep((__useconds_t) sendDelay);

mtx.unlock();

return frameid;

} ///////////ReadFromInputPayload/////////////////////////////////////////////////////////////////// uint8_t Xbee::ReadFromInputPayload8() { return inputPayload[inputPayloadReadIndex++];

} uint16_t Xbee::ReadFromInputPayload16() { uint16_t result = 0;

for (uint8_t i=0; i2; i++) result |= (uint16_t)ReadFromInputPayload8() (8 - i*8);

return result;

} uint32_t Xbee::ReadFromInputPayload32() { uint32_t result = 0;

for (uint8_t i=0; i4; i++) result |= (uint32_t)ReadFromInputPayload8() (24 - i*8);

return result;

} uint64_t Xbee::ReadFromInputPayload64() { uint64_t result = 0;

for (uint8_t i=0; i8; i++) result |= (uint64_t)ReadFromInputPayload8() (56 - i*8);

return result;

}



Pages:     | 1 | 2 ||
 

Похожие работы:

«1. Пояснительная записка 1.1. Цели и задачи дисциплины (модуля) Целью дисциплины «Информационная безопасность общества» является формирование общекультурных и профессиональных компетенций у студентов в ходе изучения основ информационной безопасности общества.Задачи дисциплины: овладение теоретическими, практическими и методическими вопросами классификации угроз информационным ресурсам;ознакомление с современными проблемами информационной безопасности, основными концептуальными положениями...»

«Раздел I. Окружающая среда и здоровье людей Раздел I. Окружающая среда и здоровье людей В.А. Рогалев К ПРОБЛЕМЕ ЭКОЛОГИЧЕСКОЙ ДЕСТАБИЛИЗАЦИИ ОКРУЖАЮЩЕЙ СРЕДЫ И ЗДОРОВЬЯ ЧЕЛОВЕКА Комплексная оценка состояния окружающей среды и здоровья населения показывает, что тенденция на экологическую дестабилизацию продолжается. Международные и национальные экологические программы, внедрение более эффективных ресурсои энергосберегающих технологий, а также другие мероприятия не могут изменить указанной...»

«Содержание публичного отчета: 1. Общая характеристика общеобразовательного учреждения.2.Состав обучающихся.3.Структура управления общеобразовательного учреждения, его органов самоуправления.4. Условия осуществления образовательного процесса, в т.ч. материально техническая база.5. Учебный план общеобразовательного учреждения, режим обучения.6. Кадровое обеспечение образовательного процесса. Финансовое обеспечение функционирования и развитии 7. общеобразовательного учреждения. 8. Результаты...»

«МУНИЦИПАЛЬНОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВОЛЖСКИЙ ИНСТИТУТ ЭКОНОМИКИ, ПЕДАГОГИКИ И ПРАВА» «ВОЛЖСКИЙ СОЦИАЛЬНО-ПЕДАГОГИЧЕСКИЙ КОЛЛЕДЖ» РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ Безопасность жизнедеятельности Наименование специальности 44.02.02 Преподавание в начальных классах Квалификация выпускника Учитель начальных классов Форма обучения очная, заочная Рабочая программа учебной дисциплины «Безопасность жизнедеятельности» разработана в соответствии с...»

«Журавлева Валерия Вадимовна, Целых Александр Николаевич ОСОБЕННОСТИ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ БАНКОВСКИХ СИСТЕМ И МЕРЫ ПО ЕЕ ОБЕСПЕЧЕНИЮ В статье рассматриваются принципы информационной безопасности банковских систем, учитывающие их специфические особенности и отличия от информационных систем других организаций, а также требования последнего отечественного Стандарта Банка России по обеспечению информационной безопасности организаций банковской системы Российской Федерации. Предлагаются меры...»

«Пояснительная записка Программа кружка «Безопасное колесо» разработана в рамках Федерального закона «О безопасности дорожного движения», закона Российской Федерации «О безопасности», «Правил безопасного поведения учащихся на улицах и дорогах». Программа направлена на формирование у детей и подростков культуры поведения на дорогах, гражданской ответственности и правового самосознания, отношения к своей жизни и к жизни окружающих как к ценности, а также к активной адаптации во всевозрастающем...»

«АННОТАЦИЯ Дисциплина «Бюджетное право» реализуется как дисциплина вариативной части блока «Профессиональный цикл» Учебного плана специальности – 40.05.01 «Правовое обеспечение национальной безопасности» очной формы обучения. Учебная дисциплина «Бюджетное право» нацелена на формирование у обучающихся знаний об основах бюджетного устройства государства, составления, рассмотрения, исполнения и контроля за исполнением государственного бюджета и бюджетов субъектов федерации, входящих в бюджетную...»







 
2016 www.programma.x-pdf.ru - «Бесплатная электронная библиотека - Учебные, рабочие программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.