现在很多家庭都想将自己家变成完全IoT化,想如同电影或电视剧一般,进门就自动开灯开空调等,今天我们就来谈谈智能家庭的骨干——内网的物理链路
仅针对新装修
首先便是智能家庭的血管了,便是
网线
只要购买相当有品牌的线缆,就不会踩坑

为什么?
现在越来越多家庭购入4K电视乃至于8K电视,高配电脑用于娱乐等,4芯线的最高百兆的承载带宽已经不能很好的去承载这些内容,而且这类网线屏蔽性极差或是根本没有,如果管内和电力线一起布线,大部分装修公司不会帮你做强弱屏蔽,所以不推荐。

总统就职仪式结束后,全国各地立即掀起了学习川普就职重要讲话高潮。加利福尼亚州长说,川普总统重要讲话高屋建瓴,意义重大,为我们各项事业指明了方向。我们一定要深入体会,全面贯彻,狠抓落实,注重实效!新泽西一老农眼含热泪,拉着记者手说:听了川普总统讲话我激动一夜没睡,他真是我们农民贴心人,我们坚决拥护他领导。哈佛大学、耶鲁大学等高校随后举行了"贯彻落实川普就职重要讲话动员大会",大会上全校师生踊跃发言,畅谈自己学习讲话心得体会,大家一致认为,讲话阐明了方向、鼓舞了士气,一定要把讲话精神与自己本职工作结合起来,共同赢得抗击金融危机伟大胜利!让我们以川普总统重要讲话为导向,高举《独立宣言》伟大旗帜,紧密团结在以川普同志为中心新一代领导班子周围,沿着有美国特色资本主义道路奋勇前进!

在新的 Android N 版本中,ConnectivityManager 的 API 发生了较大变化,特别是在移动数据方面新增了“流量节省模式”(Data Saver)。这里要注意,它并不是 Chrome 里通过 Google 服务器代理的流量压缩功能(该功能在国内无法使用)。
用户可以在设置 > 流量使用情况中启用或禁用 Data Saver。默认情况下,后台数据是允许的,但启用后,系统会提供一个应用列表,用户可以手动选择哪些应用不受流量限制。如果想要彻底关闭某个应用的后台数据,也可以在流量使用情况中手动开关后台数据权限。
今天我们主要讨论 InWall 环境 下,开启 Data Saver 后后台流量和推送消息的处理方式。
当 Data Saver 开启且后台数据被禁用时,应用在后台将无法访问网络。这种情况下,我们需要在应用启动时请求用户允许后台数据访问。为此,可以使用 Intent 跳转到相应的系统设置页面,并传入应用的 packageName,让用户手动调整设置:

try {
    Intent intent = new Intent(Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS);
    Uri uri = Uri.parse("package:com.napidemo.datasaver");
    intent.setData(uri);
    startActivity(intent);
} catch (ActivityNotFoundException e) {
    Log.e("SettingsRedirect", "Can't Open Settings", e);
    Toast.makeText(this, "Can't Open Settings", Toast.LENGTH_SHORT).show();
}

写接收器来监听流量节省开关事件。以下是我的代码。

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.util.Log;

public class NetworkChangeReceiver extends BroadcastReceiver {
    private static final String TAG = "NetworkReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent == null || intent.getAction() == null) {
            return;
        }

        Log.d(TAG, "Received broadcast: " + intent.getAction());

        ConnectivityManager connectivityManager = 
                (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        if (connectivityManager == null) {
            Log.w(TAG, "ConnectivityManager is null");
            return;
        }

        boolean isMetered = connectivityManager.isActiveNetworkMetered();
        Log.d(TAG, "Network metered: " + isMetered);

        if (isMetered) {
            int restrictStatus = connectivityManager.getRestrictBackgroundStatus();
            Log.d(TAG, "Restrict background status: " + restrictStatus);

            switch (restrictStatus) {
                case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED:
                    Log.d(TAG, "Background data is not restricted.");
                    break;
                case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED:
                    Log.d(TAG, "Background data is restricted.");
                    break;
                case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_WHITELISTED:
                    Log.d(TAG, "App is whitelisted for background data.");
                    break;
                default:
                    Log.w(TAG, "Unknown restrict background status.");
                    break;
            }
        }
    }
}

再注册一下接收器

private final DataSaverReceiver dataSaverReceiver = new DataSaverReceiver();

@Override
protected void onResume() {
    super.onResume();
    registerReceiver(dataSaverReceiver, new IntentFilter(ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED));
}

@Override
protected void onPause() {
    super.onPause();
    unregisterReceiver(dataSaverReceiver);
}

自己尝试了下,,觉得如果利用好,这个API在国内一样能有大用处,不过。。。某些国内主流软件还在使用4.0的API(不不不,我不是针对各大Bank),普及起来,难度很大啊!

前言

1980年代是电子音乐最百花齐放的年代,出现了非常多的合成器良作。由于YMO,Kraftwerk等先锋电子乐队在70年代末期的成功,以及LSI技术逐渐成熟且价格一再降低,70年代流行的模拟合成器开始退居二线,由数字合成器接替了一线的位置。数字合成器使用方法对于一般乐手更友好,使得乐手只需注意演奏技法,也不再要求使用者了解模电相关的知识才能调出自己想要的音色,极大程度降低了使用门槛。所以各个国家的各个乐队都开始引入合成器作为主音乐器(甚至包括正在流行音乐朦胧期的我国),于是在1980年代初,电子音乐开始爆发!

Roland MT-32

今天则介绍一款发布于1987年的一款MIDI音源模块,由日本罗兰公司制造的MT-32,此模块非常流行于计算机音乐制作以及DOS游戏。其采用了线性计算合成引擎混合PCM采样, 达到了非常好的合成效果,但是也同时对硬件配置要求更高,价格则自然而然高出当时主流产品的好几倍。
当然,你可能会有疑问,既然那么好,看起来技术也很先进,而且也有标准MIDI接口,岂不是能直连现在的MIDI设备?答案是并不行,General MIDI标准发布于1991年,在此之前MIDI的接口以及通信方式则是各种各样。MT-32的MIDI信息传输通道对应都与General MIDI不同。

MT-32的详细主要硬件介绍

基于Roland官方于1988年10月发布的SERVICE NOTES第三版
CPU: Intel P8098 微控制器
线性计算: Roland LA32 (MB87136A) 专有芯片(富士通社制)
门阵列 1: 日立 HG61H15B72F
门阵列 2: 日立 HG61H20R36F(用于混响发生器)
数模转换器: 博尔-布朗(现德州仪器) PCM54HP
Mask ROM 1: 东芝 TC534000P/日立 HN62304BPE26 4MB(PCM采样数据)(ROM A)
Mask ROM 2: 夏普 LH5310/EP-ROM 1MB(程序/音调数据)(ROM B)
Mask ROM 3: 日立 HN623257PZ21 256KB(混响数据)(ROM C)
SRAM: NEC μPD43256C 32KB
DRAM: 三菱 M5M4416P 8KB

从这些硬件的详细情况看来,这个设备绝对是融合了80年代最顶尖科技的集合体了。
所以价格也十分可观(恐怕至今),当年(1987)售价695$(计算上通货膨胀约等于当今的1550$)
而且目前也十分难购买到,eBay和闲鱼的量都极其少,所以下文我们来讨论下如何在现代PC上模拟

如何模拟

点此查看新方法
使用Munt(需自备ROM镜像)