66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright 2018 Slightech Co., Ltd. All rights reserved.
 | 
						|
//
 | 
						|
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
// you may not use this file except in compliance with the License.
 | 
						|
// You may obtain a copy of the License at
 | 
						|
//
 | 
						|
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
//
 | 
						|
// Unless required by applicable law or agreed to in writing, software
 | 
						|
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
// See the License for the specific language governing permissions and
 | 
						|
// limitations under the License.
 | 
						|
#include <opencv2/highgui/highgui.hpp>
 | 
						|
 | 
						|
#include "mynteye/logger.h"
 | 
						|
#include "mynteye/api/api.h"
 | 
						|
 | 
						|
MYNTEYE_USE_NAMESPACE
 | 
						|
 | 
						|
int main(int argc, char *argv[]) {
 | 
						|
  auto &&api = API::Create(argc, argv);
 | 
						|
  if (!api) return 1;
 | 
						|
 | 
						|
  bool ok;
 | 
						|
  auto &&request = api->SelectStreamRequest(&ok);
 | 
						|
  if (!ok) return 1;
 | 
						|
  api->ConfigStreamRequest(request);
 | 
						|
 | 
						|
  Model model = api->GetModel();
 | 
						|
  if (model == Model::STANDARD210A || model == Model::STANDARD2) {
 | 
						|
    api->SetOptionValue(Option::IIC_ADDRESS_SETTING, 0x31);
 | 
						|
    LOG(INFO) << "Set iic address to " << std::hex << "0x"
 | 
						|
              << api->GetOptionValue(Option::IIC_ADDRESS_SETTING);
 | 
						|
  }
 | 
						|
 | 
						|
  // MYNTEYE-S1030 don't support this option
 | 
						|
  if (model == Model::STANDARD) {
 | 
						|
    LOG(INFO) << "Sorry,MYNTEYE-S1030 don't support iic address setting";
 | 
						|
    return 0;
 | 
						|
  }
 | 
						|
 | 
						|
  api->Start(Source::VIDEO_STREAMING);
 | 
						|
 | 
						|
  cv::namedWindow("frame");
 | 
						|
 | 
						|
  while (true) {
 | 
						|
    api->WaitForStreams();
 | 
						|
 | 
						|
    auto &&left_data = api->GetStreamData(Stream::LEFT);
 | 
						|
    auto &&right_data = api->GetStreamData(Stream::RIGHT);
 | 
						|
 | 
						|
    cv::Mat img;
 | 
						|
    cv::hconcat(left_data.frame, right_data.frame, img);
 | 
						|
    cv::imshow("frame", img);
 | 
						|
 | 
						|
    char key = static_cast<char>(cv::waitKey(1));
 | 
						|
    if (key == 27 || key == 'q' || key == 'Q') {  // ESC/Q
 | 
						|
      break;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  api->Stop(Source::VIDEO_STREAMING);
 | 
						|
  return 0;
 | 
						|
}
 |