Koshian의 농장을 WICED로 다시 작성
참고 사이트
Koshian & WICED에서 개발
Koshian의 농장을 다시 작성해 보았습니다.
WICED 포트 설정
1. [Project]->[Properties] 열기
2. [C/C++ Build]-> [Builder Setting]의 [Build command]를 다음으로 변경
${workspace_loc:/WICED-Smart-SDK}/make UART=protName
Mac이라면 protName이/dev/tty.usbserial~에 대한 느낌
WICED 프로젝트 만들기
1. [File]->[New]->[WICED Smart Designer]를 클릭합니다.
2. [Device Setting] 탭에서 사용하고 싶은 인터페이스에 체크를 넣는다
3. Characteristics 탭에서 UUID와 Name을 원하는 대로 변경하여 사용하려는 서비스를 추가
4.Size(bytes)는 서비스 내에서 사용하고 싶은 Write/Read 용량적인 녀석 (대개 1byte로 충분하다)
5. Characteristic의 Properties 탭에서 Read, Write, Notify를 체크한다
6.Geberate Code를 눌러 프로젝트 만들기
WICED 소스 코드
Pin Assain
project_db.c
const BLE_PROFILE_GPIO_CFG testbutton_gpio_cfg =
{
{
GPIO_PIN_WP, // This need to be used to enable/disable NVRAM write protect
24, 4, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 // Other GPIOs are not used
},
/*.gpio_flag =*/
{
GPIO_SETTINGS_WP,
GPIO_SETTINGS_BUTTON, GPIO_SETTINGS_LED, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}
};
버튼 INPUT
project.c
xxx_interrupt_handler(UINT8 value) {
// ToDo: handle the interrupts here.
UINT32 *sendData;
BOOL _button_pushed = value & 0x01;
memcpy(&db_pdu.pdu[0], sendData, 4);
db_pdu.len = 4; // Project作成の時に決めたSizeの大きさ
if(_button_pushed){
// セントラルにWriteする.
bleprofile_WriteHandle(HDLC_PUSHBUTTON_BUTTON_VALUE, &db_pdu);
}
}
Message read
project.c
int testbutton_write_handler(LEGATTDB_ENTRY_HDR *p) {
UINT8 writtenbyte;
UINT16 handle = legattdb_getHandle(p);
int len = legattdb_getAttrValueLen(p);
UINT8 *attrPtr = legattdb_getAttrValue(p);
BOOL changed;
ble_trace1("write_handler: handle %04x", handle);
changed = __write_handler(handle, len, attrPtr);
if ((len >= 1) && (handle == HDLC_PUSHBUTTON_BUTTON_VALUE)) {
testbutton_hostinfo.generated.pushbutton_button_client_configuration = attrPtr[0];
if (testbutton_hostinfo.generated.pushbutton_button_client_configuration != 0){
bleprofile_LEDBlink(250, 250, testbutton_hostinfo.generated.pushbutton_button_client_configuration);
}
}
// Save update to NVRAM if it has been changed.
if (changed) {
writtenbyte = bleprofile_WriteNVRAM(VS_BLE_HOST_LIST, sizeof(testbutton_hostinfo), (UINT8 *)&testbutton_hostinfo);
ble_trace1("NVRAM write:%04x", writtenbyte);
}
return 0;
}
쓰기
연결
자신은 전용 라이터를 자작해서 쓰고 있다
peripheral UUID 설정
복구 모드
1. Koshian을 FTDI에 연결 한 다음 리셋한다. RN 핀을 GND로 떨어 뜨리면 리셋된다.
2. Target Name의 [download]를 [recover]로 변경하고 더블 클릭
Reference
이 문제에 관하여(Koshian의 농장을 WICED로 다시 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/__S/items/b4926815000bddc78dbd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)