{"action":"created","comment":{"url":"https://api.github.com/repos/kubeedge/kubeedge/pulls/comments/275689270","pull_request_review_id":227057329,"id":275689270,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3NTY4OTI3MA==","diff_hunk":"@@ -185,8 +185,55 @@ type VisitorConfig struct {\n \t// Modbus represents a set of additional visitor config fields of modbus protocol.\n \t// +optional\n \tModbus VisitorConfigModbus `json:\"modbus,omitempty\"`\n+\t// Bluetooth represents a set of additional visitor config fields of bluetooth protocol.\n+\t// +optional\n+\tBluetooth VisitorConfigBluetooth `json:\"bluetooth,omitempty\"`\n+}\n+\n+// Common visitor configurations for bluetooth protocol\n+type VisitorConfigBluetooth struct {\n+\t// Required: Unique ID of the corresponding operation\n+\tCharacteristicUUID string `json:\"characteristic-uuid,omitempty\"`\n+\t//Responsible for converting the data coming from the platform into a form that is understood by the bluetooth device\n+\t// For example: \"ON\":[1], \"OFF\":[0]\n+\t//+optional\n+\tBluetoothDataWrite map[string][]byte `json:\"write-data,omitempty\"`\n+\t// Responsible for converting the data being read from the bluetooth device into a form that is understandable by the platform\n+\t//+optional\n+\tBluetoothDataRead BluetoothDataRead `json:\"read-data,omitempty\"`\n }\n \n+// Specifies the operations that may need to be performed to convert the data\n+type BluetoothDataRead struct {\n+\t// Required: Specifies the start index of the incoming byte stream to be considered to convert the data.\n+\t// For example: start-index:2, end-index:3 concatenates the value present at second and third index of the incoming byte stream. If we want to reverse the order we can give it as start-index:3, end-index:2\n+\tStartIndex int `json:\"start-index\"`\n+\t// Required: Specifies the end index of incoming byte stream to be considered to convert the data\n+\t// the value specified should be inclusive for example if 3 is specified it includes the third index\n+\tEndIndex int `json:\"end-index\"`\n+\t// Refers to the number of bits to shift left, if left-shift operation is necessary for conversion\n+\t// +optional\n+\tShiftLeft uint `json:\"shift-left\"`\n+\t// Refers to the number of bits to shift right, if right-shift operation is necessary for conversion\n+\t// +optional\n+\tShiftRight uint `json:\"shift-right\"`\n+\t// Specifies the operations that are required to be performed, with what value the operation is to be performed and in what order they are to be performed\n+\t// For example: [\"Multiply\":0.235, \"Add\":32] will ensure that the value is multiplied by 0.235 and the result is added with 32 to provide the final result\n+\t//+optional\n+\tOrderOfOperations []map[ArithmaticOperationType]float64 `json:\"order-of-operations\"`\n+}\n+\n+// Operations supported by Bluetooth protocol to convert the value being read from the device into an understandable form\n+type ArithmaticOperationType string\n+\n+// Bluetooth Protocol Operation type\n+const (\n+\tAdd      ArithmaticOperationType = \"Add\"","path":"docs/proposals/device-crd.md","position":null,"original_position":47,"commit_id":"abc771ff35f9e98d36607be33311bc1729ff8d1b","original_commit_id":"061e37456bc6121c30aadc7243a29777d9970abb","user":{"login":"m1093782566","id":4953962,"node_id":"MDQ6VXNlcjQ5NTM5NjI=","avatar_url":"https://avatars1.githubusercontent.com/u/4953962?v=4","gravatar_id":"","url":"https://api.github.com/users/m1093782566","html_url":"https://github.com/m1093782566","followers_url":"https://api.github.com/users/m1093782566/followers","following_url":"https://api.github.com/users/m1093782566/following{/other_user}","gists_url":"https://api.github.com/users/m1093782566/gists{/gist_id}","starred_url":"https://api.github.com/users/m1093782566/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m1093782566/subscriptions","organizations_url":"https://api.github.com/users/m1093782566/orgs","repos_url":"https://api.github.com/users/m1093782566/repos","events_url":"https://api.github.com/users/m1093782566/events{/privacy}","received_events_url":"https://api.github.com/users/m1093782566/received_events","type":"User","site_admin":false},"body":"Please add `Bluetooth` prefix for `ArithmaticOperationType` as well.","created_at":"2019-04-16T08:40:20Z","updated_at":"2019-04-16T08:40:21Z","html_url":"https://github.com/kubeedge/kubeedge/pull/362#discussion_r275689270","pull_request_url":"https://api.github.com/repos/kubeedge/kubeedge/pulls/362","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/kubeedge/kubeedge/pulls/comments/275689270"},"html":{"href":"https://github.com/kubeedge/kubeedge/pull/362#discussion_r275689270"},"pull_request":{"href":"https://api.github.com/repos/kubeedge/kubeedge/pulls/362"}},"in_reply_to_id":275678905},"pull_request":{"url":"https://api.github.com/repos/kubeedge/kubeedge/pulls/362","id":270769993,"node_id":"MDExOlB1bGxSZXF1ZXN0MjcwNzY5OTkz","html_url":"https://github.com/kubeedge/kubeedge/pull/362","diff_url":"https://github.com/kubeedge/kubeedge/pull/362.diff","patch_url":"https://github.com/kubeedge/kubeedge/pull/362.patch","issue_url":"https://api.github.com/repos/kubeedge/kubeedge/issues/362","number":362,"state":"open","locked":false,"title":"Added device model type definition for Bluetooth protocol in device CRD design","user":{"login":"sujithsimon22","id":35599628,"node_id":"MDQ6VXNlcjM1NTk5NjI4","avatar_url":"https://avatars2.githubusercontent.com/u/35599628?v=4","gravatar_id":"","url":"https://api.github.com/users/sujithsimon22","html_url":"https://github.com/sujithsimon22","followers_url":"https://api.github.com/users/sujithsimon22/followers","following_url":"https://api.github.com/users/sujithsimon22/following{/other_user}","gists_url":"https://api.github.com/users/sujithsimon22/gists{/gist_id}","starred_url":"https://api.github.com/users/sujithsimon22/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sujithsimon22/subscriptions","organizations_url":"https://api.github.com/users/sujithsimon22/orgs","repos_url":"https://api.github.com/users/sujithsimon22/repos","events_url":"https://api.github.com/users/sujithsimon22/events{/privacy}","received_events_url":"https://api.github.com/users/sujithsimon22/received_events","type":"User","site_admin":false},"body":"**What type of PR is this?**\r\n /kind design\r\n\r\n**What this PR does / why we need it**:\r\nThis PR provides device model type definition for Bluetooth protocol in the device CRD design\r\n\r\n**Which issue(s) this PR fixes**:\r\n\r\nFixes #361 \r\n\r\n**Special notes for your reviewer**:\r\n","created_at":"2019-04-16T06:28:43Z","updated_at":"2019-04-16T08:40:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6e19297d7b524518d5210ef72cd8c7b7dc992911","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":1207808775,"node_id":"MDU6TGFiZWwxMjA3ODA4Nzc1","url":"https://api.github.com/repos/kubeedge/kubeedge/labels/kind/api-change","name":"kind/api-change","color":"e5a0e0","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/kubeedge/kubeedge/pulls/362/commits","review_comments_url":"https://api.github.com/repos/kubeedge/kubeedge/pulls/362/comments","review_comment_url":"https://api.github.com/repos/kubeedge/kubeedge/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubeedge/kubeedge/issues/362/comments","statuses_url":"https://api.github.com/repos/kubeedge/kubeedge/statuses/abc771ff35f9e98d36607be33311bc1729ff8d1b","head":{"label":"sujithsimon22:CRD","ref":"CRD","sha":"abc771ff35f9e98d36607be33311bc1729ff8d1b","user":{"login":"sujithsimon22","id":35599628,"node_id":"MDQ6VXNlcjM1NTk5NjI4","avatar_url":"https://avatars2.githubusercontent.com/u/35599628?v=4","gravatar_id":"","url":"https://api.github.com/users/sujithsimon22","html_url":"https://github.com/sujithsimon22","followers_url":"https://api.github.com/users/sujithsimon22/followers","following_url":"https://api.github.com/users/sujithsimon22/following{/other_user}","gists_url":"https://api.github.com/users/sujithsimon22/gists{/gist_id}","starred_url":"https://api.github.com/users/sujithsimon22/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sujithsimon22/subscriptions","organizations_url":"https://api.github.com/users/sujithsimon22/orgs","repos_url":"https://api.github.com/users/sujithsimon22/repos","events_url":"https://api.github.com/users/sujithsimon22/events{/privacy}","received_events_url":"https://api.github.com/users/sujithsimon22/received_events","type":"User","site_admin":false},"repo":{"id":175211245,"node_id":"MDEwOlJlcG9zaXRvcnkxNzUyMTEyNDU=","name":"kubeedge","full_name":"sujithsimon22/kubeedge","private":false,"owner":{"login":"sujithsimon22","id":35599628,"node_id":"MDQ6VXNlcjM1NTk5NjI4","avatar_url":"https://avatars2.githubusercontent.com/u/35599628?v=4","gravatar_id":"","url":"https://api.github.com/users/sujithsimon22","html_url":"https://github.com/sujithsimon22","followers_url":"https://api.github.com/users/sujithsimon22/followers","following_url":"https://api.github.com/users/sujithsimon22/following{/other_user}","gists_url":"https://api.github.com/users/sujithsimon22/gists{/gist_id}","starred_url":"https://api.github.com/users/sujithsimon22/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sujithsimon22/subscriptions","organizations_url":"https://api.github.com/users/sujithsimon22/orgs","repos_url":"https://api.github.com/users/sujithsimon22/repos","events_url":"https://api.github.com/users/sujithsimon22/events{/privacy}","received_events_url":"https://api.github.com/users/sujithsimon22/received_events","type":"User","site_admin":false},"html_url":"https://github.com/sujithsimon22/kubeedge","description":"Kubernetes Native Edge Computing Framework","fork":true,"url":"https://api.github.com/repos/sujithsimon22/kubeedge","forks_url":"https://api.github.com/repos/sujithsimon22/kubeedge/forks","keys_url":"https://api.github.com/repos/sujithsimon22/kubeedge/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sujithsimon22/kubeedge/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sujithsimon22/kubeedge/teams","hooks_url":"https://api.github.com/repos/sujithsimon22/kubeedge/hooks","issue_events_url":"https://api.github.com/repos/sujithsimon22/kubeedge/issues/events{/number}","events_url":"https://api.github.com/repos/sujithsimon22/kubeedge/events","assignees_url":"https://api.github.com/repos/sujithsimon22/kubeedge/assignees{/user}","branches_url":"https://api.github.com/repos/sujithsimon22/kubeedge/branches{/branch}","tags_url":"https://api.github.com/repos/sujithsimon22/kubeedge/tags","blobs_url":"https://api.github.com/repos/sujithsimon22/kubeedge/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sujithsimon22/kubeedge/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sujithsimon22/kubeedge/git/refs{/sha}","trees_url":"https://api.github.com/repos/sujithsimon22/kubeedge/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sujithsimon22/kubeedge/statuses/{sha}","languages_url":"https://api.github.com/repos/sujithsimon22/kubeedge/languages","stargazers_url":"https://api.github.com/repos/sujithsimon22/kubeedge/stargazers","contributors_url":"https://api.github.com/repos/sujithsimon22/kubeedge/contributors","subscribers_url":"https://api.github.com/repos/sujithsimon22/kubeedge/subscribers","subscription_url":"https://api.github.com/repos/sujithsimon22/kubeedge/subscription","commits_url":"https://api.github.com/repos/sujithsimon22/kubeedge/commits{/sha}","git_commits_url":"https://api.github.com/repos/sujithsimon22/kubeedge/git/commits{/sha}","comments_url":"https://api.github.com/repos/sujithsimon22/kubeedge/comments{/number}","issue_comment_url":"https://api.github.com/repos/sujithsimon22/kubeedge/issues/comments{/number}","contents_url":"https://api.github.com/repos/sujithsimon22/kubeedge/contents/{+path}","compare_url":"https://api.github.com/repos/sujithsimon22/kubeedge/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sujithsimon22/kubeedge/merges","archive_url":"https://api.github.com/repos/sujithsimon22/kubeedge/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sujithsimon22/kubeedge/downloads","issues_url":"https://api.github.com/repos/sujithsimon22/kubeedge/issues{/number}","pulls_url":"https://api.github.com/repos/sujithsimon22/kubeedge/pulls{/number}","milestones_url":"https://api.github.com/repos/sujithsimon22/kubeedge/milestones{/number}","notifications_url":"https://api.github.com/repos/sujithsimon22/kubeedge/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sujithsimon22/kubeedge/labels{/name}","releases_url":"https://api.github.com/repos/sujithsimon22/kubeedge/releases{/id}","deployments_url":"https://api.github.com/repos/sujithsimon22/kubeedge/deployments","created_at":"2019-03-12T12:55:35Z","updated_at":"2019-04-09T08:13:29Z","pushed_at":"2019-04-16T08:26:53Z","git_url":"git://github.com/sujithsimon22/kubeedge.git","ssh_url":"git@github.com:sujithsimon22/kubeedge.git","clone_url":"https://github.com/sujithsimon22/kubeedge.git","svn_url":"https://github.com/sujithsimon22/kubeedge","homepage":"https://kubeedge.io","size":32852,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"kubeedge:master","ref":"master","sha":"20ae6eb07f6e85b2174e8c17188c625fb8e3eabc","user":{"login":"kubeedge","id":41812520,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQxODEyNTIw","avatar_url":"https://avatars1.githubusercontent.com/u/41812520?v=4","gravatar_id":"","url":"https://api.github.com/users/kubeedge","html_url":"https://github.com/kubeedge","followers_url":"https://api.github.com/users/kubeedge/followers","following_url":"https://api.github.com/users/kubeedge/following{/other_user}","gists_url":"https://api.github.com/users/kubeedge/gists{/gist_id}","starred_url":"https://api.github.com/users/kubeedge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubeedge/subscriptions","organizations_url":"https://api.github.com/users/kubeedge/orgs","repos_url":"https://api.github.com/users/kubeedge/repos","events_url":"https://api.github.com/users/kubeedge/events{/privacy}","received_events_url":"https://api.github.com/users/kubeedge/received_events","type":"Organization","site_admin":false},"repo":{"id":150713223,"node_id":"MDEwOlJlcG9zaXRvcnkxNTA3MTMyMjM=","name":"kubeedge","full_name":"kubeedge/kubeedge","private":false,"owner":{"login":"kubeedge","id":41812520,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQxODEyNTIw","avatar_url":"https://avatars1.githubusercontent.com/u/41812520?v=4","gravatar_id":"","url":"https://api.github.com/users/kubeedge","html_url":"https://github.com/kubeedge","followers_url":"https://api.github.com/users/kubeedge/followers","following_url":"https://api.github.com/users/kubeedge/following{/other_user}","gists_url":"https://api.github.com/users/kubeedge/gists{/gist_id}","starred_url":"https://api.github.com/users/kubeedge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubeedge/subscriptions","organizations_url":"https://api.github.com/users/kubeedge/orgs","repos_url":"https://api.github.com/users/kubeedge/repos","events_url":"https://api.github.com/users/kubeedge/events{/privacy}","received_events_url":"https://api.github.com/users/kubeedge/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/kubeedge/kubeedge","description":"Kubernetes Native Edge Computing Framework (project under CNCF)","fork":false,"url":"https://api.github.com/repos/kubeedge/kubeedge","forks_url":"https://api.github.com/repos/kubeedge/kubeedge/forks","keys_url":"https://api.github.com/repos/kubeedge/kubeedge/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kubeedge/kubeedge/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kubeedge/kubeedge/teams","hooks_url":"https://api.github.com/repos/kubeedge/kubeedge/hooks","issue_events_url":"https://api.github.com/repos/kubeedge/kubeedge/issues/events{/number}","events_url":"https://api.github.com/repos/kubeedge/kubeedge/events","assignees_url":"https://api.github.com/repos/kubeedge/kubeedge/assignees{/user}","branches_url":"https://api.github.com/repos/kubeedge/kubeedge/branches{/branch}","tags_url":"https://api.github.com/repos/kubeedge/kubeedge/tags","blobs_url":"https://api.github.com/repos/kubeedge/kubeedge/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kubeedge/kubeedge/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kubeedge/kubeedge/git/refs{/sha}","trees_url":"https://api.github.com/repos/kubeedge/kubeedge/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kubeedge/kubeedge/statuses/{sha}","languages_url":"https://api.github.com/repos/kubeedge/kubeedge/languages","stargazers_url":"https://api.github.com/repos/kubeedge/kubeedge/stargazers","contributors_url":"https://api.github.com/repos/kubeedge/kubeedge/contributors","subscribers_url":"https://api.github.com/repos/kubeedge/kubeedge/subscribers","subscription_url":"https://api.github.com/repos/kubeedge/kubeedge/subscription","commits_url":"https://api.github.com/repos/kubeedge/kubeedge/commits{/sha}","git_commits_url":"https://api.github.com/repos/kubeedge/kubeedge/git/commits{/sha}","comments_url":"https://api.github.com/repos/kubeedge/kubeedge/comments{/number}","issue_comment_url":"https://api.github.com/repos/kubeedge/kubeedge/issues/comments{/number}","contents_url":"https://api.github.com/repos/kubeedge/kubeedge/contents/{+path}","compare_url":"https://api.github.com/repos/kubeedge/kubeedge/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kubeedge/kubeedge/merges","archive_url":"https://api.github.com/repos/kubeedge/kubeedge/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kubeedge/kubeedge/downloads","issues_url":"https://api.github.com/repos/kubeedge/kubeedge/issues{/number}","pulls_url":"https://api.github.com/repos/kubeedge/kubeedge/pulls{/number}","milestones_url":"https://api.github.com/repos/kubeedge/kubeedge/milestones{/number}","notifications_url":"https://api.github.com/repos/kubeedge/kubeedge/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kubeedge/kubeedge/labels{/name}","releases_url":"https://api.github.com/repos/kubeedge/kubeedge/releases{/id}","deployments_url":"https://api.github.com/repos/kubeedge/kubeedge/deployments","created_at":"2018-09-28T08:57:49Z","updated_at":"2019-04-16T07:45:07Z","pushed_at":"2019-04-16T08:38:23Z","git_url":"git://github.com/kubeedge/kubeedge.git","ssh_url":"git@github.com:kubeedge/kubeedge.git","clone_url":"https://github.com/kubeedge/kubeedge.git","svn_url":"https://github.com/kubeedge/kubeedge","homepage":"https://kubeedge.io","size":32787,"stargazers_count":918,"watchers_count":918,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":205,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":55,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":205,"open_issues":55,"watchers":918,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubeedge/kubeedge/pulls/362"},"html":{"href":"https://github.com/kubeedge/kubeedge/pull/362"},"issue":{"href":"https://api.github.com/repos/kubeedge/kubeedge/issues/362"},"comments":{"href":"https://api.github.com/repos/kubeedge/kubeedge/issues/362/comments"},"review_comments":{"href":"https://api.github.com/repos/kubeedge/kubeedge/pulls/362/comments"},"review_comment":{"href":"https://api.github.com/repos/kubeedge/kubeedge/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubeedge/kubeedge/pulls/362/commits"},"statuses":{"href":"https://api.github.com/repos/kubeedge/kubeedge/statuses/abc771ff35f9e98d36607be33311bc1729ff8d1b"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"m1093782566"}}